Простейший калькулятор
Написать программу, в которой вводятся два числа-операнда x и y и знак арифметической операции (+, –, /, *). Вычислить результат z в зависимости от знака.
Предусмотреть реакции на возможный неверный знак операции, а также на ввод y =0 при делении.
Организовать возможность многократных вычислений без перезагрузки программы (то есть построить цикл). В качестве символа прекращения вычислений принять ‘0’.
Алгоритм решения задачи:
- Вводим знак. Если он является символом ‘0’, то прерываем цикл.
- Если введенный символ — арифметическая операция, запрашиваем два числа и выполняем вычисления в зависимости от введенного знака.
- Иначе сообщаем о некорректном вводе знака.
Программа на языке Паскаль:
var x, y, z: real; sign: char; begin while True do begin write('sign: '); readln(sign); if sign = '0' then break; if sign in ['+','-','*','/'] then begin write('x = '); readln(x); write('y = '); readln(y); case sign of '+': begin z := x + y; writeln(z:5:2) end; '-': begin z := x - y; writeln(z:5:2); end; '*': begin z := x * y; writeln(z:5:2); end; '/': if y <> 0 then begin z := x / y; writeln(z:5:2) end else writeln('Division by zero!'); end; end else writeln('Bad sign!'); writeln; end; end.
Пример работы программы:
sign: + x = 8.123 y = -3.5 4.62 sign: / x = 3.4 y = 2.75 1.24 sign: / x = 3 y = 0 Division by zero! sign: $ Bad sign! sign: 0
Паскаль. Программа калькулятор. Пример работы оператора выбора case
Паскаль. Программа калькулятор. Пример работы оператора выбора case
На данном уроке рассмотрим оператор выбора на языке программирования Паскаль.
Program calc; var a,b,m:integer; begin writeln('Введите первое число:'); read (a); writeln('Введите второе число:'); read (b); writeln('Выберите команду:'); writeln('Если нужно сложить, нажмите "1"'); writeln('Если нужно умножить, нажмите "2"'); writeln('Если нужно разделить, нажмите "3"'); writeln('Если нужно вычесть, нажмите "4"'); writeln('Возвратиться назад, нажмите "5"'); read (m); case m of 1: write('Ответ =',a+b); 2: write('Ответ =',a*b); 3: write('Ответ =',a/b); 4: write('Ответ =',a-b); end; //Дополнительное условие if m = 5 then writeln('Выберите команду:'); writeln('Если нужно сложить, нажмите "1"'); writeln('Если нужно умножить, нажмите "2"'); writeln('Если нужно разделить, нажмите "3"'); writeln('Если нужно вычесть, нажмите "4"'); read (m); case m of 1: write('Ответ =',a+b); 2: write('Ответ =',a*b); 3: write('Ответ =',a/b); 4: write('Ответ =',a-b); end; end.
Программу на языке «Кумир» вы можете посмотреть здесь
0 8 391 просмотров
Вам также может быть интересно
Паскаль 0 1 106 просмотров
Задан список из десяти городов. Поменять местами название первого города и города,начинающегося с буквы
Паскаль 0 6 665 просмотров
Задача про банк на языке Паскаль Задача про банк на языке Паскаль. Банк «ЮГИНВЕСТ»
Паскаль 0 22 134 просмотров
Написать программу на языке Паскаль по заданной блок-схеме Задание: Определите значение переменной a и b после
Паскаль 0 5 948 просмотров
Паскаль. Заполнить матрицу 3х3 случайными числами На данном уроке рассмотрим, как работает матрица(двумерный массив)
Простой калькулятор в Pascal
Ниже приведён пример программы простого калькулятора. Программа получает от пользователя 2 произвольных числа, знак математической операции (+ — * / %) и выполняет соответствующую операцию. Затем выводит ответ. После программа спрашивает повторить ли операцию.
Использованы типы переменных real (дробные числа) и string (для ввода знаков)
Условный операторif
Цикл while
Пример программы написаной на языке Pascal в среде Pascal ABC.Net
var
a, b, c: real;//Дробный тип переменных
d, e: string;//символьный тип переменных
begin
e := ‘да’;//Объявляем начальное значение переменной, отвечающей за цикл
while e = ‘да’ do //начало цикла
begin
writeln(‘Введите первое число’);//вывод на экран сообщения
readln(a);//чтение с клавиатуры переменной
writeln(‘Введите второе число’);//вывод на экран сообщения
readln(b);//чтение с клавиатуры переменной
writeln(‘Введите знак математической операции’);//вывод на экран сообщения
readln(d);//чтение с клавиатуры переменной символьной(знак математической операции)
if d = ‘+’ then//условие если d имеет значение «+», тогда
c := a + b;//c примет значение а+b
if d = ‘-‘ then
c := a — b;
if d = ‘*’ then
c := a * b;
if d = ‘/’ then
c := a / b;
if d = ‘%’ then
c := a / 100 * b;
writeln(‘= ‘, c);//Вывод на экран переменной с
writeln(‘Повторить? да/нет’);//Выводим на экран сообщение
readln(e);//считываем переменную, отвечающую за цикл
end;//конец цикла
readln;//чтобы программа не закрывалась сама
end.
Исходник программы можно скачать ниже.
Калькултор.pas
Статью и программу подготовил
МБОУ «Школа №7» г. Богородск
Лосев Антон Владимирович
Как написать простейший калькулятор?
Написать программу, моделирующую простейший калькулятор. Пользователь вводит выражение типа ’6+3’ (цифра, знак операции +, цифра) и получает результат.
я написал что то вроде этого:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
program calcus; uses crt; var a,b,c:integer; d:string; begin clrscr; writeln('vvedite cifru 1'); readln(a); writeln('vvedite znak operacii'); readln(d); writeln('vvedite cifru 2'); readln(c); if d=('+') then b:=a+c; if d=('-') then b:=a-c; if d=('*') then b:=a*c; if d=('/') then b:=a div c; writeln('otvet: ',b); readln; end.
но препод говорит надо сделать строками а я незнаю =(
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Написать простейший форматтер программ на паскале
Задача — написать простейший форматтер программ на паскале, вот то что есть, вроде со всем.
Простейший калькулятор
Помогите написать простейший калькулятор который умеет + — : * и все.
Простейший калькулятор на действия (+.-./.*), пока не будет выбран знак равно
Написать программу на основе процедуры функции которая до тех пор выполняет простейшей.
Как написать калькулятор
как написать калькулятор ЗАРАНИЕ БЛАГОДАЮ!
23 / 23 / 12
Регистрация: 29.11.2009
Сообщений: 210
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
uses crt; const ASCII=[48..57]; var s,temp:string; i,f,l,code:integer; res:integer; d:byte; begin write('Введите выражение -->'); readln(s); temp:=''; for i:=1 to length(s) do begin if (ord(s[i]) in ASCII) then temp:=temp+s[i]; if not(ord(s[i]) in ASCII) or (i=length(s)) then begin if (i(s)) then begin case s[i] of '+':d:=1; '-':d:=2; '*':d:=3; '/':d:=4; end; val(temp,f,code); temp:=''; end else val(temp,l,code); end; end; case d of 1: res:=f+l; 2: res:=f-l; 3: res:=f*l; 4: res:=f/l; end; writeln(res); readln end.