После перехода по метке код не ждет ввода символа - 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;
Решение задачи: «После перехода по метке код не ждет ввода символа»
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.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt.
- Переменная sym инициализируется символом, который будет использоваться для чтения ввода пользователя.
- Переменная fch инициализируется числом 50.
- Создается метка m1.
- Выводится сообщение с введенным значением fch.
- Выводится сообщение с просьбой ввести символ 'r', если пользователь хочет изменить значение, или любой другой символ, если пользователь не хочет изменять значение.
- Считывается ввод пользователя с помощью функции readln.
- Проверяется, равен ли введенный символ 'r'. Если да, то выполняется следующий блок кода.
- Выполняется команда clrscr, которая очищает экран.
- Выводится сообщение 'Введите частоту f='.
- Считывается ввод пользователя с помощью функции readln.
- Полученное значение сохраняется в переменной fch.
- Если введенный символ равен 'r', то выполняется блок кода после goto m1.
- Конец программы.