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

> Правила раздела!

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

 
 Ответить  Открыть новую тему 
> Почему ТП вырубается
сообщение
Сообщение #1


Гость






 program q1;
uses crt;
const n=10;
type stack=array[1..n div 2] of integer;
var
tos,i,max:integer;
a:array[1..n] of integer;
s1,s2:stack;
procedure push(s:stack;e:integer);
begin
if tos>=max then writeln('your brein is full')
else
begin
s[tos]:=e;
tos:=tos+1;
end;
end;
begin
max:=n; tos:=1;
clrscr;
writeln('elementu masuvy');
for i:=1 to n do
begin
a[i]:=random(30);
writeln('a[',i,']= ',a[i]);
end;
writeln;
writeln;
writeln('elementu 1shogo steky');
for i:=1 to n div 2 do
begin
push(s1,a[i]);
writeln('s1[',i,']= ',s1[i]);
end;
writeln;
writeln;
tos:=6;
writeln('elementu 2gogo steky');
for i:=n downto n div 2 +1 do
begin
push(s2,a[i]);
writeln('s2[',i,']= ',s2[i]);
end;
readkey;
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Потому, что ты описал для стека массив 1 .. n/2, а засунуть в него пытаешься в 2 раза больше значений. Тебе во втором цикле надо не Push, а Pop...

Добавлено через 10 мин.
P.S. Компилируй программу в режиме {$R+} и ты избавишься от многих проблем...

Update Ну и накручено... Нет... Проблем на самом деле 3:
1) TOS перед вторым циклом работы со стеком надо присваивать 1, а не 6 (точно так же, как сделано перед первым циклом заполнения стека)
2) когда распечатываешь значение стека - надо пользоваться тоже TOS, а не i ...
3) ну, и наконец, S должно быть Var-параметром в Push... Иначе будут сплошные нули...

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


Человек
*****

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

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


удаленно

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
3) ну, и наконец, S должно быть Var-параметром в Push... Иначе будут сплошные нули..

всмислі s1,s2?
а так всьо зрозуміло дякую
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Человек
*****

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

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


Цитата(Гость @ 15.12.2007 20:05) *

всмислі s1,s2?
procedure push(var s:stack; const e:integer);


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

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

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


 ! 
Гость, пишите по-русски!



--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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