Error Type mismatch urgente!!
Publicado por Elena (3 intervenciones) el 15/06/2007 12:09:05
Hola queria saber si me podias ayudar os dejo el codigo y os explico:
PROGRAM Practica8;
CONST
N = 2;
INI = 1;
FIN = 30;
TYPE
TNombre = string[FIN];
TEdad = string[N];
TCurso = string[N];
TAlumno = record
nombre: TNombre;
Edad: TEdad;
Curso: TCurso;
END;
TAgenda = array [INI..FIN] OF TAlumno;
VAR
alumno: TAlumno;
agenda: TAgenda;
op: integer;
PROCEDURE LeerAlumno (VAR alumno: TAlumno);
BEGIN
with alumno do begin
write('Nombre: ');
readln(nombre);
writeln('Edad: ');
readln(Edad);
writeln('Curso: ');
readln(Curso);
end;
END;
PROCEDURE Menu (VAR op: integer);
VAR
n: integer;
BEGIN
n := 0;
REPEAT
writeln('Elija una opcion');
writeln('1 - Anadir alumno');
writeln('2 - Mostrar la media de edad de los alumnos');
writeln('3 - Mostrar los alumnos ordenados alfabeticamente');
writeln('4 - Mostrar los alumnos ordenados por curso y alfabeticamente');
writeln('5 - Salir del programa');
readln(op);
WHILE op = 1 DO
n := n+1;
UNTIL (op>=1) AND (op<=5)
END;
PROCEDURE MediaEdad;
VAR
media,suma: integer;
i: 1..FIN;
n: integer;
edad: TEdad;
BEGIN
suma:= 0;
for i:= 1 to FIN do
suma:= suma + (agenda[i].edad);
writeln(suma);
media:= suma/n;
END;
En el procedure MediaEdad me da un error: Type Mismatch justo en la linea del writeln(suma) y no entiendo porque es...ya que he mirado en los libros y en teoria tendria que estar bien puesto y bien definido...Si me pudierais ayudar os lo agradeceria mucho, muchas gracias. Elena
PROGRAM Practica8;
CONST
N = 2;
INI = 1;
FIN = 30;
TYPE
TNombre = string[FIN];
TEdad = string[N];
TCurso = string[N];
TAlumno = record
nombre: TNombre;
Edad: TEdad;
Curso: TCurso;
END;
TAgenda = array [INI..FIN] OF TAlumno;
VAR
alumno: TAlumno;
agenda: TAgenda;
op: integer;
PROCEDURE LeerAlumno (VAR alumno: TAlumno);
BEGIN
with alumno do begin
write('Nombre: ');
readln(nombre);
writeln('Edad: ');
readln(Edad);
writeln('Curso: ');
readln(Curso);
end;
END;
PROCEDURE Menu (VAR op: integer);
VAR
n: integer;
BEGIN
n := 0;
REPEAT
writeln('Elija una opcion');
writeln('1 - Anadir alumno');
writeln('2 - Mostrar la media de edad de los alumnos');
writeln('3 - Mostrar los alumnos ordenados alfabeticamente');
writeln('4 - Mostrar los alumnos ordenados por curso y alfabeticamente');
writeln('5 - Salir del programa');
readln(op);
WHILE op = 1 DO
n := n+1;
UNTIL (op>=1) AND (op<=5)
END;
PROCEDURE MediaEdad;
VAR
media,suma: integer;
i: 1..FIN;
n: integer;
edad: TEdad;
BEGIN
suma:= 0;
for i:= 1 to FIN do
suma:= suma + (agenda[i].edad);
writeln(suma);
media:= suma/n;
END;
En el procedure MediaEdad me da un error: Type Mismatch justo en la linea del writeln(suma) y no entiendo porque es...ya que he mirado en los libros y en teoria tendria que estar bien puesto y bien definido...Si me pudierais ayudar os lo agradeceria mucho, muchas gracias. Elena
Valora esta pregunta


0