Проверка на нажатие Enter - Pascal

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

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

Есть часть программы, в которой мы вводим основание системы счисления, оно может быть от 2-х до 36. Если пользователь вводит какой-то символ вместо числа или число не попадающее в диапазон от 2 до 36, то программа просит повторить ввод. Хотелось бы еще чтобы при нажатия клавиши Enter был не просто переход на новую строку, а предложение ввести число заново (программа должна считать что введено "пустое число").
repeat
            write('Enter radix: ');
            readln(radix);
            InpRes := IOResult;
            if InpRes = 0 then
                RadRes := (radix >= 2) and (radix <= 36);
            if (not RadRes) or (InpRes <> 0) then
                writeln('Wrong radix, please note, that radix can be from 2 to 36');
        until (RadRes = true) and (InpRes = 0);

Решение задачи: «Проверка на нажатие Enter»

textual
Листинг программы
var s:string;
    radix,k:integer;
................................
repeat
write('Enter radix: ');
readln(s);
val(s,radix,k);
if(k<>0)or not(radix in [2..36])
then writeln('Wrong radix, please note, that radix can be from 2 to 36');
until (k=0) and (radix in [2..36]);

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

  1. Создается переменная s типа string для ввода пользователем значения.
  2. Создаются переменные radix и k типа integer для хранения целочисленных значений.
  3. Пользователю выводится приглашение Enter radix: для ввода значения.
  4. Пользователь вводит значение, которое сохраняется в переменной s.
  5. Вызывается процедура val, которая пытается преобразовать строковое значение s в целочисленное значение radix, а значение k используется для проверки успешности преобразования.
  6. Если k не равно 0 или radix не входит в диапазоне от 2 до 36, выводится сообщение Wrong radix, please note, that radix can be from 2 to 36, оповещающее пользователя о неверном вводе.
  7. Цикл повторяется до тех пор, пока k не станет равным 0 и значение radix будет находиться в диапазоне от 2 до 36.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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