Помощь - Поиск - Пользователи - Календарь
Полная версия: Простые списки. непонятно
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
noskovgleb
program p2;
   uses crt;

   type
      TPtr  = ^TElem;
      TElem = record
         SPG  : char;
         link : TPtr;
      end;
   var
      j         :integer;
      i         :byte;
      BegQ,EndQ :TPtr;
      SG        :char;
   {-----------BEGIN PROCEDURE-------------}
   Procedure AddCh(var Ch: char);
   var p :TPtr;
   Begin
      new(p);
      p^.SPG := ch;
      p^.link:= nil;
      if EndQ = nil {Ґб«Ё б(r)§¤ Ґвбп ЇҐаўл(c) н«Ґ¬Ґ­в (r)зҐаҐ¤Ё}
         then BegQ := P
                    {Ґб«Ё б(r)§¤ Ґвбп (r)зҐаҐ¤­(r)(c) н«Ґ¬Ґ­в (r)зҐаҐ¤Ё}
         else EndQ^.link:= p;
      EndQ := p;
   End;
   {---------------------------------------}
   procedure GetDelEl( var Ch:char);
   var
      P: TPtr;
   Begin
      ch  := BegQ^.SPG;
      p   := BegQ;
      BegQ:= P^.link;
      if BegQ = nil {Ґб«Ё г¤ «пҐвбп Ї(r)б«Ґ¤­Ё(c) н«Ґ¬Ґ­в (r)зҐаҐ¤Ё}
         then EndQ := nil;
      dispose(p);
   End;
   {------------END PROCEDURE--------------}

BEGIN
   clrscr;
   j    := 176;
   BegQ := nil;
   EndQ := nil;
   for i:=176 to 223 do
      AddCh(char(i));
   writeln('“¤ «Ґ­ЁҐ (r)зҐаҐ¤Ё б а бЇҐз вЄ(r)(c) §­ 祭Ё(c) ҐҐ н«Ґ¬Ґ­в(r)ў');
   while BegQ <>nil do
      begin
         GetDelEl(SG);
         write(j,'=',SG);
         inc(j)
      end;
   readln;
END.


Добавлено через 1 мин.
собственно вопрос задан... помогите, объясните мне...
noskovgleb
Все задание звучит так: Составить список, состоящий из кодов псевдографических символов. Упорядочить список в порядке убывания. У меня пока получилось составить список и вывести этот список в порядке возрастания. Буду благодарен любой помощи!
volvo
Цитата
У меня пока получилось составить список и вывести этот список в порядке возрастания
Это неправильное решение. Ты не упорядочиваешь список, а создаешь его уже упорядоченным. С таким же успехом можно:
   for i:=223 downto 176 do
      AddCh(char(i));
, но это опять же не решение поставленной задачи. В поиске есть много чего по сортировке списков. Смотрел?
noskovgleb
тогда я не правильно понял задачу. Можешь объяснить? что нужно сделать?
Lapp
Цитата(noskovgleb @ 22.11.2009 23:47) *
тогда я не правильно понял задачу. Можешь объяснить? что нужно сделать?
Вот, что.
1. Сделать саму структуру списка: соответствующим образом организованную память + процедуры управления им (добавить, удалить, найти элемент и т.п).
2. С самого начала список как бы пустой.
3. Затем ты в него должен добавить эоементы: хочешь, с клавиатуры (например, через меню), хочешь с помощью случайного процесса.
4. Список не обязательно заполняется до конца (то есть в нем не обязательно ВСЕ допустимые элементы).
5. После того, как список создан, ты его должен отсортировать. Для этого, думаю, тебе надо предусмотреть специальную процедуру, выполняющую сортировку.
Все.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.