Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/23: Рейтинг темы: голосов - 23, средняя оценка - 4.74
23 / 23 / 12
Регистрация: 29.11.2009
Сообщений: 210

калькулятор

15.05.2010, 21:14. Показов 4434. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть калькулятор и надо сделать его строками
например 2*2-7+3+10/2 = 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
uses crt;
var f,n:integer; a,b,w:real; i:longint;
begin
clrscr;
writeln('vvedit 4yslo');
readln(a);
repeat
if f=8 then
begin
clrscr;
writeln('vvedit 4yslo');
readln(a);
end;
repeat
repeat
repeat
clrscr;
writeln(a:1:0);
writeln('');
writeln('1-plus 2-minus 3-mnogyty 4-podilyty  5-pidnesty do stepenya 6-dobuty korin 7-dodatkovo  8-o4ystyty 9-EXIT');
readln(f);
if f=9 then exit;
if f=7 then begin clrscr; writeln(a:1:1); writeln(''); writeln('11-sin 12-cos 13-tg 14-ctg 15- nazad'); readln(f); end;
until f>0;
until f<16;
until f<>10;
clrscr;
case f of
1:  write(a:1:1,'+');
2:  write(a:1:1,'-');
3:  write(a:1:1,'x');
4:  write(a:1:1,'/');
5:  write(a:1:1,'^');
6:  write(a:1:1,'sqrt');
end;
if (f<>8) and (f<>6) and (f<>5) and (f<>11) and (f<>12) and (f<>13) and (f<>14) and (f<>15) then readln(b);
if f=5 then readln(i);
if (b=0) and (f=4) then begin writeln('na nul dilyty ne mogna, dlya prodowgenna nazmit Enter'); readln; f:=8; end;
case f of
1: a:=a+b;
2: a:=a-b;
3: a:=a*b;
4: if (b<>0) then a:=a/b;
5: if (i>=0) then begin w:=1; for n:=1 to i do begin w:=w*a; end; a:=w; end;
6: if (a>=0) then a:=sqrt(a);
11: a:=sin(a);
12: a:=cos(a);
13: a:=sin(a)/cos(a);
14: a:=cos(a)/sin(a);
15: a:=a end;
until f=0;
readln;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2010, 21:14
Ответы с готовыми решениями:

Калькулятор
В новой программе OpenCalculator появилась новая возможность – можно настроить, какие кнопки отображаются, а какие – нет. Если кнопка не...

Калькулятор
В первой строке записано арифметическое выражение в виде: &lt;число&gt; &lt;операция&gt; &lt;число&gt; = Число - это натуральное число, не превышающее...

Калькулятор
Я только начал изучать Паскаль, думаю у меня будет много вопросов =) Вот хочу решить задачку program calc; uses CRT; ...

2
 Аватар для Mиxaил
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
16.05.2010, 01:50
попробуй поиск, всегда много полезного можно найти!
ПОИСК
0
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
16.05.2010, 02:59
Mиxaил, немного не то, надо Rom@ искать на тему "Обратная польская запись".
Вкратце, могу сказать, что Ваш пример:
2*2-7+3+10/2
разложится вот в такую запись:
2 2 * 7 - 3 + 10 2/ +
Если почитаете теорию, то Вам станет намного понятнее запись выше. На самом деле всё просто, и в основе решения лежит стек. Ну и есть маленькая загвоздка с порядком следования операторов ( например: "*" и "/" имеют более высокий приоритет, чем "+" и "-"), ну и есть загвоздка со скобками, их тоже надо бы учитывать. А так, есть стек, в котором числа и операции хранятся в таком порядке, который я Вам представил и есть число результата. и в каждый момент времени в цикле учитываются три вещи:
1) Число результата
2) Следующее число
3) Знак операции

Можно рассмотреть Ваш пример. Вот так будет выглядеть стек:
[2] [2][*] [7] [-] [3] [+] [10] [2] [/] [+]
Ну и решение вот так, примерно:
Решение

Первый шаг:
Берём первые два числа и первую операцию: [2] [2] *, получаем 4
Теперь стек выглядит следующим образом:
[4] [7] [-] [3] [+] [10] [2] [/] [+]
Второй шаг:
Берём два числа и операцию:[4] [7] [-]
Теперь стек выглядит следующим образом:
[-3] [3] [+] [10] [2] [/] [+]
Третий шаг:
Берём два числа и операцию:[-3] [3] [+]
Теперь стек выглядит следующим образом:
[0] [10] [2] [/] [+]
Четвёртый шаг:
Берём два числа и операцию:[10] [2] [/]
Теперь стек выглядит следующим образом:
[0] [5] [+]
Пятый шаг:
Берём два числа и операцию:[0] [5] [+]
Теперь стек выглядит следующим образом:
[5]
Больше нет операций/скобок и осталось одно число - следовательно строка имеет правильный формат и можно выводить ответ.

Замечу, что на 3-ем шаге было заметно, что присутствует приоритет у операции "/" перед операцией "+"

Надеюсь вполне ясно объяснил теорию на примере скрытом под cut'om.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2010, 02:59
Помогаю со студенческими работами здесь

калькулятор
Нужно написать программу калькулятор. Плиз может кто-нить уже делал дак выложите ссылку или напишите.

калькулятор
Дайте пожалуйста текст калькулятора!!!!!

Калькулятор
Товарищи програмисты помогите написать мудрёный кулкулятор точнее найти ошибку в готовом коде: uses crt; var op1,op2,code,rez:...

калькулятор
Здраствуйте! Очень нуждаюсь в Вашей помочи Мне надо написать програму которая бы считала выражение из строки напимер user вводит...

Калькулятор
Есть программа, её суть - калькулятор, но не могу понять почему не работает Program example1; Var a: char; x, y, c: real; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru