Текущий архив: 2007.02.25;
Скачать: CL | DM;
ВнизПроблемы со стеком Найти похожие ветки
← →
Vremenniy © (2007-02-08 16:59) [0]Здравствуйте, программисты, я понимаю, что этот форум для начинающих, и тут помогают писать программы, а не пишут, но мне просто больше некуда обратиться, не поможите ли вы мне, точнее не напишите ли вы мне, точнее не мне , а моей девушке, которая в институте на первом курсе учится, но вообще в программирование не соображает, программку простенькую, просто я сам со школы уже ничего не помню, а уже (по глупости) пообещал ей помочь.
Чтобы вводили элементы стека, а при нажатии на кнопку стек инвертировался, т.е. "дно" стека сделать вершиной, а вершину - "дном".
Уж пожалуйста помогите, я думал вспомню, там же ведь еще на Delphi нужно.
Заранее благодарен!
← →
Сергей М. © (2007-02-08 17:16) [1]Кирдык тебе и "твоей девушке".
← →
Сергей М. © (2007-02-08 17:18) [2]
> которая в институте на первом курсе учится, но вообще в
> программирование не соображает
Двойной кирдык.
Ей.
А уж о тебе и речи не идет)
← →
Johnmen © (2007-02-08 17:19) [3]
> а уже (по глупости) пообещал ей помочь.
За свою глупость в нашем суровом мире принято отвечать по всей строгости.
Вот и ответишь...:)
← →
Vremenniy © (2007-02-08 17:22) [4]Ну хотя бы алгоритм подскажите.
← →
Vremenniy © (2007-02-08 17:28) [5]Очередь, это ведь обычный массив, или я не прав?
← →
Сергей М. © (2007-02-08 17:30) [6]
> хотя бы алгоритм подскажите
Хм...
Попытаюсь телепатировать:
1) Взять значение c вершины стека, сохранить во врем.переменной
2) Поменять значение дна стека со значением врем.переменной
3) Поместить в вершину стека значение врем.переменной
Оно ?
← →
Сергей М. © (2007-02-08 17:30) [7]
> Vremenniy © (08.02.07 17:28) [5]
>
> Очередь, это ведь обычный массив, или я не прав?
Не прав.
Очередь - это очередь, а массив - это массив.
← →
Сергей М. © (2007-02-08 17:34) [8]То ли ты, то ли твоя "скво" - но оба хороши)
ТЗ - коту под хвост
← →
Vremenniy © (2007-02-08 17:35) [9]Вот на паскале нашел, но там немного другое задание, еще в школе делал
Program LabWork_1_Stack;
const
max_st=1000;
var
st,_st: array[1..max_st] of char;
n,i:integer;
b,first,last:char;
function empty:integer; {Проверка стека на наличие элементов в нем}
begin
if n=0 then empty:=0;
end;
procedure push(a:char); {Поместить элемент в стек}
begin
inc(n);
st[n]:=a;
end;
procedure pop(var a:char); {Извлечь элемент из стека}
begin
a:=st[n];
dec(n);
end;
function full:boolean; {Проверка на переполнение}
begin
Full:=n=max_st
end;
procedure stacktop(var n:integer); {Узнать верхний элемент}
begin
b:=st[n];
end;
Begin {Основная программа}
n:=1;
while 1<>0 do
begin
readln(st[n]);
if st[n]="=" then break;
inc(n);
end;
dec(n);
for i:=1 to n do
begin
write(st[i]);
write(" ");
end;
writeln;
if empty<>0 then
begin
last:=st[n];
first:=st[1];
_st[1]:=last;
for i:=2 to n-1 do
_st[i]:=st[i];
_st[n]:=first;
end;
for i:=1 to n do
begin
write(_st[i]);
write(" ");
end;
writeln;
end.
← →
Vremenniy © (2007-02-08 17:37) [10]в ней нужно в стеке поменять местами 1 и последний элементы, можно ее под мое задание переделать или нет?
← →
Vremenniy © (2007-02-08 18:10) [11]Ну подскажите, хотя бы где материал взять
← →
Virgo_Style © (2007-02-08 18:44) [12]Vremenniy © (08.02.07 16:59)
Здравствуйте, программисты, я понимаю, что этот форум для начинающих, и тут помогают писать программы, а не пишут, но мне просто больше некуда обратиться, не поможите ли вы мне, точнее не напишите ли вы мне, точнее не мне , а моей девушке, которая в институте на первом курсе учится, но вообще в программирование не соображает, программку простенькую, просто я сам со школы уже ничего не помню, а уже (по глупости) пообещал ей помочь.
Аж мотороллер вспомнился
← →
Vremenniy © (2007-02-08 18:57) [13]Блин, ну вы программисты и народ, нельзя было сразу сказать что не будем помогать, зачем же угарать-то надо мной
← →
Virgo_Style © (2007-02-08 19:05) [14]Ты вопрос задай, глядишь и поможем
← →
Vremenniy © (2007-02-08 19:08) [15]Это же не трудно вам, эт первый курс
Чтобы вводили элементы стека, а при нажатии на кнопку, стек инвертировался, т.е. "дно" стека сделать вершиной, а вершину - "дном".
← →
RASkov (2007-02-08 19:34) [16]> [15] Vremenniy © (08.02.07 19:08)
Что такое "стек"?function InvertStek(const S: String): String;
var N: Integer;
begin
Result:="";
for N:= 1 to Length(S) do Result:=S[N]+Result;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(InvertStek(edit1.Text));
end;
Тоже самое можно и с массивами сделать...» Джо:» «То же самое» с массивами не сделаешь. Да и к стеку это имеет весьма отдаленное отношение.
← →
DiamondShark © (2007-02-08 19:37) [17]самый тупой алгоритм (псевдокод):
procedure CopyStack(Src, Dst: Stact);
begin
while not Src.Empty do
Dst.Push(Src.Pop);
end;
procedure InvertStack(S: Stact);
var
TempStack1, TempStack2: Stack;
begin
CopyStack(S, TempStack1);
CopyStack(TempStack1, TempStack2);
CopyStack(TempStack2, S);
end;
для сельской местности сойдёт.
конкретная реализация + интерфейс -- за тобой.
чья, в конце концов, девушка?
← →
DiamondShark © (2007-02-08 19:37) [18]
> RASkov (08.02.07 19:34) [16]
Не грузи, да не грузим будешь.
← →
Vremenniy © (2007-02-08 19:40) [19]RASkov
на форме нужно я так понимаю разместить TEdit? и кнопку простую? спасибо большое за код, выручил!
← →
Vremenniy © (2007-02-08 19:43) [20]DiamondShark
объясни вкратце, как он работает, если не сложно
← →
Джо © (2007-02-08 19:46) [21]> [20] Vremenniy © (08.02.07 19:43)
> DiamondShark
> объясни вкратце, как он работает, если не сложно
У стека есть две операции: push (поместить значение на вершину стека) и pop («снять» значение с вершины стека). Вот ими и нужно оперировать. И «эмулировать» при их помощи другие операции.
← →
DiamondShark © (2007-02-08 19:48) [22]
> Vremenniy © (08.02.07 19:43) [20]
> DiamondShark
> объясни вкратце, как он работает, если не сложно
Не сложно.
Перекладываем исходный стек в один, потом в другой, потом обратно.
← →
RASkov (2007-02-08 21:45) [23]> » Джо:
> » «То же самое» с массивами не сделаешь. Да и к стеку это
> имеет весьма отдаленное отношение.
> [18] DiamondShark © (08.02.07 19:37)
Если, чесно, я так и не въехал, что в этой ветке подразумевается под термином "стек"...
> [19] Vremenniy © (08.02.07 19:40)
Да, но как видимо я не правильно понял вопрос... Что такое в твоем вопросе - стек?
И всеж я думаю, что здесь всетаки не TObjectStack имеется в виду...
← →
Джо © (2007-02-08 22:17) [24]> [23] RASkov (08.02.07 21:45)
> Если, чесно, я так и не въехал, что в этой ветке подразумевается
> под термином "стек"...
В этой ветке под термином «стек» подразумевается абстрактный тип данных «стек».
← →
Anatoly Podgoretsky © (2007-02-08 22:24) [25]> Джо (08.02.2007 22:17:24) [24]
А стандартный стек, не имеет понятия дно или количество элементов, это уже не совсем стандартный стек.
← →
RASkov (2007-02-08 23:04) [26]> В этой ветке под термином «стек» подразумевается абстрактный
> тип данных «стек».
Ну я считаю, нужно услышать от автора вопроса, более конкретные определения его стека...
Страницы: 1 вся ветка
Текущий архив: 2007.02.25;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.041 c