После перехода по метке код не ждет ввода символа - Pascal

Узнай цену своей работы

Формулировка задачи:

PROCEDURE Vvod;
var sym:char;
label m1;
begin
fch:=50;
m1: WriteLn('Частота f=',fch);
Writeln('Нажмите клавишу "Esc", если хотите изменить значение.В противном случае любую другую клавишу.');
sym:=readkey;
   if Sym = #27 then
   begin
      clrscr;
      Write(Введите частоту f='); Readln(fch);
      goto m1
   end;
end;
Почему после перехода по метке он не ждет чтобы ввели символ. И как сделать так чтобы ждал? HELP PLS Пробовал Keypressed поставить все равно ничего не получилось.

Решение задачи: «После перехода по метке код не ждет ввода символа»

textual
Листинг программы
uses crt;
var sym:char;
    fch:integer;
label m1;
begin
fch:=50;
m1: WriteLn('Частота f=',fch);
Writeln('Нажмите клавишу "r", если хотите изменить значение.В противном случае любую другую клавишу.');
readln(sym);
if Sym = 'r' then
 begin
  clrscr;
  Write('Введите частоту f=');
  Readln(fch);
  goto m1
 end;
end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt.
  2. Переменная sym инициализируется символом, который будет использоваться для чтения ввода пользователя.
  3. Переменная fch инициализируется числом 50.
  4. Создается метка m1.
  5. Выводится сообщение с введенным значением fch.
  6. Выводится сообщение с просьбой ввести символ 'r', если пользователь хочет изменить значение, или любой другой символ, если пользователь не хочет изменять значение.
  7. Считывается ввод пользователя с помощью функции readln.
  8. Проверяется, равен ли введенный символ 'r'. Если да, то выполняется следующий блок кода.
  9. Выполняется команда clrscr, которая очищает экран.
  10. Выводится сообщение 'Введите частоту f='.
  11. Считывается ввод пользователя с помощью функции readln.
  12. Полученное значение сохраняется в переменной fch.
  13. Если введенный символ равен 'r', то выполняется блок кода после goto m1.
  14. Конец программы.

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы