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

UptoLike

33
Writeln ( Sum_Ball:4 );
end; { Конец действия оператора присоединения }
St := St^.Ukaz; { Переход к следующему элементу списка }
end; { Конец цикла по линейному списку }
End; { Конец процедуры вывода списка на экран}
Процедура поиска и удаления из линейного списка сведений об учащихся,
имеющих неудовлетворительные оценки
Procedure DELETE_ELEM_SPIS;
Var
i: byte;{ Описание локальных переменных }
Begin
St := Beg_Spis; { Установка начала линейного списка }
While St <> Nil do
begin
With St^.Info do
For i := 1 to 5 do
If Ball[i] = 2 then { Удаление элемента из списка}
begin
if St = Beg_Spis then { Удаление из начала см. рис. 4}
Beg_Spis := St^.Ukaz
Else begin { Удаление из любого места кроме начала
линейного списка, см. рис. 5}
Sp^.Ukaz := St^.Ukaz;
St := Sp; Break;
end;
end; { Конец цикла по анализу оценок}
Sp := St; St := St^.Ukaz; { Переход к следующему
элементу линейного списка }
end; { Конец цикла по линейному списку }
End; { Конец процедуры удаления}
St
                Writeln ( Sum_Ball:4 );
                  end; { Конец действия оператора присоединения }
          St := St^.Ukaz; { Переход к следующему элементу списка }
      end;                 { Конец цикла по линейному списку }
     End; { Конец процедуры вывода списка на экран}

Процедура поиска и удаления из линейного списка сведений об учащихся,
              имеющих неудовлетворительные оценки

   Procedure DELETE_ELEM_SPIS;
       Var
     i: byte;{ Описание локальных переменных }
    Begin
          St := Beg_Spis; { Установка начала линейного списка }
       While St <> Nil do
         begin
           With St^.Info do
               For i := 1 to 5 do
                       If Ball[i] = 2 then { Удаление элемента из списка}
                              begin
                 if St = Beg_Spis then { Удаление из начала см. рис. 4}
                               Beg_Spis := St^.Ukaz
                 Else begin { Удаление из любого места кроме начала
                                    линейного списка, см. рис. 5}
                                    Sp^.Ukaz := St^.Ukaz;
                                    St := Sp; Break;
                                 end;
                              end; { Конец цикла по анализу оценок}
                       Sp := St; St := St^.Ukaz; { Переход к следующему
                                           элементу линейного списка }
        end;      { Конец цикла по линейному списку }
  End;    { Конец процедуры удаления}

               St


                                   33