Рекурсия

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у, вместе, иначе , строку , Текст, введен, точки, печать, выводим, сделал, отбросить, точку
Добавлено: 30 Апреля 2015 18:14:23 Добавил: Илья Добряк Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...