Определить, какие цифры есть в выражении (рекурсия) - 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.

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

  1. Создается тип данных mnz, который представляет собой множество символов.
  2. Создается процедура cifry, которая принимает строку s, байт i и переменную m типа mnz.
  3. В начале процедуры проверяется, является ли символ s[i] цифрой от 0 до 9. Если это так, то к переменной m добавляется соответствующий символ.
  4. Если i меньше длины строки s, то вызывается рекурсивно процедура cifry для следующего символа.
  5. Создается переменная a типа mnz и инициализируется пустым множеством.
  6. Создается переменная s типа string и инициализируется пустой строкой.
  7. Создается переменная c типа char.
  8. Выводится сообщение, предлагающее пользователю ввести арифметическое выражение, содержащее цифры.
  9. Считывается строка s с помощью функции readln.
  10. Вызывается процедура cifry с аргументами s, 1 и a.
  11. Если a равно пустому множеству, выводится сообщение, что пользователь не ввел ни одной цифры.
  12. Иначе выводится сообщение, содержащее список цифр, найденных в выражении. Для этого используется цикл for, который перебирает символы от 0 до 9. Если символ присутствует в переменной a, то он выводится на экран.

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


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

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

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