Форум программистов, компьютерный форум CyberForum.ru

Написал программу которая показывает числа из ряда Фибоначчи - C++

Восстановить пароль Регистрация
 
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 19:41     Написал программу которая показывает числа из ряда Фибоначчи #1
Вот написал программу которая...Ай, мне сложновато объяснить, напишу сразу алгоритм её действия:
1.Пользователь вводит номер числа из ряда Фибоначчи.
2.Программа делает некоторые вычисления
3.Выводит запрашиваемое число пользователю

Вот так вот
Но я столкнулся с ошибкой при компилировании, смысл которой от меня немного ускальзывает.
ПОтом я её исправил, появилась другая ошибка...
Не подскажете, в чём тут проблема?
А то я не могу понять
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
bool int fibon_elem( int pos, int &elem) {
    if ( pos <= 0 || pos > 1024)
    { elem = 0; return false; }
    int elem = 1; // ÕðГ*Г*ГЁГІ âîçâðГ*Г№Г*åìîå Г§Г*Г*Г·ГҐГ*ГЁГҐ
    int n_2 = 1, n_1 = 1; // Äëÿ õðГ*Г*ГҐГ*ГЁГї äâóõ ïðåäûäóùèõ Г§Г*Г*Г·ГҐГ*ГЁГ©
    for ( int ix = 3; ix <= pos; ++ix) 
    {
        elem = n_2 + n_1;
        n_2 = n_1;n_1 = elem;
    }
    return true;
    }
 
bool fibon_elem( int, int& );
 
int main()
{
    int pos;
    cout << "Please, enter the item number: ";
    cin >> pos;
    int elem;
    if ( fibon_elem( pos, elem)) {
        cout << "The value of the element # " << pos << " equally " << elem << endl;
        }
    else {
        cout << "Sorry, I can not calculate the value of # " << pos << endl;
        }
    system("pause");
    return 0;
}
P.S. Заголовок (название) темы неправильно написал наверное, ну ладно, всё равно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2013, 19:41     Написал программу которая показывает числа из ряда Фибоначчи
Посмотрите здесь:

C++ Составить программу вычисления числового ряда для известного числа членов ряда N
C++ Рекурсия в нахождении числа ряда Фибоначчи.
Написал програмку ,но она не всё показывает,в чем ошибка помогите C++
C++ Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран
C++ Сделать функцию, которая по порядковому номеру числа Фибоначчи возвращает его значение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Discoverer
16 / 14 / 2
Регистрация: 05.07.2013
Сообщений: 27
15.07.2013, 19:48     Написал программу которая показывает числа из ряда Фибоначчи #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
bool fibon_elem( int pos, int &elem) {
    if ( pos <= 0 || pos > 1024)
    { elem = 0; return false; }
    int n_2 = 1, n_1 = 1; // Для хранения двух предыдущих значений
    for ( int ix = 3; ix <= pos; ++ix) 
    {
        elem = n_2 + n_1;
        n_2 = n_1;n_1 = elem;
    }
    return true;
    }
 
 
 
int main()
{
    int pos;
    cout << "Please, enter the item number: ";
    cin >> pos;
    int elem;
    if ( fibon_elem( pos, elem)) {
        cout << "The value of the element # " << pos << " equally " << elem << endl;
        }
    else {
        cout << "Sorry, I can not calculate the value of # " << pos << endl;
        }
    system("pause");
    return 0;
}
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.07.2013, 19:48     Написал программу которая показывает числа из ряда Фибоначчи #3
по-твоему мы должны скопировать код - открыть компилятор - скомпилировать - найти и исправить ошибку? а самому выложить текст ошибки сюда, рука отвалится?
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 19:50  [ТС]     Написал программу которая показывает числа из ряда Фибоначчи #4
Цитата Сообщение от Jupiter Посмотреть сообщение
по-твоему мы должны скопировать код - открыть компилятор - скомпилировать - найти и исправить ошибку? а самому выложить текст ошибки рука отвалится?
Извините пожалуйста, впредь буду выкладывать код ошибки
Вот:

C++
1
2
3
4
6 D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\main.cpp extraneous `int' ignored
D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\main.cpp In function `bool fibon_elem(int, int&)':
9 D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\main.cpp declaration of 'int elem' shadows a parameter
D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\Makefile.win [Build Error]  [Objects/MingW/main.o] Error 1
P.S. Путь к самой проге криво скопировался, ну это уже такое дело)
Art
 Аватар для Art
150 / 150 / 35
Регистрация: 20.12.2011
Сообщений: 1,273
Завершенные тесты: 2
15.07.2013, 19:52     Написал программу которая показывает числа из ряда Фибоначчи #5
Как минимум проблема в этом:
C++
1
bool fibon_elem( int, int& );
C++
1
2
3
bool int fibon_elem( int pos, int &elem) {
//...
}
Наверно нужно вот так:
C++
1
2
3
bool fibon_elem( int pos, int &elem) {
//...
}
и вот тут у вас уже определена переменная elem(как входной параметр функции), тут:
C++
1
int elem = 1; // Хранит возвращаемое значение
вы ее снова определяете
Discoverer
16 / 14 / 2
Регистрация: 05.07.2013
Сообщений: 27
15.07.2013, 19:52     Написал программу которая показывает числа из ряда Фибоначчи #6
Jupiter, мне настолько было нечего делать, что я именно это и сделал. Только ответ все равно неверный выводит в некоторых случаях. Но не переписывать же за автора все..
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
15.07.2013, 19:52     Написал программу которая показывает числа из ряда Фибоначчи #7
Цитата Сообщение от Даниил1991 Посмотреть сообщение
C++
1
bool int fibon_elem( int pos, int &elem) {
Уж выберете, какой тип возвращаемого значения, int или bool. Ваш компилятор выбирает bool)
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 19:52  [ТС]     Написал программу которая показывает числа из ряда Фибоначчи #8
Цитата Сообщение от Discoverer Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
bool fibon_elem( int pos, int &elem) {
    if ( pos <= 0 || pos > 1024)
    { elem = 0; return false; }
    int n_2 = 1, n_1 = 1; // Для хранения двух предыдущих значений
    for ( int ix = 3; ix <= pos; ++ix) 
    {
        elem = n_2 + n_1;
        n_2 = n_1;n_1 = elem;
    }
    return true;
    }
 
 
 
