[ Foro de Pascal ]

Problema con un programa

17-May-2021 09:43
Invitado (Igor)
1 Respuestas

Muy buenas, estoy programando un programa para clase, en el que me piden que pidiendo los datos de unos alumnos sobre sus notas, calcule la nota media de cada uno, y debajo de su nombre con su nota media ponga la nota que tiene en cada asignatura.  El caso es que en el tercer alumno, cuando introduzco su ultima nota, al mostrarme la tabla de datos en su ultima nota me pone la nota media en vez de la nota introducida. Dejo el programa aqui abajo.

var
  i:integer;
  A:integer;
  M:real;
  N:integer;
  R:integer;
  Asignaturas: array [1..4] of string;
  Alumnos: array [1..3] of string;
  Notas: array [1..3,1..4] of real;
  Notamedia: array [1..3] of real;
  Redondeo: array [1..3] of integer;
  Final:integer;

begin
  (*Pedir asignaturas*)
   For I:=1 to 4 do
      Begin
        writeln ('Introduce el nombre de una asignatura');
        readln (Asignaturas[I])
      end;
  (*pedir nombres y apellidos*)
   For A:=1 to 3 do
      Begin
        writeln ('Introduce el nombre y apellido de un alumno. Ejemplo "Pedro Garcia Fernandez"');
        readln (Alumnos[A])
      end;
  (*Tabla de notas*)
   For A:=1 to 3 do
     For I:=1 to 4 do
       Begin
         Writeln ('Introduce la nota del alumno  ',Alumnos[A],'  de  ',asignaturas[I]);
         readln (Notas[A,I])
       end;
  (*Nota media*)
    For A:=1 to 3 do
     begin
      m:=0;
      For I:=1 to 4 do
       begin
        M:= M+notas[A,I];
       end;
       notamedia[n]:=M/4;
     end;
    (*Redondeo*)
    For I:=1 to 3 do
     begin
      redondeo[I]:= round(notamedia[n]);
     end;
    (*Tabla de datos*)
    For A:=1 to 3 do
     begin
      m:=0;
      For I:=1 to 4 do
       begin
        M:= M+notas[A,I];
       end;
       notamedia[n]:=M/4;
       writeln (Alumnos[A],' - ',notamedia[n],'  redondeado a  ',redondeo[I]);
        For I:=1 to 4 do
            Writeln ('       ',asignaturas[I],notas[A,I]);
     end;


  readln(Final);
end.
                                                                 


17-May-2021 10:51
Nacho Cabanes (+75)

Los "warning" son tus amigos. Mira lo que te dice:

main.pas(42,18) Warning: Variable "N" does not seem to be initialized






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...