Мне надо написать программу на тему обратного польского алгоритма... с использованием указателей и стека.... и все это в Дэльфе... обьясните как это написать.... или дайте ссылку на сайт где есть хорошие обьяснения всего этого)))
Хэлп плииизз!!! Мне очень надо!!! Выручайте!!!
Хэлп плииизз!!! Мне очень надо!!! Выручайте!!!
и можно условие поподробнее? что за польский алгоритм?
Только это не алогритм, а нотация.
Караидель, спасиббо)))
Подробнее описание.
Дело в том, что я не умею пользоваться типом указателей.. и описывать тип стек... вот так... мне все это желательно к среде написать... только яне понимаю... хотя Дельфи знаю для начинающего неплохо... но эта тема сложновата для меня... мне нужна помощь как бы в записи всего этого в Дэльфе... нигде не могу найти.... хотя алгоритм понимаю.. но все сразу.... мдя... не могу понять...
Тогда разберись с указателями и стеком. Без понимания механизма работы пойнтеров (и навыка работы с ними) и знания базовых структур данных (список, очередь, стек, бинарные деревья и графы) в программировании делать нечего.
На том же сайте должно быть неплохое описание стека, а вот указатели ищи сама - мой опыт тебе не поможет, среди десятка с хвостиком языков, которые я знаю, Делфи не числится.
Я поищу))) я в порядке работы то разоббралась.. я записать не могу нормально... фигня выходит.. и тип не описывается.. этой стек... мдя((
советую, чтобы разобраться со стеком, смотреть откомпилированный код дизассемблером. на первый взгляд все очень сложно, но если разобраться то там всего пяток основных инструкций.. вообщем спрашивай, помогу чем смогу..
p.s. не знаю что там с польским алгоритмом, но наверное под стеком имелся ввиду не стек CPU, да ?
По личному опыту могу сказать, что это не зависит от возраста и пола. Программизм - это диагноз.
Оранжевый Удав
При чём здесь дизасемблирование? При чём здесь стек процессора?! Девочке нужна программа разбора алгебраических выражений записанных в обратной польской нотации!
да понял я уже что не про то пою..
Караидель , возможно да...))) я даже уверена.. просто все равно это редкость...
Стек - это нечто вроде стопки книг. Можно положить книгу наверх, можно сверху снять. Из середины брать нельзя по очевидным причинам :). Стек можно реализовать массивом, храня индекс "верха".
итак для того чтобы записать в стек
PUSH
для того чтобы достать из стека
POP
вот впринципе и все, как это реализовать в дельфе точно не помню, но если ты откроешь исходники стандартных компонентов то ты там такие вставки найдешь, вот и посмотри как это делается....
На фига такие сложности??? Имеется в виду не стек-сегмент, а структура данных под названием "стек". Реализуется массивом или связаным списком. А то ты сейчас научишь... Поменяет CS:IP - завесит комп.
то есть запихать в стек можно что угодно
ДЕЛФИ - МАЗДАЙ!!!
ПОЛЬЗУЙТЕ Си или АСМ!
Караидель, подвешу комп или сломаю врядли... но прогу со злости сломаю точно....
Оранжевый Удав, вот как туда запихать и выпихать??? обьясни плиз!!!
_SpectatoR_, легко сказать... я то Дельфу прохожу.. мне все равно в Дэльфе писать))))
uses Contnrs;
var
stack : Tstack;
obj : TObject;
np : pointer;
...
begin
stack := TStack.Create;
try
// запихивание произвольного объекта делфи, т.к. они все унаследованы от TObject
stack.push(obj); // запихиваем
obj := nil; // обнуляем указатель для чистоты ээксперимента, теперь указатель на объект держит только стек, это не позволяет объекту уничтожиться
obj := stack.pop; // вынимаем из стека
// запихивание числа
GetMem(np, sizeof(integer));
np^ := 56432;
stack.push(np);
np := nil;
stack.pop(np);
writeln(np^);
FreeMem(np);
finally
stack.Free;
end;
end;
вобщем как-то так )
Давай я тебе прямо исходник дам, а?
Девочке нужна программа разбора алгебраических выражений записанных в обратной польской нотации!
Наверно не так все таки))... Не записаных, а с помощью))