Рекурсивные процедуры и функции: писать рекурсивную логическую функцию Simm - Pascal ABC

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

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

Описать рекурсивную логическую функцию

Simm

(S,I,J), проверяющую, является ли симметричной часть строки S, начинающая i-м и заканчивающая j-м ее элементами.

Решение задачи: «Рекурсивные процедуры и функции: писать рекурсивную логическую функцию Simm»

textual
Листинг программы
uses crt;
function Simm(s:string;i,j:byte):boolean;
Begin
if (j-i<=1)and(s[i]=s[j]) then Simm:=true
else Simm:=(s[i]=s[j]) and Simm(s,i+1,j-1);
end;
var s:string;
    n,k:byte;
begin
writeln('Введите строку:');
read(s);
writeln('Введите позиции начала и конца интервала:');
read(n,k);
write(Simm(s,n,k));
End.

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

  1. Объявлена рекурсивная логическая функция Simm, которая принимает три аргумента: строку s, начальную позицию i и конечную позицию j.
  2. В функции реализована проверка базового случая: если разница между позициями j-i меньше или равна 1 и символы в позициях i и j равны, то функция возвращает true.
  3. В противном случае функция вызывает саму себя, передавая в качестве аргументов строку s, увеличенную позицию i и уменьшенную позицию j.
  4. Переменная Simm инициализируется значением базового случая.
  5. В основной программе объявлены переменные s, n и k типа byte.
  6. Пользователю предлагается ввести строку.
  7. Пользователю предлагается ввести начальную и конечную позиции интервала.
  8. Результат работы функции Simm выводится на экран.

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


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

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

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