• Domingo 22 de Diciembre de 2024, 21:53

Autor Tema:  No Encuentro El Error De Mi Unidad =(  (Leído 1198 veces)

ramonecaxa

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
No Encuentro El Error De Mi Unidad =(
« en: Martes 8 de Enero de 2008, 03:13 »
0
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!