Динамические Списки!

Тема в разделе "Pascal and Delphi", создана пользователем felixandr, 28 дек 2011.

  1. felixandr

    felixandr Гость

    Самого доброго времени суток! :welcome:
    У меня не получается сделать 6 прогу...
    Её смысл:
    Она должна быть в 3 процедуры.
    Первая:создание списка, заполнение его числами и вывод.
    Вторая:ввод числа, после этого номера-все элементы списка удаляются и происходит вывод.
    Третья-вывод текущего состояния списка!
    похоже, там список не хочет хочет изменяться в процедурах.

    Я набросал код:


    Код (Text):
    uses crt;
    const n=15;
    type mas=array[1..n] of integer;

    type
    typ=^typemain;
    typemain=record
    int:integer;
    next:typ;
    intzap:typ;
    end;

    var
    t,y,u:integer; intzap:typ;strt,over:typ;

    procedure createNviv;
    var
    i:integer;
    next:typ;
    matr:mas;
    begin

    for i:=1 to n do
    begin
    matr[i]:=i*i;
    end;

    next:=nil;
    for i:=1 to n do begin
    new(intzap);
    intzap^.int:=matr[i];

    writeln(intzap^.int);

    end;

    end;

    procedure viv;
    var i:integer; next:typ;
    begin

    if intzap=nil then
    writeln('CTEK nYCT');

    while intzap<>nil do{ begin}
    {for i:=1 to n do begin
    }writeln(intzap^.int);
    { intzap:=intzap^.next;

    end;}
    {end;
    }
    end;

    procedure del;
    var i,G:integer;
    begin
    writeln('VVEDI S KAKOI STROKI HOCHESH UDALIT');
    readln(g);

    for i:=g to n do begin
    intzap:=intzap^.next;
    intzap^.next:=intzap^.next^.next;
    end;

    for i:=1 to g do
    writeln(intzap^.int);

    end;

    begin
    clrscr;

    repeat {clRSCR;}

    writeln('vvedi 1 dlya zapoln i vivoda');
    writeln('vvedi 2 dlya vivoda');
    writeln('vvedi 3 dlya vvoda chisla s kotorigo udalyatsya elementi');
    writeln('press esc to exit');
    case readkey of

    '1':begin createNviv;READKEY;CLRSCR; end;
    '2':begin viv;READKEY;CLRSCR; end;
    '3':begin del;readkey;clrscr; end;
    #27:exit;

    else begin writeln('NET TAKOI KOMANDI'); readln; clrscr; end;
    end;
    until false;

    readkey;

    end.
    :google:
    ПОМОГИТЕ ПОЖАЛУЙСТА...
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Проще код написать заново, но за "спасибо" не хочется
     
  3. Senset

    Senset Well-Known Member

    Регистрация:
    11 сен 2006
    Сообщения:
    136
    Симпатии:
    0
    Да набросал не то слово... настроил точнее) хоть бы отформатировал... чтобы читать полегче было)
    Я так понимаю что список чисел должен быть... а не список массива чисел (точнее указатель на структуру цепь, которой всего в 1 элемен, короче в твоем примере толку от динамики мало)
    раз уж создавал список процедурой new, то и удалять надо юзая dispose
    и судя по всему эта третья процедура участвует в 1-ой)

    исчо вопросы? =)
     
Загрузка...
Похожие Темы - Динамические Списки
  1. Rinulik
    Ответов:
    2
    Просмотров:
    1.393
  2. Julia61
    Ответов:
    1
    Просмотров:
    1.229
  3. vladis222
    Ответов:
    2
    Просмотров:
    2.259
  4. Omh
    Ответов:
    9
    Просмотров:
    5.170
  5. AvasKvas
    Ответов:
    25
    Просмотров:
    6.165

Поделиться этой страницей