Простейший калькулятор | Язык Паскаль
Pascal. Основы программирования Сложные Средние Простые задачи

Простейший калькулятор

Написать программу, в которой вводятся два числа-операнда x и y и знак арифметической операции (+, –, /, *). Вычислить результат z в зависимости от знака.

Предусмотреть реакции на возможный неверный знак операции, а также на ввод y=0 при делении.

Организовать возможность многократных вычислений без перезагрузки программы (то есть построить цикл). В качестве символа прекращения вычислений принять '0'.

Алгоритм решения задачи:

  1. Вводим знак. Если он является символом '0', то прерываем цикл.
  2. Если введенный символ - арифметическая операция, запрашиваем два числа и выполняем вычисления в зависимости от введенного знака.
  3. Иначе сообщаем о некорректном вводе знака.

Программа на языке Паскаль:

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