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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2014, 23:38   #1
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию Стек в Delphi.

Всем привет) в делфи нужно сделать программу.
Одну из двух : 1)Удалить все элементы, равные первому в стеке. Или
2)Поменять местами первый и последний элементы стека.
С использованием Memo, то есть нужно ввести с клавиатуры массив в Memo1 а во втором Memo2 должен быть результат задачи, путём нажатия кнопки Button.
Помогите если не сложно а то я в делфи очень плохо разбираюсь(
King Kong вне форума Ответить с цитированием
Старый 06.04.2014, 23:55   #2
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo2.Text := Memo1.Text;
Memo2.Lines[0] := Memo1.Lines[Memo1.Lines.count - 1];
Memo2.Lines[Memo2.Lines.Count - 1] := Memo1.Lines[0];
end;

Последний раз редактировалось XE5; 06.04.2014 в 23:58.
XE5 вне форума Ответить с цитированием
Старый 07.04.2014, 01:39   #3
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

Спасибо) но это всё ? со стеком ничего мудрить не надо? команды записи или чтения из стека?
King Kong вне форума Ответить с цитированием
Старый 07.04.2014, 01:41   #4
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

King Kong Вопрос не по адресу.
XE5 вне форума Ответить с цитированием
Старый 07.04.2014, 08:07   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
со стеком ничего мудрить не надо?
Надо. Данный пример просто демонстрация упрощения решения. А по факту тебе придется изучить работу с классом TStack, иначе препод в военкомат сдаст.
Хотя по факту ты ничего в задании не раскрыл. А может тебе еще придется писать свой класс стека. А может классы и нельзя юзать... Короче задания практически нет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2014, 18:25   #6
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Хотя по факту ты ничего в задании не раскрыл. А может тебе еще придется писать свой класс стека. А может классы и нельзя юзать... Короче задания практически нет.
Не ребят тут не надо особо заморачиваться. Свой класс писать не надо. Как нам препод говорил нужно описать стек( integer) , потом занести в стек(из Memo1 где мы с клавы ввели массив), сделать преобразование и результат вывести на Memo2. Вот так))
King Kong вне форума Ответить с цитированием
Старый 08.04.2014, 00:54   #7
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

в нете очень мало инфы и примеров с классом TStack . Можете подсказать как его использовать или ссылку на источник пожалуйста.
King Kong вне форума Ответить с цитированием
Старый 08.04.2014, 05:49   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Тут есть практически всё, пролистайте, почитайте.
Стек делается через список, который в свою очередь состоит из указателей на структуру элемента списка. Класс необязателен, но в целом улучшает жизнь если подобных заданий много.
phomm вне форума Ответить с цитированием
Старый 09.04.2014, 19:23   #9
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Тут есть практически всё, пролистайте, почитайте.
Я тут ничего не нашёл про стек.. как его описывать и как им пользоваться?
King Kong вне форума Ответить с цитированием
Старый 09.04.2014, 20:39   #10
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А можно я спрошу?

Рассмотрим самый простой стек..
Пусть это будет самый обычный record с stack : array of Integer; top : Integer;
Скажем, что у нас реализованы процедуры-функции : Top - возвращает последний, элемент Pop удаляет последний элемент, ну и IsEmpy - которая говорит, пуст ли стек.

Цитата:
Удалить все элементы, равные первому в стеке.
Хорошо.. достали первый элемент, сохранили.. а что дальше?
Выдергивать по 1-му элементу, если он нужный нам, то сохраняем его, иначе выкидываем.. сохраняем в другой стек (предположим).. а потом просто переписываем элементы в старый стек (сохраняя изначальный порядок)..
А можно ли это сделать : 1) быстрее, 2) не используя доп. память под элементы?
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек Delphi ArtemMED Помощь студентам 5 10.02.2013 19:37
Стек в Delphi! Kate23 Помощь студентам 1 14.03.2012 16:26
Стек в Delphi antyan Помощь студентам 1 30.04.2010 17:48
Стек и очередь. (Delphi) Olgasato Помощь студентам 8 02.04.2010 08:08
Стек в Delphi Vladimir-888 Помощь студентам 0 01.04.2010 18:46