Контроль вводимых данных в программе перевода систем счисления - 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.
Объяснение кода листинга программы
В данном коде выполняется контроль вводимых данных в программе перевода систем счисления.
- Объявлены две переменные: s — строка, в которую будет записываться введенное значение; k — целочисленная переменная, используемая в циклах.
- Выводится сообщение с просьбой ввести строку для перевода.
- Введенная строка считывается и сохраняется в переменной s.
- Переменная k инициализируется значением длины строки s.
- В цикле проверяется каждый символ строки s. Если символ является числом (от '0' до '9'), то он остается в строке. Если символ не является числом, он удаляется из строки.
- Если после удаления всех нечисловых символов длина строки равна нулю, то в переменную s записывается значение '0'.
- Выводится сообщение с результатом контроля введенных данных.
- Программа ожидает ввода данных с помощью функции readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д