|
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
|
|
С помощью рекурсии вывести на экран весь диапазон между заданными числами26.03.2014, 19:05. Показов 7979. Ответов 31
Метки нет (Все метки)
Ребята помогите понять рекурсию, буду очень благодарен!
Например задача: ввести из клавиатуры 2 числа, и з помощю рекурсии вывести на екран весь диапазон, который знаходится между 2-ма числами.
0
|
|
| 26.03.2014, 19:05 | |
|
Ответы с готовыми решениями:
31
Вывести целые числа, расположенные между заданными числами
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 26.03.2014, 19:14 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
|
|
| 26.03.2014, 19:33 [ТС] | |
|
а через функцию програму можно как-то сделать?
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 26.03.2014, 19:33 | |
|
через что?
0
|
|
|
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
|
|
| 26.03.2014, 19:35 [ТС] | |
|
через функцию а не процедурой.
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 26.03.2014, 19:43 | ||||||
Сообщение было отмечено Gorpash как решение
Решение
в C/C++ нет процедур, как таковых. Но раз очень хочется "функциональную" функцию, то как-то так.
З.Ы. Использование "не-void" функций в данном случае, имхо, неверно - из-за этого необходимо лишний раз возвращать то, что нам не требуется, обычный мусор, по сути. Не понимаю, зачем мусорить просто так..
1
|
||||||
|
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
|
|
| 26.03.2014, 19:58 [ТС] | |
|
как я понимаю void ето процедура, int ,,имя функции,, (формальные параметры) ето функцыя.
Добавлено через 2 минуты в меня преподаватель сказал ,,надо сделать через функцию,, я програмирование изучаю все во лиш пол года... Спасибо что уделили мне немного вашего времени. Добавлено через 10 минут Добавлено через 39 секунд можно ище один вопрос, что означает "?" в последнем придложении?
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||||||
| 26.03.2014, 20:00 | ||||||||||||
|
Еще раз повторяю, void - это функция. Несмотря на то, что обычно ее используют без возврата значения, это все равно возможно.
Добавлено через 1 минуту Эквивалентной записью будет такая
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
|
|
| 27.03.2014, 15:06 [ТС] | |
|
я понял,
спасибо большое.Добавлено через 18 часов 58 минут Ище один вопрос. А можно как-то зделать чтоб наоборот значения выводились (например от 9 до 1)?
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 27.03.2014, 16:49 | ||||||
|
Вроде так
1
|
||||||
|
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
|
|
| 27.03.2014, 22:10 [ТС] | |
|
да ето я понял, я говорю про по чтобы как бы я не вводил значения от (1 - 10) или от (10 - 1) мне выбрасывало весь диапазон который я ввожу з клавиатуры.Что-бы програма работала в двоих направлениях.
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||||||
| 28.03.2014, 00:11 | ||||||||||||
|
Это будет несколько проблематично и даже, пожалуй, костыльно..
Первый способ - самый простой и "в лоб", что называется (первым пришел в голову):
Добавлено через 2 минуты Не по теме: только не уверен, что второй вариант преподователь засчитает как ваш ;) Добавлено через 9 минут
0
|
||||||||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||||||||||||||||||||||
| 28.03.2014, 00:24 | |||||||||||||||||||||||
|
KOPOJI,
можно не меняя практически код
теперь я меняю в твоей функции порядок
чтобы напечатать 2 3 4 4 3 2
сначала что то делаем и заходим глубже или сначала залазим в самую глубину а потом когда выходим что то делаем
1
|
|||||||||||||||||||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||
| 28.03.2014, 07:35 | ||||||||
|
Ну и, помимо этого: Если использовать хвостовую рекурсию, то уж точно не инкрементировать значение ![]()
Ну и, опять же, насколько я понял задание, требуется выводить числа из диапазона между числами, не включая сами эти числа. Основная проблема при использовании рекурсии в данном случае заключается именно в этом (и еще в том, что надо не-void функцию). Если рассуждать логически, то данная проверка на первый/последний элемент должна быть сокрыта внутри функции. А это уже очень неудобно Не по теме: Вообще, очень хочется передать преподавателю "привет" и сообщить ему, что использование функции с возвратом значения в данном случае явно не является использованием по назначению и что для обучения лучше уж использовать поиск чисел Фибоначчи, например.. Хотя это может я не вижу "логичного" использования возврата значений?
1
|
||||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||
| 28.03.2014, 09:23 | |||
![]() все же ночью нужно спать, раз и два, метод "копи -пасте" до добра не доводит ![]() что void тип и что единственная функция не возвращающая значения( кою можно с натяжкой назвать процедурой) это конструктор
0
|
|||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 28.03.2014, 09:27 | ||
|
но это такие костыли Я не понимаю этих преподавателей вместо того чтобы действительно задать рекурсивные задачи, начинается тупой перевод из циклаА может они их не знают
0
|
||
| 28.03.2014, 09:28 | |
|
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||
| 28.03.2014, 09:41 | |||
|
Не по теме:
зажать так в темном уголке и, постукивая ласково по голове стандартом,попросить объяснить разницу :) , много не окрепших умов, вокруг ![]() "Еще раз повторяю, с void - это функция." или void это тип а void f() это функция
0
|
|||
| 28.03.2014, 09:43 | |
|
0
|
|
| 28.03.2014, 09:43 | |
|
Помогаю со студенческими работами здесь
20
Цикл: Вывести все числа, расположенные между заданными числами, в порядке их возрастания Циклы: вывести все целые числа, расположенные между заданными числами, в порядке убывания
Задать произвольно 5 натуральных чисел. Вывести на экран только те из них, которые являются простыми числами. Диапазон н Вывести все целые числа, рассположенные между заданными числами, включая сами эти числа, в порядке их убывания Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|