Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2013, 22:26   #1
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию операции над стеком

Столкнулся с проблемой синтаксиса в консольном приложении Delphi XE3. перед мной стоит задача создать стек, вписать туда значения, и удалить из него значение по приоритету минимальный, так вот! Я создаю Массив в который вводу числа потом эти числа заходят в стек а вывести стек командой Write не могу подскажите пожалуйста! и еще, можете подсказать как сделать что бы запустилась компиляция и у меня была такая строка "1 - ввести элемент 2 - удалить элемент 3 - выход" ну и функционирование заключалось ее названию.... вот что у меня вышло... процедуры удаления элемента из стека не где не вызваны.
Код:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

type
  Stack=^TStack;
  TStack=record
   Elem:integer;
   NextElem:Stack
  end;

  procedure CreateStack ( var StackHead: Stack);
begin
  StackHead:=nil;
end;

procedure IncludeInStack( var StackHead: Stack; NewElem: integer );
var
  ServiceVar: Stack;
begin
  {создание нового элемента}
  new( ServiceVar );
  ServiceVar^.Elem:= NewElem;
  {созданный элемент сделать вершиной стека}
  ServiceVar^.NextElem:= StackHead;
  StackHead:= ServiceVar
end;


procedure SelectFromStack( var StackHead: Stack);
var
  ServiceVar: Stack;
begin
     if StackHead <> nil then begin
    {выбор элемента из вершины}
    {запоминание ссылки на старую вершину}
    ServiceVar:= StackHead;
    writeln(StackHead^.Elem);
    {исключение из стека и уничтожение элемента}
    StackHead:= StackHead^.NextElem;
    dispose( ServiceVar )
  end
end;


var Now:Stack; j,a,i : integer;
    d: array[1..6] of integer;
begin
 CreateStack(Now);
 for i:= 1 to 6 do
  begin
 write ('Введите значение:');
 read (d[i]);
 IncludeInStack(Now,d[i]);
   end;
 write ('Stec: ');
   for I := 1 to 6 do begin
 write (Now); end;
  readln;  readln; readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.

Последний раз редактировалось Stilet; 20.01.2013 в 22:50.
VinDiz вне форума Ответить с цитированием
Старый 20.01.2013, 23:13   #2
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

хотя бы идеи какие то подкиньте особенно как запилить функции на 1 2 3!
VinDiz вне форума Ответить с цитированием
Старый 20.01.2013, 23:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
SelectFromStack
Где используется эта функция?

Короче вот что я имею ввиду:
Код:
SelectFromStack(Now);
while Now<>nil do begin
 SelectFromStack(Now);
end;
Или так:
Код:
repeat SelectFromStack(Now); until Now=nil;
I'm learning to live...

Последний раз редактировалось Stilet; 20.01.2013 в 23:22.
Stilet вне форума Ответить с цитированием
Старый 20.01.2013, 23:25   #4
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

SelectFromStack это удаление поэлементно с стека я ее еще не подключал......у меня не получается вывести значение стека после того как я туда завел массив, или массив туда не завелся а Now=nil просмотрел это при компиляции сразу обнуление значения стека
VinDiz вне форума Ответить с цитированием
Старый 20.01.2013, 23:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
SelectFromStack это удаление поэлементно с стека
Ну так присмотрись - она же и производит вывод на экран.
Ты писал этот код, или скомуниздил у кого-то не разбиравшись?
Там все работает так как положено, и внесение и вынесение с выводом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2013, 23:51   #6
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

я этот код в инете смотрел! Но честно часов 5 выделил на то что бы попробовать воплотить самому в ИДЕ но не вышло, потом читал литературу с примерами, но сроки очень жмут ошибка студента откладывание на завтра что можно сделать сегодня
VinDiz вне форума Ответить с цитированием
Старый 21.01.2013, 00:00   #7
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

подскажи как это дело вызывать в консоли кнопками
VinDiz вне форума Ответить с цитированием
Старый 21.01.2013, 00:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Но честно часов 5 выделил на то что бы попробовать воплотить
Я у себя этот код проверил - все работает.
Цитата:
как это дело вызывать в консоли кнопками
Никак. Кнопки в консоли не сделаешь так просто.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.01.2013, 00:24   #9
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

ну грубо сказано "Кнопки".....сейчас опишу:
в начале компиляции идет:
1 - добавить элемент 2 - удалить элемент 3 - выход
и соответственно при вводе цифры идет действие......опрос после каждой введенной цифры, и удаление по одной цыфре
VinDiz вне форума Ответить с цитированием
Старый 21.01.2013, 00:26   #10
VinDiz
Пользователь
 
Регистрация: 14.01.2012
Сообщений: 54
По умолчанию

ошибку выбивает вот в этой строке
Код:
write (Now);
пишет
Код:
[dcc32 Error] Project1.dpr(63): E2054 Illegal type in Write/Writeln statement
VinDiz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
операции над строками lialia Паскаль, Turbo Pascal, PascalABC.NET 9 09.12.2012 16:29
Реализовать операции со стеком в массиве Firagon C# (си шарп) 1 29.05.2011 12:09
Реализовать операции со стеком в массиве Firagon Visual C++ 1 27.05.2011 00:33
операции над стеком в С - добавления и удаления следующего элемента стека Matadora Помощь студентам 0 04.09.2010 21:16