No encuentro el error en mi unidad T_T
Publicado por Ramón (2 intervenciones) el 07/01/2008 20:24:36
Esto es una unidad que hace lo siguiente:
1.- Agregar un registro
2.- Mostrar todos los registros
3.- Consultar un registro por matrícula
4.- Eliminar un registro a partir de una matrícula
5.- Obtener el promedio más alto
6.- Obtener el número de estudiantes con promedio aprobatorio
Y todo se almacenará en un arreglo de registros. Pero me manda un error en la linea 4, dice que espera "." y no un ";". Estoy Usando Pascal Free!
Unit estudiantes;
Interface
type
arrest=array[1..50] of estudiantes;
Procedure AgrReg(a:arrest;n:integer);
Procedure ShowReg(a:arrest;n:integer);
Procedure FindMatr(a:arrest;n:integer;bmatr:string);
Procedure Prom(a:arrest;n:integer;)
procedure elimreg(a:arrest;n:integer;mtrelim:string);
function HighestGrade(a:arrest;n:integer):integer;
function PromAprob(a:arrest;n:integer):integer;
estudiante=record
nombre:string;
matr:string;
calProm:real;
cal:array[1..5] of integer
end;
Implementation
Procedure AgrReg(a:arrest;n:integer);
begin
for i:=1 to n do
begin
writeln('ingresa nombre');
read (a[i].nombre)
writeln('ingresa matr¡cula');
read (a[i].mtr)
for j:=1 to 5 do
writeln('ingresa calificaci¢n');
read (a[i].cal[j])
end;
Procedure ShowReg(a:arrest;n:integer);
begin
for i:=1 to n do
writeln (a[i].nombre)
writeln (a[i].mtr)
for j:=1 to 5 do
writeln (a[i].cal[j])
end;
Procedure FindMatr(a:arrest;n:integer;bmatr:string);
begin
p:=0;
i:=1;
While (p:=0) and (i<=n) do
if a[i].mtr=bmatr
p:=i
else
i=i+1
end;
writeln (a[p].nombre);
writeln (a[p].matr);
writeln (a[p].cal[1]);
writeln (a[p].cal[2]);
writeln (a[p].cal[3]);
writeln (a[p].cal[4]);
writeln (a[p].cal[5]);
end;
Function Prom(a:arrest;n:integer;):real;
begin
for i:=1 to n do
for j:=1 to 5 do
a[i].calProm= a[i].cal[j]+a[i].calProm
end;
Prom= a[i].calProm/5
end;
procedure elimreg(a:arrest;n:integer;mtrelim:string);
begin
for i:=1 to n do
begin
if mtrelim=a[i].mtr then
a[i].mtr="";
a[i].nombre="";
a[i].cal[1]="";
a[i].cal[2]="";
a[i].cal[3]="";
a[i].cal[4]="";
a[i].cal[5]=""
end;
end;
function HighestGrade(a:arrest;n:integer):integer;
begin
HighestGrade=a[i].calProm
for i=2 to n
begin
if a[i].calProm > HighestGrade then
HiguestGrade:=a[i].calProm
end;
end;
function PromAprob(a:arrest;n:integer):integer;
begin
for i:=1 to n do
begin
if a[i].calProm >= 6 then
c=c+1
end;
PromAprob:=c
end.
Gracias!
1.- Agregar un registro
2.- Mostrar todos los registros
3.- Consultar un registro por matrícula
4.- Eliminar un registro a partir de una matrícula
5.- Obtener el promedio más alto
6.- Obtener el número de estudiantes con promedio aprobatorio
Y todo se almacenará en un arreglo de registros. Pero me manda un error en la linea 4, dice que espera "." y no un ";". Estoy Usando Pascal Free!
Unit estudiantes;
Interface
type
arrest=array[1..50] of estudiantes;
Procedure AgrReg(a:arrest;n:integer);
Procedure ShowReg(a:arrest;n:integer);
Procedure FindMatr(a:arrest;n:integer;bmatr:string);
Procedure Prom(a:arrest;n:integer;)
procedure elimreg(a:arrest;n:integer;mtrelim:string);
function HighestGrade(a:arrest;n:integer):integer;
function PromAprob(a:arrest;n:integer):integer;
estudiante=record
nombre:string;
matr:string;
calProm:real;
cal:array[1..5] of integer
end;
Implementation
Procedure AgrReg(a:arrest;n:integer);
begin
for i:=1 to n do
begin
writeln('ingresa nombre');
read (a[i].nombre)
writeln('ingresa matr¡cula');
read (a[i].mtr)
for j:=1 to 5 do
writeln('ingresa calificaci¢n');
read (a[i].cal[j])
end;
Procedure ShowReg(a:arrest;n:integer);
begin
for i:=1 to n do
writeln (a[i].nombre)
writeln (a[i].mtr)
for j:=1 to 5 do
writeln (a[i].cal[j])
end;
Procedure FindMatr(a:arrest;n:integer;bmatr:string);
begin
p:=0;
i:=1;
While (p:=0) and (i<=n) do
if a[i].mtr=bmatr
p:=i
else
i=i+1
end;
writeln (a[p].nombre);
writeln (a[p].matr);
writeln (a[p].cal[1]);
writeln (a[p].cal[2]);
writeln (a[p].cal[3]);
writeln (a[p].cal[4]);
writeln (a[p].cal[5]);
end;
Function Prom(a:arrest;n:integer;):real;
begin
for i:=1 to n do
for j:=1 to 5 do
a[i].calProm= a[i].cal[j]+a[i].calProm
end;
Prom= a[i].calProm/5
end;
procedure elimreg(a:arrest;n:integer;mtrelim:string);
begin
for i:=1 to n do
begin
if mtrelim=a[i].mtr then
a[i].mtr="";
a[i].nombre="";
a[i].cal[1]="";
a[i].cal[2]="";
a[i].cal[3]="";
a[i].cal[4]="";
a[i].cal[5]=""
end;
end;
function HighestGrade(a:arrest;n:integer):integer;
begin
HighestGrade=a[i].calProm
for i=2 to n
begin
if a[i].calProm > HighestGrade then
HiguestGrade:=a[i].calProm
end;
end;
function PromAprob(a:arrest;n:integer):integer;
begin
for i:=1 to n do
begin
if a[i].calProm >= 6 then
c=c+1
end;
PromAprob:=c
end.
Gracias!
Valora esta pregunta


0