Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2011, 17:03   #1
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
Вопрос Задача на рекурсию в паскале

Добрый день.

Условие задачи таково:
через рекурсию,любое введённое слово сделать в обратном порядке (т.е. чтобы получился палиндром). Небольше, чем 256 символов (это видимо дано для того, чтобы определить правильный (нужный) стиль (вид) для переменной)

И заодно,не могли бы Вы объяснить доступно,что такое всё таки рекурсия?

Заранее спасибо)
Novenkaja вне форума Ответить с цитированием
Старый 15.02.2011, 17:31   #2
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Рекурсия - это когда процедура или функция вызывает сама себя. Для этого напиши ее самою, а потом в ней же и вызовешь ее.
baster128 вне форума Ответить с цитированием
Старый 15.02.2011, 17:35   #3
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

В смысле вызывает сама себя?
это что я пишу скажем через функицю,а потом как то делают так,чтобы вернулись все действия обртано к функции???
мы в универе эту тему пока рассматривали всего на одной лекции,да и то поверхостно.... и пока не совсем понятно

ты не мог бы мне помочь с кодом,и если не трудно и если есть время заодно его потом и объяснить?
буду тебе очень благодарна)
Novenkaja вне форума Ответить с цитированием
Старый 15.02.2011, 17:35   #4
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

у меня в принципе наброски какие то есть,но не знаю,как это реализовать и до конца првильно составить

Последний раз редактировалось Novenkaja; 15.02.2011 в 17:37.
Novenkaja вне форума Ответить с цитированием
Старый 15.02.2011, 17:41   #5
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

program Rec;
function recObm(s:string):string;
var b:integer;
begin
if length(s)>1 then
begin
result:=s[length(s)]+recObm(copy(s,2, length(s)-2))+s[1];
end
else
result:=s;
end;
var st:string;
begin
readln(st);
st:=recObm(st);
writeln(st);
end;
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 15.02.2011, 17:42   #6
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Код:
Program Arsac;
Var first: word;
Procedure posledov (i: word);
Begin
   Writeln (i);
   If i=1 then exit;
   If odd(i) then posledov(3*i+1) else posledov(i div 2);
End;
Begin
   Write (‘ введите первое значение ’); readln (first);
   Posledov (first);
   Readln ;
End.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 15.02.2011 в 19:35.
baster128 вне форума Ответить с цитированием
Старый 15.02.2011, 17:43   #7
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
program Rec;
function recObm(s:string):string;
var b:integer;
begin
    if length(s)>1 then
     begin
        result:=s[length(s)]+recObm(copy(s,2, length(s)-2))+s[1];
     end
     else
       result:=s;
end; 
var st:string;
begin
   readln(st);
   st:=recObm(st);
  writeln(st);
end;
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 15.02.2011, 17:52   #8
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

New man

спасибо,я её быстренько ввела в программу,но он выдал ошибку,что identifier not found result,именно в тех двух местах,где result указано в коде

и ещё,я могу написать var st:string между прогарм и функция ?
т.е
program Rec;
var st:string;
function recObm(s:string):string;
var b:integer;
begin

(а потом всё так же как и вы написали)
Novenkaja вне форума Ответить с цитированием
Старый 15.02.2011, 17:54   #9
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Код целиком давай
baster128 вне форума Ответить с цитированием
Старый 15.02.2011, 17:55   #10
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

ребята,Вы меня не много запутали.ладно что один через функцию,а другой через процедуру,но у вас полностью отличаются виды решения.

New man


Вы составили код,который в ране будет выдавать в обратную сторону число или слово?
Novenkaja вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на рекурсию Rusl92 Помощь студентам 1 13.01.2011 22:36
Задача на рекурсию(( kinza Помощь студентам 6 08.06.2009 09:51
Задача на рекурсию. KoHgpaT Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2006 20:49