rekordy pascal

0

Witam serdecznie,

proszę o pomoc z programem. Wysypuje mi się w trakcie dodawania drugiej osoby. Poniżej polecenie oraz mój kod. Z góry dziękuję za pomoc i pozdrawiam.

Napisz program, który wczytuje liczbę n (<100) określającą ilość uczniów, a następnie n rekordów zawierających informacje o ich ocenach. Program powinien obliczyć średnią ocen każdego ucznia i wyświetlić posortowaną listę uczniów w postaci Imię Nazwisko Średnia począwszy od tego z najwyższą średnią.

Format danych ucznia:

Imię Nazwisko
Ilość ocen - nie więcej jak 10
oceny oddzielone spacjami

Przykład

Wejście:
3
Jan Kowalski
5
4 3 4 5 4
Adam Nowak
4
3 5 4 3
John Doe
6
5 4 5 5 3 5

Wyjście:
John Doe 4.5
Jan Kowalski 4.00
Adam Nowak 3.75

Napisz program tak, aby można było przekierować wejście z pliku (sprawdź działanie programu na powyższych danych)

program rekordy;

type uczen = record

 imie:string[20];
 nazwisko:string[30];
 oceny:array[1..10] of real;
 srednia:real;

end;

var uczniowie:array[1..100] of uczen;
    i,j,n,ilosc:integer;
    suma:real;
    tmp:uczen;

BEGIN

readln(n);

for i:=1 to n do
 begin
  ilosc:=0;
  suma:=0;

  readln(uczniowie[i].imie, uczniowie[i].nazwisko);
  readln(ilosc);

 for j:=1 to ilosc do
  begin
   read(uczniowie[i].oceny[j]);
   suma := suma + uczniowie[i].oceny[j];
  end;
  uczniowie[i].srednia := suma / ilosc;
 end;

for i:=1 to n-1 do
 begin
  for j:=1 to n-i do
   begin
    if uczniowie[j].srednia < uczniowie[j+1].srednia then
     begin
      tmp := uczniowie[j];
      uczniowie[j] := uczniowie[j+1];
      uczniowie[j+1] := tmp;
     end;
   end;
 end;

for i:=1 to n do
 begin
  writeln(uczniowie[i].imie,' ',uczniowie[i].nazwisko,' ',uczniowie[i].srednia:0:2);
 end;

readln;
END.
0

dodaj:
readln;
na koniec pętli.

0

Bardzo dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1