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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 19:13   #1
Вика I
 
Регистрация: 17.05.2011
Сообщений: 9
По умолчанию рекурсия

дана строка оканчивающаяся точкой.Напечатайте этот текст в обратном порядке... с помощью рекурсии
я не знаю, как делать с рекурсией...
Вика I вне форума Ответить с цитированием
Старый 17.05.2011, 19:20   #2
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

из года в год одно и то же...

Код:
AnsiString s;

void Print(int i)
{
if (i < s.Length)
  Print(i+1);
cout << s[i];
};

где-то там: Print(1);
mMAg вне форума Ответить с цитированием
Старый 17.05.2011, 20:00   #3
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

mMAg судя по всему в этом году другое) Нужно вывести не последовательно(как у вас), а в обратном порядке

Код:
AnsiString s;

void Print(int i) {
    if (i >= 0){
        cout << s[i];
        Print(i-1);
   } 
};

main(void){
    ...
    Print(s.Length);
}
Кажется как-то так.
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 17.05.2011, 20:15   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

У mMAg'а всё правильно, выводится в обратном порядке. Гляньте, рекурсивный вызов прекратиться только когда i станет равным s.Length и тогда, с конца, начнётся вывод символов.
На случай, если нужен не borland c++
Код:
void print(const char* str) {
  if (*str != '.')
    print(str + 1);
  cout << *str;
}

int main() {
  print("Hello, World.");
}
netrino вне форума Ответить с цитированием
Старый 17.05.2011, 21:01   #5
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Да, действительно я погорячился... Спасибо netrino
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 18.05.2011, 16:02   #6
Вика I
 
Регистрация: 17.05.2011
Сообщений: 9
По умолчанию

такую мы не проходили...мне тут подсказали как делать...но я не пойму, где ошибка, подскажите пож-та, если сможете):
program
function reverse(st:string):string;
begin
if length(st)=1 then reverse:=st else
reverse:=st[length(st)]+reverse(copy(st,1,length(st)-1));
end;
begin
s:=reverse;
end.
Вика I вне форума Ответить с цитированием
Старый 18.05.2011, 16:15   #7
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
такую мы не проходили...
Конечно, не проходили. Там С++, а тут Паскаль -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 18.05.2011, 16:38   #8
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Не вижу проблем написать так:

Код:
String s;

procedure Print(int i)
{
if (i < s.Length)
  Print(i+1);
//вывести i-й элемент строки на экран
};

где-то там: Print(1);
mMAg вне форума Ответить с цитированием
Старый 18.05.2011, 18:29   #9
Вика I
 
Регистрация: 17.05.2011
Сообщений: 9
По умолчанию

а то что я решила, че не правильно
Вика I вне форума Ответить с цитированием
Старый 18.05.2011, 19:09   #10
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Код:
s := reverse;
А что переворачиваете-то? В reverse строку передавать надо.
netrino вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рекурсия sergi Помощь студентам 4 25.02.2011 10:49
Рекурсия Shadows_Behind Помощь студентам 6 26.05.2010 15:07
Рекурсия DrDre9991 Паскаль, Turbo Pascal, PascalABC.NET 4 22.05.2010 15:00
Рекурсия Alexsey1991 Помощь студентам 1 13.04.2010 21:19
Рекурсия seeton Помощь студентам 0 08.12.2009 17:41