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 ";". Si pongo "." me manda un error y me lo cierra.
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
.nombre)
writeln('ingresa matr¡cula');
read (a.mtr)
for j:=1 to 5 do
writeln('ingresa calificaci¢n');
read (a.cal[j])
end;
Procedure ShowReg(a:arrest;n:integer);
begin
for i:=1 to n do
writeln (a.nombre)
writeln (a.mtr)
for j:=1 to 5 do
writeln (a.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.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.calProm= a.cal[j]+a.calProm
end;
Prom= a.calProm/5
end;
procedure elimreg(a:arrest;n:integer;mtrelim:string);
begin
for i:=1 to n do
begin
if mtrelim=a.mtr then
a.mtr="";
a.nombre="";
a.cal[1]="";
a.cal[2]="";
a.cal[3]="";
a.cal[4]="";
a.cal[5]=""
end;
end;
function HighestGrade(a:arrest;n:integer):integer;
begin
HighestGrade=a.calProm
for i=2 to n
begin
if a.calProm > HighestGrade then
HiguestGrade:=a.calProm
end;
end;
function PromAprob(a:arrest;n:integer):integer;
begin
for i:=1 to n do
begin
if a.calProm >= 6 then
c=c+1
end;
PromAprob:=c
end.
Gracias!