error en compilacion
Publicado por luis (7 intervenciones) el 04/12/2008 23:55:54
hola que tal!!!
este es mi programa:
program inscripcion (input,output);
type
alumno=record
doc:real;
nomyape:string[20];
recursante:char;
com:integer;
end;
var
a:array[1..1800]of alumno;
cont,com1,com2:integer;
procedure cargaalumno (var aarray:alumno;var cont:integer);
var
resp:char;
begin
cont:=0;
resp:='s';
while ((cont<1800) and (resp='s')) do
begin
cont:=cont+1;
write ('Ingrese documento: ');
readln (a[cont].doc);
write ('Ingrese el nombre y apellido: ');
repeat
write('¨Es recursante?(s|n): ');
readln (a[cont].recursante);
until ((a[cont].recursante='s') or (a[cont].recursante='n'));
repeat
write('Ingresar otro alumno(s|n): ');
readln (resp);
until ((resp='s') or (resp='n'));
end;
end;
procedure comisiones (var aarray:alumno; cont:integer; var com1:integer; var com2:integer);
var
cont1,cont2,cons:integer;
begin
com1:=1;
cont1:=0;
cont2:=0;
cons:=0;
while (cont1<cont) do
begin
if (cons<60) then
begin
cont1:=cont1+1;
if (a[cont1].recursante='s') then
begin
a[cont1].com:=com1;
cons:=cons+1;
end;
end
else
begin
cons:=0;
com1:=com1+1;
end;
end;
if cons<=50 then
while ((cons<60)and(cont2<cont)) do
begin
cont2:=cont2+1;
if (a[cont2].recursante='n') then
begin
a[cont2].com:=com1;
cons:=cons+1;
end;
end;
cons:=0;
com2:=com1+1;
while (cont2<cont) do
if (cons<60) then
begin
cont2:=cont2+1;
if (a[cont2].recursante='n') then
begin
a[cont2].com:=com2;
cons:=cons+1;
end;
end
else
begin
cons:=0;
com2:=com2+1;
end;
end;
procedure lista (var aarray:alumno; cont:integer; com2:integer);
var
cont1,i,j:integer;
aux:alumno;
resp:boolean;
begin
for i:= 1 to (cont-1) do
for j:= 1 to cont do
if (a[i].com>a[j].com) then
begin
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
end;
cont:=1;
for i:= 1 to com2 do
begin
writeln ('comision: ',i);
writeln ('documento nombre recursante');
end;
resp:=true;
while (resp=true) do
if (a[cont1].com=i) then
begin
writeln (a[cont1].doc,' ',a[cont1].nomyape,' ',a[cont1].recursante);
cont1:=cont1+1;
end
else
resp:=false;
end;
procedure totales (aarray:alumno; cont:integer);
var
i,rec,ing:integer;
begin
rec:=0;
ing:=0;
if (a[i].recursante='s') then
rec:=rec+1
else
ing:=ing+1;
write ('Hay ',rec,' recursantes, y ',ing,' ingresantes.');
end;
begin
cargaalumno(a,cont);
comisiones(a,cont,com1,com2);
lista(a,cont,com2);
totales(a,cont);
end.
el tema es que en el programa principal en cargaalumno me parca el error type mismach y me deja el cursor debajo de la letra a.
que puede ser?
gracias!!!
este es mi programa:
program inscripcion (input,output);
type
alumno=record
doc:real;
nomyape:string[20];
recursante:char;
com:integer;
end;
var
a:array[1..1800]of alumno;
cont,com1,com2:integer;
procedure cargaalumno (var aarray:alumno;var cont:integer);
var
resp:char;
begin
cont:=0;
resp:='s';
while ((cont<1800) and (resp='s')) do
begin
cont:=cont+1;
write ('Ingrese documento: ');
readln (a[cont].doc);
write ('Ingrese el nombre y apellido: ');
repeat
write('¨Es recursante?(s|n): ');
readln (a[cont].recursante);
until ((a[cont].recursante='s') or (a[cont].recursante='n'));
repeat
write('Ingresar otro alumno(s|n): ');
readln (resp);
until ((resp='s') or (resp='n'));
end;
end;
procedure comisiones (var aarray:alumno; cont:integer; var com1:integer; var com2:integer);
var
cont1,cont2,cons:integer;
begin
com1:=1;
cont1:=0;
cont2:=0;
cons:=0;
while (cont1<cont) do
begin
if (cons<60) then
begin
cont1:=cont1+1;
if (a[cont1].recursante='s') then
begin
a[cont1].com:=com1;
cons:=cons+1;
end;
end
else
begin
cons:=0;
com1:=com1+1;
end;
end;
if cons<=50 then
while ((cons<60)and(cont2<cont)) do
begin
cont2:=cont2+1;
if (a[cont2].recursante='n') then
begin
a[cont2].com:=com1;
cons:=cons+1;
end;
end;
cons:=0;
com2:=com1+1;
while (cont2<cont) do
if (cons<60) then
begin
cont2:=cont2+1;
if (a[cont2].recursante='n') then
begin
a[cont2].com:=com2;
cons:=cons+1;
end;
end
else
begin
cons:=0;
com2:=com2+1;
end;
end;
procedure lista (var aarray:alumno; cont:integer; com2:integer);
var
cont1,i,j:integer;
aux:alumno;
resp:boolean;
begin
for i:= 1 to (cont-1) do
for j:= 1 to cont do
if (a[i].com>a[j].com) then
begin
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
end;
cont:=1;
for i:= 1 to com2 do
begin
writeln ('comision: ',i);
writeln ('documento nombre recursante');
end;
resp:=true;
while (resp=true) do
if (a[cont1].com=i) then
begin
writeln (a[cont1].doc,' ',a[cont1].nomyape,' ',a[cont1].recursante);
cont1:=cont1+1;
end
else
resp:=false;
end;
procedure totales (aarray:alumno; cont:integer);
var
i,rec,ing:integer;
begin
rec:=0;
ing:=0;
if (a[i].recursante='s') then
rec:=rec+1
else
ing:=ing+1;
write ('Hay ',rec,' recursantes, y ',ing,' ingresantes.');
end;
begin
cargaalumno(a,cont);
comisiones(a,cont,com1,com2);
lista(a,cont,com2);
totales(a,cont);
end.
el tema es que en el programa principal en cargaalumno me parca el error type mismach y me deja el cursor debajo de la letra a.
que puede ser?
gracias!!!
Valora esta pregunta


0