![]() |
|
Модераторы: bsa |
![]()
|
|
| pljuwevij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2008 Репутация: нет Всего: нет |
Привет всем... нужно сделать вот такую прогу :
Вводя логически неправильные значения(правильное - любое целое число),программа должна определять это и выдавать сообщение об ошибке cout << "you have input uncorrect symbol",например если ввел не число а букву (char).Должна присутствовать возможность повторить ввод значения заново ,типо - cout << "DO you want to enter a numbers again?" y/n - да или нет,что бы при вводе да прога позволяла вводить число заново. дальше,если всё правильно : Дано натуральное число n,найти указанное число фибоначчи,если Числа Фибоначчи определяются по формулам : f(1) = 1, f(2) = 1, f(n) = f(n-1) + f(n-2) при n = 3,4,5 и т.д Буду благодарен за помощь и признателен если в коде будут присутствовать комментарии к инструкциям. П.С: Студент только начавший свое восхождение к горе программирования. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
вот рекурсивная функция для твоей проги, вычисляющая значение числа фибоначчи
остальное пробуй сам Это сообщение отредактировал(а) mes - 17.9.2008, 00:07 |
|||
|
||||
| J0ker |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
во-первых при n=0 будет нехорошо во-вторых надо озадачить препода вот таким креативом
вызывать: Fib<n>::result n - константа ну конечно если n берется из первой части задачи, то тогда не покатит Это сообщение отредактировал(а) J0ker - 17.9.2008, 04:37 |
||||||
|
|||||||
| IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
pljuwevij, написал за две минуты(уже иду в универ), так что...
Это сообщение отредактировал(а) IKM2007 - 17.9.2008, 05:17 -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
проверку на 0 и отрицательное не поставил специально, чтоб не озадачивать лишними строчками ТС. вот с проверкой:
Это сообщение отредактировал(а) mes - 17.9.2008, 09:42 |
|||
|
||||
| pljuwevij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2008 Репутация: нет Всего: нет |
Ну вы ребята просто монстры ппц...надеюсь когда-нибудь до росту до такого уровня ,что бы так быстро мыслить и писать.Спасибо,постараюсь разобраться во всём этом,надеюсь получится.
Может кто-нибудь подскажет практичный метод изучения си ++ ? А то в универе только начали,дали срок на эту прогу 3 недели,скачал книгу "C++ without fear" вот изучаю ,там всё оочень просто и хорошо разжёвывается,но быстро забывается,так как нет практической части и легких задачек. |
|||
|
||||
| IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Можешь взять книгу "C/C++ в задачах и примерах, Н. Культин". Там как раз легкие задачи. -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
| pljuwevij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2008 Репутация: нет Всего: нет |
Вот попробовал написать и вот что вышло ,если с рекурсивной функцией.
Всё бы ни чего,даже присутствует возможность повторного ввода по средствам цикла DO (12 - 20 пункт),но никак немогу сделать так чтобы этот повтор работал и в том цикле ,где рассматриваются неправильно введенные числа (31 - 33)если ставлю тот же цикл ду еще и там,то он зацикливается.Возможно ли исправить по средством добавления еще одного цикла Do в нужное место,если да,то в какое? И еще такой вопрос - можно ли выполнить эту прогу,но без использования рекурсивной ф-ии,что бы она была как можно проще - ( do while if else) и всё. СПАСИБО! |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Из написанного ничего не понял, но мне кажется речь шла о добавлении возможности ввести заново число после ошибочного результата.
Добавлено через 2 минуты и 31 секунду
с рекурсией намного проще , иначе придется реализовывать стек для хранения промежуточных результатов. |
||||
|
|||||
| kelario |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
Вроде можно.
|
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Это сообщение отредактировал(а) mes - 21.9.2008, 17:54 |
|||
|
||||
| pljuwevij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2008 Репутация: нет Всего: нет |
to Mes : Спасибо! Очень наглядно и с комментами,теперь я полностью разобрался!
|
|||
|
||||
| 0xffff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 21.9.2008 Репутация: нет Всего: нет |
Можно и так, но выше показанный пример более прост.
|
|||
|
||||
| pljuwevij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2008 Репутация: нет Всего: нет |
Возникла проблема!!!
Мне нужно было сделать так ,что бы при вводе чисел 1 и 2 ( n ==1 || n == 2) программа выдавала значение = 1 , я вставил цикл с if и else (см. с 14 по 18 пункт) ,но программа все равно выдает чило 2088810051 ,а не значение = 1. Как я понимаю это потому что инициализатор r = 2 предполагает расчет функции с числа 2. Как, особо не изменяя код сделать так ,чтобы при в ведении 1 и 2 программа выдавала = 1 ,а не длинное непонятно откуда взявшееся число?
|
|||
|
||||
| IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
pljuwevij, сделай так
-------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |