Поиск

Вход на сайт

Файлы

  • Игры 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)
    Задание: Дан текстовый файл с изображением целых чисел, которые необходимо переписать в
    список L1. Удалить из списка все числа – палиндромы, вставив вместо них самое минимальное число всего списка.­

    Пример:

    исходный список:'127 12321 67897 45654 10001 17 9856 93456 767 984'

    преобразованный
    в список: '127 17 67897 17 17 9856 93456 17 984'.

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

    var Q,last,head:TElement; m,j,c:integer; mas:string[11];

    function polindrom(sl:string):boolean;
    var cl:string; i,j:integer; b:boolean;
    Begin
      polindrom:=false;
      b:=true;
      j:=1; i:=length(sl);
      while (j<i) and b do
       Begin
        if sl[i]<>sl[j] then b:=false;
        j:=j+1;
        i:=i-1;
       End;
       polindrom:=b;
    End;

    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
      else writeln('fail "',filename,'" otkrit');
    End;

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

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

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

    {====zapolnenie spiska=====}

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

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

    procedure print(head:TElement);
    var Q:TElement;  l:integer;
    Begin
     Q:=head^.next;
     while Q<>nil do
      Begin
      if polindrom(Q^.a)=true then Begin textcolor(5); write(Q^.a,'-->'); End else Begin textcolor(9); write(Q^.a,'-->'); End;
       Q:=Q^.next;
      End;
     writeln;
    End;

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

    procedure transfer(head:TElement; filename:string);
    var Q:TElement; F:text; st,sl:string; l:integer;

    Begin
     new(Q);
     Assign(f,filename);
     reset(f);
     st:='';
     sl:='';
     Q:=head^.next;
     while not eof(f) do
      Begin
       readln(f,st);
        for l:=1 to length(st) do
         Begin
          if st[l]<>' ' then sl:=sl+st[l] else
           Begin
            Add(last,sl);
            sl:='';
           End;
         End;
      End;
    close(F);
    End;

    procedure poisk(head:TElement);
     var Q:TElement; sl:string; b,code,min:integer;
    Begin
    {poisk minimalnogo}
     Q:=head^.next;
     sl:=Q^.a;
     val(sl,b,code);
     min:=b;
     Q:=Q^.next;
      while Q^.next<>nil do
      Begin
       sl:=Q^.a;
       val(sl,b,code);
       if b<min then min:=b;
       Q:=Q^.next;
      End;
     writeln('min= ',min);
     Str(min,sl);
     
     {zamena polindromov}
     Q:=head^.next;
     while Q<>nil do
      Begin
       if polindrom(Q^.a)=true then Q^.a:=sl;
       Q:=Q^.next;
      End;
     
    End;

    BEGIN
    clrscr;


    textBackground(14);
    textcolor(210);
    proverka('g:\in.txt');
    textBackground(0);
    textcolor(12);
    writeln('vivod faila: ');
    textcolor(14);
    printfile('g:\in.txt');
    createhead(head,last);
    transfer(head,'g:\in.txt');
    textcolor(12);
    writeln('vivod spiska: ');
    print(head);
    poisk(head);
    textcolor(12);
    writeln('vivod izmenennogo spiska: ');
    textcolor(1);
    print(head);
    writeln;
    readln;
    END.
    Категория: Pascal | Добавил: _Hz_ (28.02.2010)
    Просмотров: 689 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Статистика





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

    Ссылки

    dim-dragon.ucoz.ru