int main()
{
    int pos;
    cout << "Please, enter the item number: ";
    cin >> pos;
    int elem;
    if ( fibon_elem( pos, elem)) {
        cout << "The value of the element # " << pos << " equally " << elem << endl;
        }
    else {
        cout << "Sorry, I can not calculate the value of # " << pos << endl;
        }
    system("pause");
    return 0;
}
Спасибо, а что, как я понял, вы удалили только одну строку:

C++
1
int elem = 1;
??

Можете пожалуйста объяснить, почему из-за этой строки вся программа пошел под откос?
Discoverer
16 / 14 / 2
Регистрация: 05.07.2013
Сообщений: 27
15.07.2013, 19:56     Написал программу которая показывает числа из ряда Фибоначчи #9
Даниил1991, нельзя переопределять параметры функции.
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 20:09  [ТС]     Написал программу которая показывает числа из ряда Фибоначчи #10
Цитата Сообщение от Discoverer Посмотреть сообщение
Даниил1991, нельзя переопределять параметры функции.
Т.е. строка
C++
1
int elem = 1;
Была лишней, так как она переопределяет функцию, и нужно было выбрать какой-то конкретный тип функции, bool или int? (это я понял благодаря Art'у)
Если да, то в будущем не буду повторять такие ошибки))
Хорошо хоть что вы мне на них указали, а то так я их вряд ли ещё повторю, а так то писал бы всегда таким образом
Сказал как-то непонятно, ай, забейте)
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
15.07.2013, 20:13     Написал программу которая показывает числа из ряда Фибоначчи #11
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Была лишней, так как она переопределяет функцию, и нужно было выбрать какой-то конкретный тип функции, bool или int?
Один параметр ф-ии имеет имя elem, потом уже в теле ф-ии создаётся переменная с таким же именем, которая "перекрывает" параметр
Цитата Сообщение от Даниил1991 Посмотреть сообщение
9 D:\DEV\Находит число из ряда Фибоначчи\main.cpp declaration of 'int elem' shadows a parameter
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2013, 20:38     Написал программу которая показывает числа из ряда Фибоначчи
Еще ссылки по теме:

Создать программу которая показывает данный рисунок C++
C++ Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран
C++ Написать программу, которая выводит числа Фибоначчи до n

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
15.07.2013, 20:38  [ТС]     Написал программу которая показывает числа из ряда Фибоначчи #12
Скажите пожалуйста, как реализовать такую штуку, чтоб после того как программа определит число, то выбивало "Continue?(y/n)" и если юзер введёт y то продолжается всё, а если n то программа закрывается

Написал такое:

C++
1
2
3
4
5
6
7
8
9
    cout << "Continue?(y/n)" << endl;
    char yn[1];
    cin >> yn;
    if (yn == 'y') {
        fibon_elem = true;
        }
    else {
            exit ( -1 );
        }
Но, как ни странно, не работает Ошибка:
C++
1
2
3
4
33 D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\main.cpp ISO C++ forbids comparison between pointer and integer
34 D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\main.cpp assignment of function `bool fibon_elem(int, int&)'
34 D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\main.cpp cannot convert `bool' to `bool ()(int, int&)' in assignment
D:\DEV\ГЌГ*õîäèò ÷èñëî ГЁГ§ ðÿäГ* ÔèáîГ*Г*Г·Г·ГЁ\Makefile.win [Build Error]  [Objects/MingW/main.o] Error 1
Вы уж все извините меня за мои ламерские вопросы, но я надеюсь что вы понимаете что я новичёк)А новичку помочь - святое дело))

Добавлено через 9 минут
Всем спасибо, я это уже решил)
Если кому интересно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
 
using namespace std;
bool fibon_elem( int pos, int &elem) {
    if ( pos <= 0 || pos > 1024)
    { elem = 0; return false; }
    int n_2 = 1, n_1 = 1; // Äëÿ õðГ*Г*ГҐГ*ГЁГї äâóõ ïðåäûäóùèõ Г§Г*Г*Г·ГҐГ*ГЁГ©
    for ( int ix = 3; ix <= pos; ++ix) 
    {
        elem = n_2 + n_1;
        n_2 = n_1;n_1 = elem;
    }
    return true;
    }
 
 
 
int main()
{
    bool done;
    do {
    int pos;
    cout << "Please, enter the item number: ";
    cin >> pos;
    int elem;
    if ( fibon_elem( pos, elem)) {
        cout << "The value of the element # " << pos << " equally " << elem << endl;
        }
    else {
        cout << "Sorry, I can not calculate the value of # " << pos << endl;
        }
    cout << "Continue? (y/n)";
    char c;
    cin >> c;
    done = (c != 'y');
}while (!done);
    system("pause");
    return 0;
}
Повторюсь - всем спасибо за то что помогли решить проблему
Yandex
Объявления
15.07.2013, 20:38     Написал программу которая показывает числа из ряда Фибоначчи
Ответ Создать тему
Опции темы

Текущее время: 12:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru