Определить, какие цифры есть в выражении (рекурсия) - Pascal ABC
Формулировка задачи:
В строке содержится запись арифметического выражения. Какие цифры есть в выражении? Переделать через рекурсию
Решение задачи: «Определить, какие цифры есть в выражении (рекурсия)»
textual
Листинг программы
type mnz=set of char; procedure cifry(s:string;i:byte;var m:mnz); begin if s[i] in ['0'..'9'] then m:=m+[s[i]]; if i<length(s) then cifry(s,i+1,m); end; var a:mnz; s:string; c:char; begin writeln('Введите арифметическое выражение, содержащее цифры'); readln(s); cifry(s,1,a); if a=[] then write('Вы не ввели ни одной цифры') else begin writeln('В выражении есть цифры:'); for c:='0' to '9' do if c in a then write(c:2); end; end.
Объяснение кода листинга программы
- Создается тип данных mnz, который представляет собой множество символов.
- Создается процедура cifry, которая принимает строку s, байт i и переменную m типа mnz.
- В начале процедуры проверяется, является ли символ s[i] цифрой от 0 до 9. Если это так, то к переменной m добавляется соответствующий символ.
- Если i меньше длины строки s, то вызывается рекурсивно процедура cifry для следующего символа.
- Создается переменная a типа mnz и инициализируется пустым множеством.
- Создается переменная s типа string и инициализируется пустой строкой.
- Создается переменная c типа char.
- Выводится сообщение, предлагающее пользователю ввести арифметическое выражение, содержащее цифры.
- Считывается строка s с помощью функции readln.
- Вызывается процедура cifry с аргументами s, 1 и a.
- Если a равно пустому множеству, выводится сообщение, что пользователь не ввел ни одной цифры.
- Иначе выводится сообщение, содержащее список цифр, найденных в выражении. Для этого используется цикл for, который перебирает символы от 0 до 9. Если символ присутствует в переменной a, то он выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д