Лабораторный практикум по программированию на языке Паскаль. Найханова Л.В - 99 стр.

UptoLike

99
предыдущего элемента, как в рассмотренных выше примерах, а значение начального
указателя.
Операция удаления реализуется одним оператором
First := First^.C;
а операция вставки - двумя операторами:
New^.C := First;
First := New;
Пример:
Program spisok;
Type
name = string[10];
ukaz = ^element;
element = record
uk : ukaz;
dan: name
end;
Var
kniga : name;
nach,tek,ob,obpr : ukaz;
i : integer;
Begin { формирование 1-го элемента списка }
New(nach);
ReadLn;
WriteLn('введите первое название');
Read(kniga);
nach^.uk := nil;
nach^.dan := kniga;
While kniga <> 'AAAAA' do { формирование списка }
Begin
tek := nach;
New(ob);
WriteLn(' Введите очередное название ');
Read(kniga);
While (tek<>nil) and (tek^.dan < kniga) do
{ Поиск подходящего места }
Begin
obpr := tek; { ссылка на предыдущий элемент }
tek := tek^.uk { переход к следующему элементу }
End;
{ вставка нового элемента }
ob^.uk := tek;
ob^.dan := kniga;
If tek = nach then
nach := ob
Else
obpr^.uk := ob
End; { конец формирования списка }
WriteLn(' каталог учебников:'); { вывод на экран дисплея
упорядоченного каталога книг }
tek := nach;
While tek^.uk <> nil do
Begin
предыдущего элемента, как в рассмотренных выше примерах,         а значение начального
указателя.
Операция удаления реализуется одним оператором
         First := First^.C;
а операция вставки - двумя операторами:
         New^.C := First;
         First := New;
Пример:
Program spisok;
Type
    name = string[10];
    ukaz = ^element;
    element = record
               uk : ukaz;
               dan: name
             end;
Var
    kniga            : name;
    nach,tek,ob,obpr : ukaz;
    i             : integer;
Begin { формирование 1-го элемента списка }
    New(nach);
    ReadLn;
    WriteLn('введите первое название');
    Read(kniga);
    nach^.uk := nil;
    nach^.dan := kniga;
    While kniga <> 'AAAAA' do { формирование списка }
      Begin
        tek := nach;
        New(ob);
        WriteLn(' Введите очередное название ');
        Read(kniga);
        While (tek<>nil) and (tek^.dan < kniga) do
              { Поиск подходящего места }
          Begin
            obpr := tek; { ссылка на предыдущий элемент }
           tek := tek^.uk { переход к следующему элементу }
          End;
       { вставка нового элемента }
          ob^.uk := tek;
          ob^.dan := kniga;
          If tek = nach then
            nach := ob
          Else
            obpr^.uk := ob
      End; { конец формирования списка }
      WriteLn(' каталог учебников:'); { вывод на экран дисплея
 упорядоченного каталога книг }
      tek := nach;
      While tek^.uk <> nil do
        Begin

                                                                                   99