[ Foro de Pascal ]

Algoritmo actúa de manera inesperada

15-Apr-2016 00:09
Invitado (Fede)
1 Respuestas

Hola gente, soy nuevo aqui ya que comenze a estudiar la carrera de Analista en Computacion y tengo que entregar un trabajo para unos dias y al comenzar a crear el algoritmo tengo un error que no actua como yo quiero, si alguno me puede dar una solucion le agradeceria.

El problema es cuando en el codigo que dejo abajo me pide los datos del primer alumno como deberia pero cuando pasa al segundo como que saltea el read(alumno2.NombreYApellido), nose por que puede ser y lo mismo pasa con el alumno 3.

Por favor necesito ayuda ya que debo entregarlo para aca a unos dias. Gracias ! :D

ALGORITMO

Program ejercicio16;
Type
TAlumno=RECORD
 NombreYApellido:string;
 nota1,nota2,nota3,nota4:real;
 end;
Var
alumno1,alumno2,alumno3:TAlumno;
Begin
{Bloque que lee los datos del primer alumno}
write('Ingrese el nombre y apellido del primer alumno: ');
read(alumno1.NombreYApellido);
writeln('Ahora ingrese las notas del primer alumno..');
write('Nota 1: ');
read(alumno1.nota1);
write('Nota 2: ');
read(alumno1.nota2);
write('Nota 3: ');
read(alumno1.nota3);
write('Nota 4: ');
read(alumno1.nota4);
{Bloque que lee los datos del segundo alumno}
write('Ingrese el nombre y apellido del segundo alumno: ');
read(alumno2.NombreYApellido);
writeln('Ahora ingrese las notas del segundo alumno..');
write('Nota 1: ');
read(alumno2.nota1);
write('Nota 2: ');
read(alumno2.nota2);
write('Nota 3: ');
read(alumno2.nota3);
write('Nota 4: ');
read(alumno2.nota4);
{Bloque que lee los datos del tercer alumno}
write('Ingrese el nombre y apellido del tercer alumno: ');
read(alumno3.NombreYApellido);
writeln('Ahora ingrese las notas del tercer alumno..');
write('Nota 1: ');
read(alumno3.nota1);
write('Nota 2: ');
read(alumno3.nota2);
write('Nota 3: ');
read(alumno3.nota3);
write('Nota 4: ');
read(alumno3.nota4);
End.


16-Apr-2016 16:58
Nacho Cabanes (+84)

Deberías usar "readLn" en vez de "read", su comportamiento es mucho más previsible.

Si usas "read" vas a tener problemas con los espacios intermedios y también, como en tu caso, con los avances de línea después de introducir números, que pueden hacer que leas un dato vacío en vez de una cadena correcta.






(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.)