Контроль вводимых данных в программе перевода систем счисления - Free Pascal

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

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

Всем привет, я написал программу для перевода чисел из 8сс в 10сс и обратно, но не в этом суть. Препод сказал сделать проверку на вводимые данные, я сделал так, чтобы при вводе букв(да да, в программу для цифр препод вводит буквы) программа выдавала ошибку и просила ввести заново. И тут вся соль, препод хочет, чтобы при вводе чего-то вроде <<123234sfdsfgvs>> программа считывала лишь цифры а буквы игнорила. Подскажите пожалуйста как сделать подобную проверку.

Решение задачи: «Контроль вводимых данных в программе перевода систем счисления»

textual
Листинг программы
var s: string;
    k: integer;
 
begin
  write('S = ');
  readln(S);
  for k := length(s) downto 1 do
    if not (s[k] in ['0'..'9'])
      then delete(s, k, 1);
  if length(s) = 0 then s := '0';
  writeln('New S = ', s);
  readln
end.

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

В данном коде выполняется контроль вводимых данных в программе перевода систем счисления.

  1. Объявлены две переменные: s — строка, в которую будет записываться введенное значение; k — целочисленная переменная, используемая в циклах.
  2. Выводится сообщение с просьбой ввести строку для перевода.
  3. Введенная строка считывается и сохраняется в переменной s.
  4. Переменная k инициализируется значением длины строки s.
  5. В цикле проверяется каждый символ строки s. Если символ является числом (от '0' до '9'), то он остается в строке. Если символ не является числом, он удаляется из строки.
  6. Если после удаления всех нечисловых символов длина строки равна нулю, то в переменную s записывается значение '0'.
  7. Выводится сообщение с результатом контроля введенных данных.
  8. Программа ожидает ввода данных с помощью функции readln.

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

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