Вопрос задан 20.02.2019 в 05:25. Предмет Информатика. Спрашивает Лазерко Диана.

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Смирнов Евгений.
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.
0 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.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вместо оператора goto в Turbo Pascal можно использовать условные операторы (if-then-else) и циклы (while, repeat-until) для реализации требуемого функционала.

В данном случае, чтобы выполнить определенный цикл в зависимости от введенной буквы, можно использовать конструкцию if-then-else.

Пример решения данной задачи без использования оператора goto:

```pascal Program ABC; Uses CRT; var a, b, x, y, w, z: Real; choice: Char; begin writeln('la-la-la'); writeln('Если хотите вычислить сумму, то нажмите C, произведение - D, операцию деления - E'); readln(choice); ClrScr;

if choice = 'C' then begin readln(a, b); writeln(a + b); readln; ClrScr; end else if choice = 'D' then begin readln(x, y); writeln(x * y); readln; ClrScr; end else if choice = 'E' then begin readln(w, z); writeln(w / z); readln; ClrScr; end else begin writeln('Error, please enter C, D or E'); readln; ClrScr; end; end. ```

В данном примере, при вводе буквы 'Q' программа выполнит операцию, которая выводит текст "la-la-la" и предлагает выбрать операцию. Если пользователь вводит любую другую букву, программа выведет сообщение об ошибке и попросит ввести C, D или E.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос