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

Задача: 

Написать программу, в которой вводятся два операнда Х и 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!')
        end;
end.

Пример работы программы:

sign: 8
Bad sign!
sign: 4
Bad sign!
sign: -
x=5
y=6
-1.00
sign: +
x=4.45
y=10.66
15.11
sign: *
x=-3.4
y=-67
227.80
sign: /
x=-78
y=123
-0.63
sign: /
x=9
y=0
Division by zero!
sign: i
Bad sign!
sign: 0