Чем можно заменить оператор goto в турбо паскале. Существует программа нужно, чтобы при нажатии определенной буквы выполнялась определенный цикл, как это сделать не используя оператор безусловного перехода goto. Приведите прим...

Чем можно заменить оператор goto в турбо паскале. Существует программа нужно, чтобы при нажатии определенной буквы выполнялась определенный цикл, как это сделать не используя оператор безусловного перехода goto. Приведите пример на следующем коде: Program ABC; Uses CRT; var a, b, x, y, w, z: Real; C, D, E, Q: integer; begin begin {Q} writeln ('la-la-la'); writeln ('Если хотите вычислить сумму, то нажмите С, произведение- D, операцию деления -E '); readln; ClrScr; end; begin {c} readln(a, b); writeln (a+b); readln; ClrScr; end; begin {D} readln(x, y); writeln (x*y); readln; ClrScr; end; begin {E} readln(w, z); writeln (w/z); readln; ClrScr; end; end. Если пользователь нажимает букву Q нужно вернуть его к операции: " begin {Q} writeln ('la-la-la'); writeln ('Если хотите вычислить сумму, то нажмите С, произведение- D, операцию деления -E '); end;" В случае, если пользователь вводит любую другую букву нужно сказать, что 'Error, please enter C, E or D' и после того, как он введет нужную букву вывести соответствующую операцию
Гость
Ответ(ы) на вопрос:
Гость
Почему бы не использовать условия if для выбора нужного цикла по введённой букве? Program ABC; Uses CRT; var   a, b, x, y, w, z: Real;   C, D, E, Q: integer;   action: char; begin   action := 'x';   while not (action = 'Q') do   begin     writeln ('la-la-la');     writeln ('Если хотите вычислить сумму, то нажмите С, произведение- D, операцию деления -E ');     readln(action);     ClrScr;     if action = 'C' then     begin       readln(a, b);       writeln (a+b);       readln(action);       ClrScr;     end;     if action = 'D' then     begin       readln(x, y);       writeln (x*y);       readln(action);       ClrScr;     end;     if action = 'E' then     begin       readln(w, z);       writeln (w/z);       readln(action);       ClrScr;     end;     if not ( (action = 'C') or (action = 'D') or (action = 'E') or (action = 'Q') ) then     begin       writeln('Ошибка, введите C, D, E или Q');       readln(action);       ClrScr;     end;   end; end.
Гость
Program ABC; Uses CRT; var   a,b:real;   c:char; begin   ClrScr;   repeat     Writeln('la-la-la');     Write('Если хотите вычислить сумму, то нажмите С,');     Writeln(' произведение- D, операцию деления -E ');     Writeln('Для завершения работы нажмите Q');     c:=ReadKey;     case c of     'C','c':begin       Write('Сложение: введите слагаемые: '); Read(a,b);       Writeln('Сумма равна ',a+b);       Write('Для продолжения нажмите любую клавишу');       ReadKey;       ClrScr       end;     'D','d':begin       Write('Умножение: введите сомножители: '); Read(a,b);       Writeln('Произведение равно ',a*b);       Write('Для продолжения нажмите любую клавишу');       ReadKey;       ClrScr       end;     'E','e':begin       Write('Деление: введите делимое и делитель: '); Read(a,b);       Writeln('Частное равно ',a/b);       Write('Для продолжения нажмите любую клавишу');       ReadKey;       ClrScr       end;     'Q','q':;     else begin       Writeln(#13#10,'Error, please enter C, E or D',#13#10);       end     end;   until c in ['Q','q'];   Writeln('Ждем Вас снова!');   Readkey end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы