Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Основные понятия алгоритмического языка

=¦     ¦===¦    ¦===¦      ¦===¦  ¦  L===-
    pBegin L->¦ *-¦-...->¦ *-¦-¬   ¦ *-¦--->¦ *-¦-...->¦NIL¦<--   pEnd
              L===-      L===- ¦   L===-    L===-      L===-
                               ¦              ^
                               ¦              ¦
                               L---------------



       Пример. Составить программу, которая формирует список, добавляет в
    него произвольное количество компонент,  выполняет вставку и удаление
    компоненты по ключу,  а затем читает и выводит весь список  на  экран
    дисплея. В    качестве данных взять строку символов.  Ввод данных - с
    клавиатуры дисплея, признак конца ввода - строка символов END.

     Program LISTLINKED;
      uses Crt;
      type
       Alfa= String[10];
       PComp= ^Comp;
       Comp= record
              sD:Alfa;
              pNext:PComp
             end;
      var
       pBegin, pEnd, pAux, pCKey, pPreComp: PComp;
       sC, sKey: Alfa;
       bCond: Boolean;
      Procedure CreateLL(var pBegin,pEnd: PComp; var sC: Alfa);
       begin
        New(pBegin);
        pBegin^.pNext:=NIL;
        pBegin^.sD:=sC;
        pEnd:=pBegin
       end;
      Procedure AddLL(var pEnd: PComp; var sC: Alfa);
       var pAux: PComp;
       begin
        New(pAux);
        pAux^.pNext:=NIL;
        pEnd^.pNext:=pAux;
        pEnd:=pAux;
        pEnd^.sD:=sC
       end;
      Procedure Find(var sKey: Alfa; var pBegin,pCKey,pPreComp: PComp;
                     var bCond: Boolean);
       begin
        pCKey:=pBegin;
        while (pCKey <> NIL) and (sKey <> pCKey^.D) do
         begin
          pPreComp:=pCKey;
          pCKey:=pCKey^.pNext
         end;
        if (pCKey = NIL) and (sKey <> pCKey^.sD) then bCond:=FALSE
                                                 else bCond:=TRUE
       end;
      Procedure InsComp(var sKey,sC: Alfa);
       var pAux:PComp;
       begin
        Find(sKey,pBegin,pCKey,pPreComp,bCond);
        New(pAux);
        pAux^.sD:=sC;
        pAux^.pNext:=pCKey^.pNext;
        pCKey^.pNext:=pAux
       end;
      Procedure DelComp(var sKey: Alfa; var pBegin: PComp);
       begin
        Find(sKey,pBegin,pCKey,pPreComp,bCond);
        pPreComp^.pNext:=pCKey^.pNext
       end;
      begin
       ClrScr;
       writeln('  ВВЕДИ СТРОКУ ');
       readln(sC);
       CreateLL(pBegin,pEnd,sC);
       repeat
        writeln('ВВЕДИ СТРОКУ ');
        readln(sC);
        AddLL(pEnd,sC)
       until sC='END';
       writeln(' ***** ВЫВОД ИСХОДНОГО СПИСКА *****');
       pAux:=pBegin;
       repeat
        writeln(pAux^.sD);
        pAux:=pAux^.pNext;
       until pAux=NIL;
       writeln;
       writeln('ВВЕДИ КЛЮЧ ДЛЯ ВСТАВКИ СТРОКИ');
       readln(sKey);
       writeln('ВВЕДИ ВСТАВЛЯЕМУЮ СТРОКУ');
       readln(sC);
       InsComp(sKey,sC);
       writeln;
       writeln('ВВЕДИ КЛЮЧ УДАЛЯЕМОЙ СТРОКИ');
       readln(sKey);
       DelComp(sKey,pBegin);
       writeln;
       writeln(' ***** ВЫВОД ИЗМЕНЕННОГО СПИСКА *****');
        pAux:=pBegin;
        repeat
         writeln(pAux^.sD);
         pAux:=pAux^.pNext;
        until pAux=NIL
      end.
Пред.111213
скачать работу

Основные понятия алгоритмического языка

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