0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 5
|
|||||||||||
1 | |||||||||||
С Использованием рекурсии!25.03.2011, 11:13. Показов 3473. Ответов 15
Метки нет (Все метки)
Привет!
Есть задачка (она уже сделанная, ее у меня приняли): Во входном файле задана последовательность положительных вещественных чисел, за которой следует отрицательное число. Описать рекурсивную функцию без параметров, которая находит сумму положительных чисел.
Дана последовательность ненулевых чисел, за которой следует ноль. Напечатать сначала все отрицательные числа, а затем - все положительные. Помогите пожалуйста! Подозреваю необходимо использовать 2 функции... отрицательная и положительная
как оформить main???((( Добавлено через 6 минут Блин(( Совсем не то...
0
|
25.03.2011, 11:13 | |
Ответы с готовыми решениями:
15
Сортировка с использованием рекурсии Переписать функции с использованием рекурсии решение задач с использованием рекурсии Решить задачу с использованием рекурсии |
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
25.03.2011, 11:22 | 2 | |||||
Без параметра не может быть рекурсии.
Добавлено через 5 минут Что вообще такое рекурсия? Рекурсия - это вызов подпрограммой себя же с другими значениями параметров, пока не поступит вызов с такими их значениями, при которых подпрограмма завершится не рекурсивно, то есть не вызывая себя. Если в цепочке рекурсивных вызовов нет такого, который вызовет экземпляр подпрограммы, завершаемый не рекурсивно, то такая цепочка рекурсивных вызовов бесконечна, а кроме как по параметру нельзя определить, когда надо прервать цепочку рекурсивных вызовов. Поэтому
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
25.03.2011, 11:32 | 3 |
Как вариант, можно использовать глобальную переменную и модифицировать уже ее. Условие остановки - некоторое значение глобальной переменной. Но так делать не есть хорошо.
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
25.03.2011, 11:35 | 4 |
ДРУГИЕ параметры вовсе не обязательны. Собственно, достаточно сделать проверку file.good() для корректного завершения рекурсии.
Глобальная переменная? .) Вовсе не обязательно что-либо передавать в рекурсивную функцию в качестве параметра. Даже никто не говорит, что рекурсия должна быть конечной. Это просто прямой или косвенный самовызов. Всё. Добавлено через 1 минуту Печатай за два прохода и не парься.) Только в начало файла вернуться не забудь.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
25.03.2011, 11:35 | 5 |
Извиняюсь, невнимательно почитал задание.
Здесь действительно можно обойтись без параметров функции, а в качестве глобального параметра используется поток cin. Условие остановки - если введенный элемент равен нулю.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
25.03.2011, 11:36 | 6 |
Бред. Глобальная - она и в Африке глобальная и когда экзепляр вернёт управление предыдущему, для него она будет уже испорчена, так как в нём должна содержать то значение, которое имела при его вызове, а не следующего экземпляра в цепочке рекурсивных вызовов. Ладно ещё сделдать свой стек, а в нём эмулировать локальный параметр, так хоть получится, но зачем?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
25.03.2011, 11:37 | 7 | |||||
Зачем?
Примерно так:
2
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
25.03.2011, 11:38 | 8 |
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
25.03.2011, 11:39 | 9 | |||||
Да ладно?
1
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
25.03.2011, 11:43 | 10 |
Затем, что нуп и апазорился.)
Хорошее решение. Мне надо было думать до того, как говорю.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
25.03.2011, 11:50 | 11 |
Deviaphan, все когда-то были нубами, в этом нет ничего страшного. Программистами не рождаются .
Данный вариант плох тем, что есть угроза переполнения стека. Но, судя по условию, именно этот вариант и требуется.
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
25.03.2011, 11:56 | 12 |
0
|
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 5
|
|
25.03.2011, 12:42 [ТС] | 13 |
Спасибо Всем За Помощь!
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|||||||||||
25.03.2011, 14:02 | 14 | ||||||||||
может чего не понял, но у меня вот в таком
Код
$ ./namelessone_rec 2 3 -4 -4 5 -6 -6 0 5 3 2
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||||||||||||
25.03.2011, 14:39 | 15 | |||||||||||||||
в принципе, ты понял все правильно Программа ведь делает как раз то, что нужно - печатает сначала отрицательные числа, потом положительные. Кто же виноват, что ввод и вывод смешиваются?
Нам же не сказано, в каком виде задана последовательность чисел. Это может быть и массив, как в твоем примере, а может быть и файл с данными. Можно сделать и так:
Или так:
Вот еще вариант со списком аргументов переменной длины:
1
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
25.03.2011, 20:12 | 16 | |||||
0
|
25.03.2011, 20:12 | |
25.03.2011, 20:12 | |
Помогаю со студенческими работами здесь
16
Сортировка массива с использованием рекурсии Выполнить задачу с использованием рекурсии Алгоритм Евклида с использованием рекурсии Вычислить значение функции с использованием рекурсии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |