[ Foro de Pascal ]
NECESITO AYUDA PARA ARREGLAR UN PROGRAMA EN PASCAL AYUDA POR FAVOR ES SOBRE ARREGLOS Y REGISTROS ESPERO ME PUEDAN AYUDAR
Hola espero que esten bien,las indicaciones son: Escribir un programa en Pascal que almacene en un array de registros los nombres de los alumnos, sus notas parciales y finales. Hallar la nota media y mostrar un mensaje de APTO si el alumno supera o iguala la calificación de 5 o NO APTO si no lo alcanza. Hacerlo para un número de 5 alumnos.
EL PROBLEMA ES QUE NECESITO QUE ESTE PROGRAMA ME PERMITE INGRESAR 3 CALF y no 2 ¿como le hago para poder ingresar 3 calf?
Program EJ009(Input, Output);
Uses Crt;
Const numalumnos = 5;
Type tiponotas = record
nombre: String;
parcial, final: real
end;
notasclase = array [1..Numalumnos] of tiponotas;
Var I3: notasclase;
nota1, nota2: real;
alumno: String;
index: integer;
Begin
ClrScr;
for index := 1 to numalumnos do
begin
write( Nombre de alumno( ,index, ): );
readln(alumno);
write( Nota del examen parcial: );
readln(nota1);
write( Nota del examen final: );
readln(nota2);
writeln;
with i3[index] do
begin
nombre := alumno;
parcial := nota1;
final := nota2
end
end;
ClrScr;
writeln( NOMBRE :30, Parcial :10, Final :10, Media :10, CALIFICACION );
for index := 1 to 75 do write( - );
writeln;
for index := 1 to numalumnos do
with i3[index] do
begin
{Escribir la lista con los resultados.}
nota1 := (parcial+final)/2;
{Se calcula la media.}
write(nombre:30,parcial:10:2,final:10:2);
write(nota1:10:2);
{Si la nota media es superior a 5, el alumno est aprobado:}
if nota1 >= 5 then writeln( *** APTO *** )
else writeln( NO APTO )
end;
readkey
end.
No entiendo eso de que te permite ingresar 3 y no 2. Lo esperable es que te pida (y luego te muestre) 5 datos, que es el valor de la constante "NumAlumnos". En tu fuente se han perdido las comillas simples, pero corrigiendo eso, funciona correctamente (con 5 datos).
Un poco mejor tabulado, para que resulte más fácil de leer, podría quedar así:
Program EJ009(Input, Output);
Uses Crt;
Const
numalumnos = 5;
Type
tiponotas = record
nombre: String;
parcial, final: real
end;
notasclase = array [1..Numalumnos] of tiponotas;
Var
I3: notasclase;
nota1, nota2: real;
alumno: String;
index: integer;
Begin
ClrScr;
for index := 1 to numalumnos do
begin
write( 'Nombre de alumno(' ,index, '): ' );
readln(alumno);
write( 'Nota del examen parcial: ' );
readln(nota1);
write( 'Nota del examen final: ' );
readln(nota2);
writeln;
with i3[index] do
begin
nombre := alumno;
parcial := nota1;
final := nota2
end
end;
ClrScr;
writeln( 'NOMBRE ' :30, 'Parcial ':10,
'Final ':10, 'Media ':10, 'CALIFICACION ');
for index := 1 to 75 do
write( '-' );
writeln;
for index := 1 to numalumnos do
with i3[index] do
begin
{Escribir la lista con los resultados.}
nota1 := (parcial+final)/2;
{Se calcula la media.}
write(nombre:30,parcial:10:2,final:10:2);
write(nota1:10:2);
{Si la nota media es superior a 5, el alumno est aprobado:}
if nota1 >= 5 then
writeln( '*** APTO ***' )
else
writeln( 'NO APTO' )
end;
readkey
end.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)