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

UptoLike

37
Readln(Nom, Fio );
for j := 1 to 5 do begin
Read ( Ball[j]);
Readln ( Sum_ball);
end;
St := Beg_Spis; { Установка на начало списка}
Key_Insert := False; { Вставки не было}
While ( St <> Nil ) and ( Key_Insert = False ) do
begin
If St^.Info.Sum_ball < Ins_Zap.Sum_ball then
begin { Найдено место для вставки }
Key_Insert := True;
if St = Beg_Spis then
begin { Вставка в начало списка}
New(St); { Выделение новой ячейки
динамической области памяти для добавляемой записи}
St^.Ukaz := Beg_Spis; {Изменение
ссылки в первом элементе списка}
Beg_Spis := St; { Установка нового
адреса начала линейного списка}
St^.Info := Ins_Zap; { Заполнение
информационного
поле нового элемента списка}
end
else begin { Вставка в произвольное место}
New( St );
St^.Ukaz := Sp^.Ukaz;
Sp^.Ukaz := St;
St^.Info := Ins_Zap;
end;
end; Sp := St;
St := St^.Ukaz; {Переход к следующему элементу}
end; { Цикл по элементам линейного списка}
If Key_Insert = False then { Вставка в конец линейного списка}
begin
                       Readln(Nom, Fio );
                       for j := 1 to 5 do begin
                       Read ( Ball[j]);
                       Readln ( Sum_ball);
                  end;
            St := Beg_Spis; { Установка на начало списка}
            Key_Insert := False; { Вставки не было}
     While ( St <> Nil ) and ( Key_Insert = False ) do
       begin
          If St^.Info.Sum_ball < Ins_Zap.Sum_ball then
                  begin { Найдено место для вставки }
                       Key_Insert := True;
                       if St = Beg_Spis then
                              begin { Вставка в начало списка}
                                    New(St); { Выделение новой ячейки
динамической области памяти для добавляемой записи}
                                    St^.Ukaz := Beg_Spis; {Изменение
     ссылки в первом элементе списка}
                                    Beg_Spis := St; { Установка нового
     адреса начала линейного списка}
                                    St^.Info := Ins_Zap; { Заполнение
     информационного поле нового элемента списка}
                              end
                       else begin { Вставка в произвольное место}
                                    New( St );
                                    St^.Ukaz := Sp^.Ukaz;
                                    Sp^.Ukaz := St;
                                    St^.Info := Ins_Zap;
                              end;
                       end; Sp := St;
     St := St^.Ukaz; {Переход к следующему элементу}
                  end; { Цикл по элементам линейного списка}
            If Key_Insert = False then { Вставка в конец линейного списка}
                                    begin


                                      37