Рекурсия
program recursion;
var stroka,newstroka:string;
find:integer;
procedure recurse (n:integer);//Процедура-рекурсия.Справочка:Рекурсия-это процедура,которая вызывает саму себя
begin
if n<=0 then exit;//n-Счетчик,ставим условие,чтобы остановить бесконечную рекурсию и предотвратить ошибку типа "Индекс элемента вне массива"
newstroka:=newstroka+stroka[n];//Получаем строку наооборот,у нас есть позиция символа ".",который мы нашли функцией паскаля "pos"(Об этом ниже)
recurse(n-1);//вызываем рекурсию
end;
begin
Writeln('Введите текст');
Readln(stroka);
find:=pos('.',stroka);//Данная функция находит позицию искомого символа,findу присваивается позиция
if find>0 then//если позиция больше нуля то
begin
recurse(find-1);//вызываем процедуру recurse;если нужно переписать текст наооборот вместе с точкой то вызываем рекурсию так recurse(find);Find-1 сделал чтобы отбросить точку
writeln(newstroka);//выводим на печать измененную строку
end
else//иначе
writeln('Текст введен без точки!');
end.
Теги:
recurse,
newstroka,
stroka,
рекурсию,
begin
,
вызываем,
чтобы,
writeln,
наооборот,
текст,
позиция,
символа,
integer,
больше,
позиция
,
процедуру,
нужно,
присваивается,
искомого,
функция,
находит,
позицию,
переписать,
findу,
вместе,
иначе
,
строку
,
Текст,
введен,
точки,
печать,
выводим,
сделал,
отбросить,
точку
Комментарии:
Нету комментариев для вывода...