Алгоритмические языки и программирование. Аксенова Л.И - 32 стр.

UptoLike

32
для размещения линейного списка в динамической области ОП }
Beg_Spis := St; { Сохранение начального адреса}
While Not Eof (F_Input) Do {Цикл до конца файла}
begin
With St^.Info do begin {Оператор присоединения}
Read ( F_Input, nom, FIO); { чтение порядкового
номера и фамилии из файла в линейный список}
For i := 1 to 5 do Read ( F_Input, Ball[i] ); { То же
для всех 5 оценок}
Readln ( F_Input, Sum_ball ); { Чтение и запись
суммы баллов и переход
к новой строке файла}
end;
Sp:=St;{ Сохранение текущего указателя в предыдущем}
New (St); { Определение указателя на новую ячейку памяти}
Sp^.Ukaz := St; { Сохранение указателя на новую ячейку в
поле адреса предыдущей}
end; { Цикл по записям файла}
Sp^.Ukaz := NIL; { Запись в поле указателя последней
ячейки занятой списком памяти значения NIL }
End; { Конец процедуры
ввода и формирования списка}
Процедура вывода линейного списка на экран
Procedure OUTPUT_SPIS;
Var i: byte; { Описание локальных переменных }
Begin
St := Beg_Spis; { Установка начального указателя
линейного списка }
While St <> NIL do { Цикл до конца линейного списка }
begin
With St^.Info do
begin
Write (Nom,’ ’, FIO,’ ’);
For i := 1 to 5 do Write ( Ball[i]:3 );
 для размещения линейного списка в динамической области ОП }
     Beg_Spis := St;      { Сохранение начального адреса}
       While Not Eof (F_Input) Do         {Цикл до конца файла}
          begin
              With St^.Info do begin {Оператор присоединения}
              Read ( F_Input, nom, FIO); { чтение порядкового
               номера и фамилии из файла в линейный список}
               For i := 1 to 5 do Read ( F_Input, Ball[i] ); { То же
                                            для всех 5 оценок}
              Readln ( F_Input, Sum_ball ); { Чтение и запись
                 суммы баллов и переход к новой строке файла}
                                 end;
         Sp:=St;{ Сохранение текущего указателя в предыдущем}
   New (St); { Определение указателя на новую ячейку памяти}
   Sp^.Ukaz := St; { Сохранение указателя на новую ячейку в
                           поле адреса предыдущей}
              end; { Цикл по записям файла}
 Sp^.Ukaz := NIL; { Запись в поле указателя последней
                  ячейки занятой списком памяти значения NIL }
 End; { Конец процедуры ввода и формирования списка}

           Процедура вывода линейного списка на экран

Procedure OUTPUT_SPIS;
 Var i: byte; { Описание локальных переменных }
   Begin
      St := Beg_Spis;      { Установка начального указателя
                                линейного списка }
       While St <> NIL do { Цикл до конца линейного списка }
      begin
           With St^.Info do
              begin
              Write (Nom,’ ’, FIO,’ ’);
             For i := 1 to 5 do Write ( Ball[i]:3 );


                                 32