Решение задач с использованием рекурсии01.08.2015, 06:55. Показов 8925. Ответов 120
Метки нет (Все метки)
Когда я обратился к поисковой системе, то я не нашёл
ни одного упоминания о рекурсии. Испытав шок, я решил создать эту тему на QBasic. (В паскале о рекурсии говорят на каждом углу). Приведу нестандартный пример рекурсии: Посадил дед репку. И выросла она большая-пребольшая. (Далее вызывается рекурсивная процедура) Тянет дед репку, потянет, вытащить не может. (Условием выхода из этой процедуры будет событие при котором репка будет вытащена) Эта процедура вызывает сама себя и на помощь деду приходит бабка. И тд. После шестого вызова процедуры на арене появляется мышка. Благодаря которой репку вытаскивают. Условие окончания процедуры соблюдено и программа (как и сказка) завершается. Что надо знать при написании рекурсивных программ. 1. Оператор CLEAR, , 29000 Этот оператор задаёт величину стека. В данном примере приведена цифра 29000 - это максимальная величина стека для QBasic v1.0 -1.1. Для QuickBasic стек ещё больше. 2. Функция FRE(-2) ; (PRINT FRE(-2)) Эта функция указывает (в байтах) свободное стековое пространство. 3. Функция DEF FN... - эта функция не поддерживает рекурсии. 4. Рекурсию поддерживают 1) FUNCTION - END FUNCTION 2) SUB - END SUB 3) GOSUB - RETURN Последним правда не слишком удобно пользоваться, но пару примеров я приведу (именно на GOSUB - RETURN) Эта программа вычисляет сумму n натуральных чисел
Это программа вычисляет числа Фибоначи
1
|
|||||||||||
| 01.08.2015, 06:55 | |
|
Ответы с готовыми решениями:
120
решение задач с использованием рекурсии Решение задач по обработке информации с включением рекурсии Решение задач с применением операции рекурсии к функциям |
| 03.12.2015, 17:33 [ТС] | ||||||
|
Совсем новое дерево (2000 лет). От Пифагора.
1
|
||||||
|
|
|
| 03.12.2015, 19:48 | |
|
0
|
|
| 04.12.2015, 10:30 [ТС] | ||||||
|
...
0
|
||||||
| 04.12.2015, 10:35 [ТС] | ||||||
|
Добавлена всего одна строка. А каков результат!
0
|
||||||
| 04.12.2015, 16:01 [ТС] | ||||||
|
...
0
|
||||||
| 04.12.2015, 17:19 [ТС] | ||||||
|
Прилагается два рисунка при n=4 и n=6
0
|
||||||
| 04.12.2015, 19:12 [ТС] | ||||||
|
Если вы дошли до этого места, то предлагаю вам отдохнуть и
посмотреть совсем маленькую программу. Она вычисляет количество цифр в числе (число положительное)
0
|
||||||
|
|
|
| 04.12.2015, 19:36 | |
|
Ссылка для дальнейшего вдохновения:
Фракталы
0
|
|
| 05.12.2015, 14:37 [ТС] | ||||||
0
|
||||||
| 05.12.2015, 14:40 [ТС] | ||||||
|
...
0
|
||||||
| 06.12.2015, 10:55 [ТС] | ||||||
|
Программа запрашивает число. И выводит на экран все
делители этого числа. Посмотрите сколь проста и совершенна рекурсивная процедура. Всего три строчки. 1. Строка 17 - проверка на выход из процедуры 2. Строка 18 - печатает делитель, если он делитель 3. Строка 19 - процедура вызывает сама себя в очередной раз
0
|
||||||
| 08.12.2015, 11:30 [ТС] | ||||||
|
Это более красивое дерево
0
|
||||||
| 08.12.2015, 11:41 [ТС] | ||||||
|
Это наиболее сложная программа рисующая деревья.
Дерево рисуется по точкам. При желании вы можете его украсить. Например нарисовать листья. Это просто. Надо задать массив с координатами листьев и образец одного листа. PS. Деревья меня более не интересуют. Я сделал основной код ...
0
|
||||||
| 08.12.2015, 13:55 [ТС] | ||||||
|
Рекурсивная процедура удаляет из строки все пробелы.
А если строка состоит из пробелов, то от нее остается пшик. Программа печатает как начальную строку, так и конечную. Кроме того она печатает длину конечной строки на случай, если вы захотите дать ей строку из пробелов. Процедура расправляется со строкой очень быстро. Она делит ее пополам и вызывает себя дважды ....
0
|
||||||
| 09.12.2015, 11:49 [ТС] | ||||||
|
Эта программа вычисляет функцию arcsin(x).
Удивительная красота идеального кода не оставит Вас равнодушными к совершенному творению разума. Вы будете приходить сюда вновь и вновь ... Такое не забывается ...
когда x станет по модулю меньше 0,001 и можно будет применить приближенную формулу arcsin(x)=x (!!)
0
|
||||||
| 09.12.2015, 16:25 [ТС] | ||||||
|
Удивительной красоты программа не оставит равнодушным
Вас в ближайшую тысячу лет ... Эта программа вычисляет натуральный логарифм (ln(x)) Принцип рекурсии прост: ln(x)=2ln(SQR(x)) и так до тех пор пока x не станет близким к 1, тогда ln(x) = 1 - x (!!!)
1
|
||||||
|
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,375
|
||
| 09.12.2015, 19:23 | ||
![]() И не забывай про комментарии
1
|
||
| 10.12.2015, 11:37 [ТС] | ||||||
|
Эта программа извлекает квадратный корень из числа,
которое больше 1. Алгоритм прост. 1. Число x приводится к виду x=100^k*x, где новое х лежит в интервале (1, 100). Далее используется метод половинного деления. И при выводе результата нам остается умножить найденное число на величину 10^k.
0
|
||||||
| 10.12.2015, 21:16 [ТС] | ||||||
|
Здесь я написал универсальную программу, вычисляющую
квадратный корень. В основу положена рекурсия вида SQR(x)=a*SQR(x/a^2) (при x > 1 и a > 1) Конкретно SQR(x)=1.01*SQR(x/1.01^2) = 1.01*SQR(x/1.0201) А для x < 1 формула имеет такой вид SQR(x)=SQR(1.01^2*x)/1.01 = SQR(1.0201*x)/1.01
Она более точно извлекает квадратный корень
0
|
||||||
| 10.12.2015, 21:16 | |
|
Помогаю со студенческими работами здесь
100
Решение задачи с использованием рекурсии Решение уравнения 0.7х = 2 с использованием рекурсии Решение уравнения методом бисекции с использованием рекурсии Решение задач с использованием процедур Решение задач с использованием процедур Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|