• Чем можно заменить оператор 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' и после того, как он введет нужную букву вывести соответствующую операцию

Ответы 7

  • Исправил, принимайте
  • вроде все работает, большое спасибо.
    • Автор:

      marisol
    • 6 лет назад
    • 0
  • #13#10 - это десятичные управляющие коды CR, LF - перевод строки и возврат каретки. Последовательность кодов, вызывающая смену строки. Заменяет отдельно стоящий вызов Writeln;
    • Автор:

      waters
    • 6 лет назад
    • 0
  • В общем, смотрите таблицу кодов ASCII )))
    • Автор:

      sheppard
    • 6 лет назад
    • 0
  • спасибо
    • Автор:

      wagner43
    • 6 лет назад
    • 0
  • Почему бы не использовать условия 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('Ждем Вас снова!');  Readkeyend.
    • Автор:

      hamza5jpy
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years