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

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

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

 
 Ответить  Открыть новую тему 
> реализация операций работы со стеком, помогите поправить код
сообщение
Сообщение #1





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

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


ну собственно нужно реализовать операции работы со стеком на основе:

1) массива
2) динамической структуры


program stacktest;
const maxn=100;
type TElem = integer;
TElements = array [1..maxn] of TElem;
TStack = record
Elements:Telements;
Top:integer;
end;
procedure Stack_init (var s:Tstack);
begin
S.top:=0;
end;
function Stack_IsEmpty (s:Tstack):boolean;
begin
Stack_Isempty:=(s.top=0)
end;
Procedure Stack_push (var s:Tstack; E:Telem);
const errorcode = 225;
begin
with s do
if top <maxn
then
begin
top:=top+1;
Elements[top]:=E;
end
Else
begin
Writeln('perepol stek');
Halt (errorcode)
end
end;
function Stack_push_func (var s:Tstack; E:Telem):boolean;
begin
with s do
if top<maxn
then
begin
top:=top+1;
elements[top]:=e;
stack_push_func:=true
end
else
stack_push_func:=false
end;
function Stack_IsEmpty (s:Tstack):Telem;
Const ErrorCode = 255;
begin
if stack_isempty (s)
then
begin
writeln('izvlech el iz steka');
halt (errorCode)
end
else
with s do
begin
stack_pop:=Elements[top];
top:=top-1
end
end;
begin
Cost maxN=100;
Stack_init (stack);
writeln (stack_isempty = stack_isempty(stack));
write('vvedite 1 el ');
readln(e);
stack_push(stack.e);
while not stack_isempty(stack) do
writeln(stack_pop(stack));
writeln('vvedite enter');
readln;
end.



прошу помочь подправить код программы на основе массива
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(tatu_cat_69 @ 15.11.2009 18:30) *
прошу помочь подправить код программы на основе массива
Вообще-то неплохо бы было говорить, в чем именно у тебя проблема.
Вот, типо я "подправил".. Уж не знаю, то ли ты имела в виду:)
program stacktest;
const
maxn=100;
type
TElem = integer;
TElements = array [1..maxn] of TElem;
TStack = record
Elements:Telements;
Top:integer;
end;

procedure Stack_init(var s: TStack);
begin
S.top:=0;
end;

function Stack_IsEmpty(s: TStack):boolean;
begin
Stack_Isempty:=(s.top=0)
end;

Procedure Stack_push(var s: TStack; E:TElem);
const
errorcode = 225;
begin
with s do
if top<maxn then begin
top:=top+1;
Elements[top]:=E;
end
Else begin
Writeln('perepol stek');
Halt (errorcode)
end
end;

function Stack_push_func(var s: TStack; E: TElem):boolean;
begin
with s do if top<maxn then begin
top:=top+1;
elements[top]:=e;
stack_push_func:=true
end
else stack_push_func:=false
end;

function Stack_pop(var s:TStack):TElem;
Const
ErrorCode = 255;
begin
if stack_isempty(s) then begin
writeln('izvlech el iz steka');
halt (errorCode)
end
else with s do begin
stack_pop:=Elements[top];
top:=top-1
end
end;

var
Stack: TStack;
e: TElem;

begin
Stack_init (stack);
write('vvedite 1 el ');
readln(e);
stack_push(stack,e);
while not stack_isempty(stack) do writeln(stack_pop(stack));
writeln('vvedite enter');
readln;
end.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Интересный ход!Вот например зачем:
type TElem = integer;
?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Вот например зачем:
Например, затем, чтобы в течении секунды поменять тип элементов стека с Integer-а на Double, а не ползать по программе и не искать, где надо поменять, тип, а где - нет. Еще вопросы будут?
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 23.12.2024 20:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name