Помощь - Поиск - Пользователи - Календарь
Полная версия: Структуры данных и алгоритмы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Хитрый_панк
помогите разобратся плзззззззз....если не сложно оставлять коментарии и исходники какие ниб. :p2:
вот сама задачка:
Написать программу реализации очереди с помощью курсоров

Зарание благодарен
Altair
В Паскале курсор это pointer - ведь Ахо пишет об этом...
В подфоруме FAQ есть то, что вам надо...
volvo
Например, здесь:
Структуры данных - Очереди
Хитрый_панк
всем спасибки !!ща пойду разбираться
Хитрый_панк
Почему когда я запускаю программу он пишет cannot run a unit
че это такое и как с этим ьороться?
Altair
Потому что там модуль, а модули не запускаются...
Описанные в интерфейсной части модуля процедуры и функции (и типы) можешь использовать в своей программе... (только подключи модуль)
Хитрый_панк
...вы уж извените за этот вопрос( я чайник), но КАКИМ МАКАРОМ подключить???????
volvo
Цитата(Хитрый_панк @ 14.02.05 23:02)
КАКИМ МАКАРОМ подключить?

В новом файле первой строкой программы пишешь:
Код
Uses Queue;
{ А дальше - твоя программа }

В твоей программе должно быть именно использование очереди, потому что файл "queue.pas" содержит лишь ее описание...

Использовать очередь можно, например, вот так:
Код
uses queue;
var q: TQueue; i: integer;
begin
 QueueInit(q);
 for i := 1 to 10 do
   QueuePush(q, i);
 writeln('printing the queue:')
 while not QueueEmpty(q) do
   writeln( QueuePop(q) );
end.
Хитрый_панк
Ничего не понимаю....модуль поставил...а ошибку ту же самую пишет blink.gif
volvo
Хитрый_панк
Файлы программы и модуля должны находиться в одной директории, в редакторе TP открывается файл программы и выбирается опция Make (F9) для компиляции как самой программы, так и всех модулей, от которых она зависит... Тогда такая ошибка возникнуть не должна...
Хитрый_панк
.... unsure.gif а можно вообще не использовать эти модули а составить программу из процедур??
Altair
можно.
Хитрый_панк
rolleyes.gif не ругайте меня строго ...у меня тока началось изученме Паскаля...
я пытался задать очередь....покажите ошику и как ее исправить :p2:

Код
program roots;

  type
  point= ^item;
  item = record
  number: integer;
  next: point

      var n: integer;
          r: ^integer;
    begin
    Writeln('Vvedite n');
    readln (n) ;

first:= nil;
while n>0 do

begin

   New ( r );


   r^.Next:=first;
   r^.Number:=n;
   first:=r;
   n:=n-1;
   end;
   End.
volvo
Показываю:
Код
program roots;
type
 point= ^item;
 item = record
   number: integer;
   next: point;
 end; { *** Этого не было *** }

var
 n: integer;
 r: point; { *** а не ^integer *** }
 first: point; { *** Этого тоже не было *** }
begin
 Writeln('Vvedite n');
 readln (n);

 first:=nil;
 while n>0 do
   begin
     New ( r );
     r^.Next:=first;
     r^.Number:=n;
     first:=r;
     n:=n-1; { *** Можно заменить на Dec(n); *** }
   end;
End.


P.S. А в каком это интересно компиляторе даже не показываются ошибки? Или все-таки показываются? Тогда в чем же проблема?... ;)
Хитрый_панк
VOLVO спасбо за помощь! ;) я решил идти дальше)))
теперь я пытаюсь в эту прогу вставить процедуру - помещение в хвост...я знаю ,что должны быть строчки обращения к процедурам...но вот где их поставить чтобы происходила успешная добавка в хвост blink.gif


вот такое дело....

Код

program roots;

  type
  point= ^item;
  item = record
  number: integer;
  next: point;
          end;


  Function QueueEmpty(q:Tqueue):boolen;
    begin
    QueueEmpty:=(Q.head=nil)
    end;


  Procedure Pomestit'_v_hvost(var q:Tqueue; e:telem );
  var z:Tlist;
     begin
     new(z);
     z^.info:=e;
     z^.next:=nil;
          If QueueEmpty(q) then q.head:=z else q.tail^.next:=z;
          q.tail:=z
          end;


      var n: integer;
          r: point;
         
         first: point;
   
begin
    Writeln('Vvedite n');
    readln (n) ;

first:= nil;
While n>0 do
begin

   New( r );


   r^.Next:=first;
   r^.Number:=n;
   first:=r;
   n:=n-1;
   end;
   End.

Код заключаем в теги !!!
volvo
Ну и долго будет изобретаться этот велосипед? Чем реализация из FAQ не нравится? Взять функции и процедуры оттуда и посмотреть, как они работают, нельзя?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.