Вопрос № 178765: Написать две функции вычисления i-го числа Фибоначчи - рекурсивную и нерекурсивную - и напечатать таблицу для сравнения времен вычисления i-го числа Фибоначчи для i=4, 6, 8, 10, 12 с помощью этих функций. Используйте для этого стандартную функцию CLO...
Вопрос № 178769: Уважаемые эксперты, помогите написать программу: Сформировать динамический одномерный или двумерный массив, выполнить: Удалить элемент равный среднему арифметическому элементов массива. У меня нелепо написанная прога, не могу чехлы отбить ка...
Вопрос № 178765:
Написать две функции вычисления i-го числа Фибоначчи - рекурсивную и нерекурсивную - и напечатать таблицу для сравнения времен вычисления i-го числа Фибоначчи для i=4, 6, 8, 10, 12 с помощью этих функций. Используйте для этого стандартную функцию CLOCK- функцию без параметров, которая выдает целое число, равное времени (в миллисекундах) центрального процессора, уже использованного Basic-программой.
Отвечает Verena, Профессионал :
Здравствуйте, гаврилова анастасия вячеславовна. Вот Ваша программа. Правда, на таких маленьких числах на моём компьютере время выполнения каждой функции - 0 мс. Если хотите увидеть разницу, продлите выполнение цикла хотя бы до 31, или до 51. Описание алгоритмов можете посмотреть здесь, функции я взяла оттуда. Проверено на Visual Studio 2005. Удачи!
Приложение:
----- Эта история - не для истории, понимаешь?
Ответ отправил: Verena, Профессионал
Ответ отправлен: 04.06.2010, 19:53
Номер ответа: 261884
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261884
на номер 1151 (Россия) |
Еще номера »
Вопрос № 178769:
Уважаемые эксперты, помогите написать программу: Сформировать динамический одномерный или двумерный массив, выполнить: Удалить элемент равный среднему арифметическому элементов массива. У меня нелепо написанная прога, не могу чехлы отбить как правильно записать ср. арифметическое и соединить его с динамическим массивом, удалить элемент вроде ж delete()?
Отвечает Verena, Профессионал :
Здравствуйте, Колотин Валерий Анатолиевич. В Вашей программе много ошибок. Во-первых, Вы постоянно пытаетесь использовать какие-то загадочные переменные, которые даже не объявлены. Если Вы передаёте в функцию размерность массива size, то и в цикле использовать надо именно эту переменную. В функции вычисления среднего у Вас все действия в цикле, который только один раз и выполнится, учитывая, что Вы в него return вложили. Удаление элемента из массива происходит путём сдвига элементов, которые расположены
после него, на одну позицию назад. Например, удалим 3 из массива 1 3 4 5. Для этого поместим 4 на место 3, а 5 на место 4, в результате получится массив 1 4 5, а размерность его надо уменьшить на 1. Через delete удалять будем уже весь массив в конце программы, чтобы освободить память. Разумеется, можно уменьшить размер выделенной памяти во время удаления элемента: для этого надо выделить память под массив N-1, переписать туда все элементы прежнего массива, кроме удаляем
ого, а потом удалить старый массив. Первый вариант и Ваша исправленная програма в приложении. Удачи!