IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача со стеками!
Lion4ik
сообщение 13.04.2007 8:36
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +



Вводится строка заканчивающаяся точкой, например SSALK.
вывести её в обратном порядке, используя процедуры стеков.

Помогите решить полностью задачу!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 18)
volvo
сообщение 13.04.2007 10:20
Сообщение #2


Гость






Ну уж чего-чего, а реализаций стека на форуме хватает... Вот тут, например:

Все о динамических структурах данных.

Читал? Там есть модуль, реализующий 3 основные операции: проверка на пустоту, Push и Pop... С использованием этого модуля программа будет выглядеть, например, так:
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.

(в самом модуле stack.pas надо строчку telem = integer; заменить на telem = char;)

Можно то же самое сделать через рекурсию, в принципе - тоже работа со стеком, только немного в другом смысле.

Сообщение отредактировано: volvo - 13.04.2007 10:20
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 10:34
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Volvo а ты можешь написать мне эту программку с моим условием и с моей СТРОКОЙ SSALK, а то времени вобрез самому понимать полностью. Заранее благодарен!!!!!!!!!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.04.2007 10:51
Сообщение #4


Гость






А ты запускал то, что я привел? Введешь свою строку, она будет перевернута.

P.S. То, что времени в обрез у тебя - это НЕ мои проблемы...
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 11:37
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Цитата(volvo @ 13.04.2007 11:51) *

А ты запускал то, что я привел?

запускал не работает ch: = readkey;
eror:TYPE mismatch
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 13.04.2007 14:23
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Цитата
С использованием этого модуля программа будет выглядеть, например, так:
тебе написали!


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 16:20
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


модуль всё скачал вложил в папку с файлом программы как положнно всё...

а в программа не запумскается ch: = readkey;
eror:TYPE mismatch
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 13.04.2007 16:24
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Надо в основной программме писать
Uses Modulname;
и не забывай модуль перед этим откомпилировать.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 17:14
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Цитата(Tan @ 13.04.2007 17:24) *

Надо в основной программме писать
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.


М
ну неужели поставить теги так сложно? предупредила же. и в правилах это есть...
мисс_граффити


....................
Теперь обьясните что делать???

Откомпилировал я модуль, поставил Destanitiоn Disk как в инструкции
в программе uses crt, stack/ это уже есть или как помогите?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.04.2007 17:38
Сообщение #10


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


когда ж люди читать научатся....
Тебе что сказали сделать?
Цитата
(в самом модуле stack.pas надо строчку telem = integer; заменить на telem = char;)


а ты что делаешь?
Цитата
TElem = integer;


и вообще, код надо писать в тегах code!


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 17:41
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


я читать умею и это я сделал всё равно тоже самое.....в самом модуле я поменял целоее на чар!!!!

Добавлено через 5 мин.
Цитата(Lion4ik @ 13.04.2007 18:41) *

я читать умею и это я сделал всё равно тоже самое.....в самом модуле я поменял целоее на чар!!!!


Ну что кто поможет??? ведь я знаю вы знаете....
всё поменял указал ....но всё равно EROR: 26
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.04.2007 17:59
Сообщение #12


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


после этого модуль перекомпилировал?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 18:05
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Цитата(мисс_граффити @ 13.04.2007 18:59) *

после этого модуль перекомпилировал?

да мисс граффити перекомпилировал....
ПРодемонстрируй пожалуста как указывать модуль ведь в uses есть уже stack и сам модуль называется STACK...единств что приходит в голову а так незнаю что и делать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 13.04.2007 18:14
Сообщение #14


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Если ты его объявил, откомпилировал и основная программа запустилась, значит всё сделал верно.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 18:27
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Цитата(Tan @ 13.04.2007 19:14) *

Если ты его объявил, откомпилировал и основная программа запустилась, значит всё сделал верно.

ну вот я показал модуль и проограмму .....Тан покажи пожалуйста что в программе дописать куда обьявить......
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 13.04.2007 19:28
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Цитата(Lion4ik @ 13.04.2007 19:05) *
да мисс граффити перекомпилировал....
Наша Мисс права - все работает! Сделай все еще раз сначала как она тебе говорит. Замени TElem = integer; на TElem = char; в модуле STACK.PAS
А программу Volvo не трогай!!! Там менять нечего, он все за тебя сделал.
Хау! Удачи.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 20:33
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Цитата(hiv @ 13.04.2007 20:28) *

Наша Мисс права - все работает! Сделай все еще раз сначала как она тебе говорит. Замени TElem = integer; на TElem = char; в модуле STACK.PAS
А программу Volvo не трогай!!! Там менять нечего, он все за тебя сделал.
Хау! Удачи.

получилось!!!
теперь запускает программу куда написать свою строку чтобы он её наоборот выдавал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.04.2007 20:40
Сообщение #18


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


у тебя большой выбор, куда вводить строку?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lion4ik
сообщение 13.04.2007 20:47
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Цитата(мисс_граффити @ 13.04.2007 21:40) *

у тебя большой выбор, куда вводить строку?

выбор ммм наверное нет у меян голова вообще после сегодня не варит....
SSLAK потом точка
KLASS и без точки такое возможно??? и куда это вести??? МИИссс помогиииии
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 15.07.2025 2:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"