Поиск

Вход на сайт

Файлы

  • Игры 240х400 - Сборник из 72 игр для сенсорных телефонов
  • Windows 7 активатор
  • WallHack для Call of Duty 4 Modern Warfare[multiplayer]
  • Обои для Samsung s5230 720х400
  • Kassy 0.3 + crack (печать товарных чеков)
  • Jimm 0.6.0
  • Mail Agent на телефон (jar)
  • Механоиды гонки на выживание nocd
  • Читы CS 1.6 - Wallhack v4
  • Tequilacat Book Reader 2.2.8
  • Обои для Samsung s5230 720х400
  • Обои для Samsung s5230 720х400
  • l4d_update_1013_to_1014
  • Windows 7 Activator Pack
  • Сборник виджетов для SAMSUNG S5230
  • Шпаргалка по русскому языку
  • Ad Muncher 4.9 Build 31235
  • TMS Component Pack v5.4.2.0 (C++Builder, Delphi) Full Source
  • Архив файлов для Guitar Pro
  • Шпаргалка по математике
  • KKiller v3.4.4
  • Решатель транспортных задач
  • Radmin_3.3_+_Key
  • Sound_Forge_9.0a + crack
  • GPU-Z 0.3.8 (RUS/2009)
  • Чит для Battlefield 2 || ArtificialAiming Radar v2.6
  • Игры для Nokia 5800, N97, 5230, 5530, X6 - Игры для смартфонов серии Nokia Touch, с сенсорным экраном 360 x 640 (S60 5th Edition)
  • Читы CS 1.6 - BadBoy v5.0
  • Читы для lineage 2
  • Tom Clancy's Splinter Cell: Conviction Multiplayer patch
  • Каталог статей

    Главная » Статьи » Языки программирования » Pascal

    Работа со списками на Паскале (Pascal)
    Задание: Имеется файл. Содержимое файла поместить в список в обратном порядке.

    Пример:
    содержимое файла: 123456789
    полученный список: 987654321

    Исходный код:
    Program spiski;
    uses crt;
    Type
    TElement=^element;
     Element=record
     a:char;
     next:TElement;
    End;

    var Q,last,head:TElement; m,j,c:integer;

    Procedure add(var last:TElement; k:char);
    var Q:TElement;
    Begin
      new(Q);
       Q^.a:=k;
       Q^.next:=nil;
       last^.next:=Q;
       Last:=Q;
     End;

     {proverka nali4iya faila}

    procedure proverka(filename:string);
    var f:text;
    Begin
     {$I-}
      Assign(f,filename);
      reset(f);
     {$I+}
      if ioresult<>0 then Begin textcolor(204); writeln('ERROR FILE!!!'); readln; halt; End;
    End;

    {vivod faila na ekran}

    procedure printfile(filename:string);
    var f:text;
        a:string;
     Begin
     Assign(f,filename);
     reset(f);
     while not eof(f) do
      Begin
       readln(f,a);
       textcolor(12);
       writeln(a);
      End;
     close(f);
    End;

    {====sozdanie spiska====}

    procedure createhead(var head,last:TElement);
    Begin
     new(head);
     head^.next:=nil;
     last:=head;
    End;

    {====vivod na ekran spiska====}

    procedure print(head:TElement);
    var Q:TElement;  l:integer;
    Begin
     new(q);
     Q:=head^.next;
     while Q<>nil do
      Begin
       write(Q^.a,'-->');
       Q:=Q^.next;
      End;
     writeln;
    End;

    {====vipoln9Iet...====}

    procedure poisk(filename:string;head:TElement);
    var Q,O,p:TElement; F:file of char; b:char; i:integer;
    Begin
     new(Q);
     Assign(f,filename);
     reset(f);
     Q:=head^.next;
     for i:=filesize(f)-1 downto 0 do
     begin
       seek(f,i);
       read(f,b);
       add(last,b);
     end;
       writeln;
     close(f);
    End;

    BEGIN
    clrscr;
    writeln('1 ------HA4AJlO---------');
    proverka('c:\myfile.txt');
    writeln('2 -----------Fail imeetsya--------');
    printfile('c:\myfile.txt');
    writeln('3 -------------sozdanie spiska------');
    createhead(head,last);
    writeln('4 ------------vipolnenie-------');
    poisk('c:\myfile.txt',head);
    writeln('5 -----------vivod spiska-------');
    print(head);

    writeln;

    readln;
    END.
    Категория: Pascal | Добавил: _Hz_ (28.02.2010)
    Просмотров: 593 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Статистика





    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Ссылки

    dim-dragon.ucoz.ru