Вводится строка заканчивающаяся точкой, например SSALK.
вывести её в обратном порядке, используя процедуры стеков.
Помогите решить полностью задачу!
Ну уж чего-чего, а реализаций стека на форуме хватает... Вот тут, например:
http://forum.pascal.net.ru/index.php?s=&showtopic=2706&view=findpost&p=23592
Читал? Там есть модуль, реализующий 3 основные операции: проверка на пустоту, Push и Pop... С использованием этого модуля программа будет выглядеть, например, так:
uses crt, stack;(в самом модуле stack.pas надо строчку telem = integer; заменить на telem = char;)
var
ch: telem;
st: tstack;
begin
stackinit(st);
repeat
ch := readkey;
write(ch);
stackpush(st, ch);
until ch = '.';
writeln;
stackpop(st); { <--- Это - если НЕ надо печатать саму точку }
while not stackempty(st) do begin
write(stackpop(st));
end;
writeln;readln;
end.
Volvo а ты можешь написать мне эту программку с моим условием и с моей СТРОКОЙ SSALK, а то времени вобрез самому понимать полностью. Заранее благодарен!!!!!!!!!!!!!
А ты запускал то, что я привел? Введешь свою строку, она будет перевернута.
P.S. То, что времени в обрез у тебя - это НЕ мои проблемы...
модуль всё скачал вложил в папку с файлом программы как положнно всё...
а в программа не запумскается ch: = readkey;
eror:TYPE mismatch
Надо в основной программме писать
Uses Modulname;и не забывай модуль перед этим откомпилировать.
Uses Modulname;и не забывай модуль перед этим откомпилировать.
Unit STACK;
INTERFACE
Type
TElem = integer;
TStack = ^TElement;
TElement = record
info:TElem;
Next:TStack
end;
Procedure StackInit(var s:TStack);
Function StackEmpty(S:TStack):Boolean;
Procedure StackPush(var S:TStack; E:TElem);
Function StackPop(var S:TStack):TElem;
{--------------------------------------}
IMPLEMENTATION
Procedure StackInit(var s:TStack);
begin
s:=nil
end;
Function StackEmpty(S:TStack):Boolean;
begin
StackEmpty:=(S=NIL);
end;
Procedure StackPush(var S:TStack; E:TElem);
var
z:TStack;
begin
new(z);
z^.next:=s;
Z^.INFO:=E;
s:=z;
end;
Function StackPop(var S:TStack):TElem;
const errorcode=255;
var z:TStack;
begin
If StackEmpty(S) then
begin
Halt(errorcode);
end else
begin
z:=s;
s:=s^.next;
stackPop:=z^.info;
dispose(z)
end
end;
end.
uses crt, stack;
var
ch: telem;
st: tstack;
begin
stackinit(st);
repeat
ch := readkey;
write(ch);
stackpush(st, ch);
until ch = '.';
writeln;
stackpop(st); while not stackempty(st) do begin
write(stackpop(st));
end;
writeln;readln;
end.
М | ну неужели поставить теги так сложно? предупредила же. и в правилах это есть... мисс_граффити |
когда ж люди читать научатся....
Тебе что сказали сделать?
я читать умею и это я сделал всё равно тоже самое.....в самом модуле я поменял целоее на чар!!!!
Добавлено через 5 мин.
после этого модуль перекомпилировал?
Если ты его объявил, откомпилировал и основная программа запустилась, значит всё сделал верно.
у тебя большой выбор, куда вводить строку?