![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Night |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Женский Реальное имя: Иришка Репутация: ![]() ![]() ![]() |
Помогите, пожалуйста, написать программу на Турбо Паскале «стековый калькулятор» до 23.12.06. Моя программа почему-то не работает. Ответы и советы присылайте на <censored> Заранее большое СПАСИБО! вот сама программа:
Program calculator; Const maxStack = 250; {максимальный размер стека } c: Integer=0; Var stek: array [1..maxStack] of Integer; {стек} x: integer; s: string; a, b: integer; Procedure Push; {положить на стек} begin if c<>maxStack then begin inc ©; stek[c] := x; writeln('pushed ', stek[c]); end; end; Function Pop:integer; {вытащить из стека } begin if c<>0 then begin pop:=stek[c]; dec©; end; end; begin writeln('введите функцию для калькулятора'); write(':'); readln(a); writeln('введите функцию для калькулятора '); write(':'); readln(b); val(s, a, b); if (b=0) and ((length(s)>1) or(s[1]<> '-')) then push else case s[1] of '+': begin a:=pop; b:=pop; x:=a+b; push; { writeln(x);} end; '-': begin a:=pop; b:=pop; x:=a-b; push; { writeln(x);} end; '/': begin a:=pop; b:=pop; if a=0 then writeln ('¤Ґ«Ёвм 0 Ќ…‹њ‡џ') else begin x:=b div a; push; { writeln(x);} end; end; '*': begin a:=pop; b:=pop; x:=a*b; push; { writeln(x);} end; end; writeln('x=',x); readln; end. Сообщение отредактировано: Night - 22.12.2006 11:55 |
![]() ![]() |
Malice |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сделай процедуру push с параметром, чтоб было ясно, что кладется в стек. А то вот в этом месте:
if (b=0) and ((length(s)>1) or(s[1]<> '-')) then туда кладется хз что.. или после val напиши x=a; |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 17:28 |