IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> рекурсия, Определить число, получаемое выписыванием в обратном порядке цифр зада
marwell
сообщение 2.04.2010 16:18
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

Репутация: -  1  +


Определить число, получаемое выписыванием в обратном порядке цифр заданного натурального числа (использовать рекурсивную функцию). Ничего не приходит в голову blink.gif Кто-нибудь, дайте пожалуйста направление(код постараюсь написать сам)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 3.04.2010 13:10
Сообщение #2


Гость






Цитата
стоит ли полагаться на такие вещи..
На какие такие? Я не делаю ничего запрещенного, заметь, сначала - рекурсивный вызов, потом - использование значения b. То есть, никогда не будет использовано неинициализированное тобой значение b. Чтобы оно начало использоваться - рекурсия должна дойти до конца (x = 0), но тогда b уже станет равно 1. Опять же, "типизированная константа" = "статическая переменная", она описывается в сегменте данных (а не в стеке, как обычная переменная), и поэтому сохраняет свое значение не только между вызовами простых функций, но и между вызовами рекурсивных тоже, так что и с этой стороны подвохов быть не может. Так что это вполне приемлемая конструкция.

Цитата
У меня не каждый раз срабатывала под FPC
Если еще у кого-то будут неправильные срабатывания - отпишитесь здесь, интересно, на каких значениях это происходит. Чему разно изначальное число, и что возвращает функция. Единственный вариант, который приходит в голову - это когда "перевернутое" число не влезет в LongInt (например, 1234567899), но тут уж ничего не поделаешь.
 К началу страницы 
+ Ответить 
Lapp
сообщение 3.04.2010 13:46
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(volvo @ 3.04.2010 14:10) *
На какие такие? Я не делаю ничего запрещенного,
Я все это понимаю, потому я и выразился туманно smile.gif.
Способ, конечно, аппетитный. Чтобы корректно обрабатывать внутренние нули мне пришлось оценивать порядок частного, вводить дополнительный цикл - а тут все уитывается на автомате. Вроде действительно должно работать.. Я наблюдал ошибку на ноутбуке, а тут (на домашнем компе) не могу воспроизвести. Завтра попробую еще на ноуте.

Не исключено, что я что-то путаю. Значения были 12345 и 67890, кажется.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
marwell   рекурсия   2.04.2010 16:18
Client   брать остатока от деления на 10, делай с ним что н...   2.04.2010 16:21
marwell   брать остатока от деления на 10, делай с ним что ...   2.04.2010 16:23
marwell   черт, даже не знаю, как это можно написать с рекур...   2.04.2010 16:48
volvo   Ничего не потеряем: procedure rec(x: longint); beg...   2.04.2010 17:04
marwell   спасибо! :good:   2.04.2010 17:21
marwell   а реально ли сделать это через функцию, а не проце...   2.04.2010 21:30
Client   пол часа мучений стоили этого :) скорей всего мо...   2.04.2010 22:12
volvo   Можно конечно... Заметь, без побочных эффектов. Ст...   2.04.2010 23:13
marwell   Можно конечно... Заметь, без побочных эффектов. С...   3.04.2010 9:23
Lapp   а разве можно константе b=0 присвоить значение b:=...   3.04.2010 9:32
marwell   спасибо огроменное :good:   3.04.2010 3:59
marwell   программа выдает только нули :blink:   3.04.2010 9:38
Lapp   программа выдает только нули :blink: Попробуй вот ...   3.04.2010 10:43
Client   хм, а собственно где нули получаются? при каких да...   3.04.2010 10:55
marwell   хм, а собственно где нули получаются? при каких д...   3.04.2010 10:57
Client   volvo :good: есть над чем подумать :) [b]Добавл...   3.04.2010 11:05
volvo   Что не так?Не так работает под Турбо-Паскалем, над...   3.04.2010 11:50
Lapp   Не так работает под Турбо-ПаскалемУ меня не каждый...   3.04.2010 12:17
volvo   На какие такие? Я не делаю ничего запрещенного, за...   3.04.2010 13:10
Lapp   На какие такие? Я не делаю ничего запрещенного,Я в...   3.04.2010 13:46
Lapp   наблюдал ошибку на ноутбуке, а тут (на домашнем ко...   4.04.2010 3:16
volvo   Нули получаются при запуске программы из 9-го пост...   4.04.2010 12:12


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 16:09
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"