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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
#1

циклы в С++ за 21 день - C++

24.04.2009, 10:48. Просмотров 2387. Ответов 19
Метки нет (Все метки)

Начал изучать С++ по книжке "С++ за 21 день". Очень понравилось не знаю то ли язык,то ли просто программирование. Однако с циклами тупик не могу понять на примере и все тут. Народ кому не лень помогите пожалуста на конкретном примере! может какую схему или подробно разжевать? буду оч признателен.
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
// Листинг 7.15.
// нахождение n-го члена ряда Фибоначчи
// с помощью цикла
#include <iostream>
using namespace std;
 
int fib(int position);
int main()
{
int unsigned answer, position;
    cout << "Which position? ";
    cin >> position;
    cout << "\n";
    answer=fib(position);
    cout << answer << " is the ";
cout << position << " Fibonaccim number.\n";
    cin.get();
    return 0;
}
int fib(int n)
{
    int minusTwo=1, minusOne=1, answer=2; //тут начинаются непонятки
    if(n<3)
        return 1;
    for (n-=3; n; n--)
    {
        minusTwo=minusOne;
     minusOne=answer;
        answer=minusOne+minusTwo;
    }
    cin.get();
    return answer;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2009, 10:48     циклы в С++ за 21 день
Посмотрите здесь:
C++ Задача на циклы. Начав тренировки, спортсмен в первый день пробежал 10 км.
Определить в какой день лыжник пробежит заданное расстояние (циклы) C++
C++ Вводится k-й день невисокосного года - определить, является ли этот день рабочим.
C++ Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день
C++ Определить, на какой день недели проходится k-й день невисокосного года в котором 1 января - понедельник
C++ Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увелич
День недели, выпадающий на дату d1, если известно, что в первый день нашей эры был понедельник C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.04.2009, 11:08     циклы в С++ за 21 день #2
Ряд Фибоначи представляет собой линейку чисел, каждое следующее число равно сумме двух предыдущих. Т.е.
1 1 2 3 5 8 13 21 34
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
// Листинг 7.15.
// нахождение n-го члена ряда Фибоначчи
// с помощью цикла
#include <iostream>
using namespace std;
 
int fib(int position);
int main()
{
int unsigned answer, position;
cout << "Which position? ";
cin >> position;
cout << "\n";
answer=fib(position);
cout << answer << " is the ";
cout << position << " Fibonaccim number.\n";
cin.get();
return 0;
}
int fib(int n)
{
int minusTwo=1, minusOne=1, answer=2; //Первые два числа будут единицами
if(n<3) // ряд: 1 1 2. Т.е. если позиция меньше трёх, то это точно 1
return 1; 
for (n-=3; n; n--) // а здесь не учитывая две 1(мы их уже объявили), мы находим 
                     //   сумму
{
minusTwo=minusOne;
minusOne=answer;
answer=minusOne+minusTwo;
}
cin.get();
return answer; // возвращаем сумму. Это и будет число на позиции n
 
}
jds_07
27 / 26 / 1
Регистрация: 12.03.2009
Сообщений: 85
24.04.2009, 11:18     циклы в С++ за 21 день #3
Сумма цифр
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main() {
    int num, sum;
 
    cout << "Enter num: "; cin >> num;
    sum = 0;
    while (num != 0) {
        sum = sum + num % 10;
        num = num / 10;
    }
    cout << "Sum: " << sum << endl;
    system("pause");
    return 0;
}
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.04.2009, 11:20     циклы в С++ за 21 день #4
jds_07, нужна не сумма цифр, а n'ый элемент ряда фибоначи.
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 12:54  [ТС]     циклы в С++ за 21 день #5
Наконец то въехал! Спасибо тебе RazorQ!
jds_07
27 / 26 / 1
Регистрация: 12.03.2009
Сообщений: 85
24.04.2009, 13:10     циклы в С++ за 21 день #6
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) {
return 1;
} else {
return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 13:53     циклы в С++ за 21 день #7
С++ по книжке "С++ за 21 день".
эта таже книга что и Джеса Либерти "С++ за 24 часа".
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
24.04.2009, 13:57     циклы в С++ за 21 день #8
Цитата Сообщение от Мегатрон Посмотреть сообщение
С++ по книжке "С++ за 21 день".
эта таже книга что и Джеса Либерти "С++ за 24 часа".
это годость а не книгы.!
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 14:15     циклы в С++ за 21 день #9
и чем она плоха
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
24.04.2009, 14:25     циклы в С++ за 21 день #10
Мне только названия хватает. Может синтаксис языка С++ и выучишь за 21 день, но писать на нём точно не научишься.
ИМХО это равносильно "Японский за 21 день" или "Английский за 24 часа".
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 14:27     циклы в С++ за 21 день #11
но писать на нём точно не научишься.
а вдруг гений
BadMadCat
0 / 0 / 0
Регистрация: 23.04.2009
Сообщений: 6
24.04.2009, 14:34     циклы в С++ за 21 день #12
Цитата Сообщение от ISergey Посмотреть сообщение
Мне только названия хватает. Может синтаксис языка С++ и выучишь за 21 день, но писать на нём точно не научишься.
ИМХО это равносильно "Японский за 21 день" или "Английский за 24 часа".
так как знаю уже один язык программирования полностью согласен, нужно уметь составлять алгоритм и решать задачу на "бумаге", а синтаксис легко выучить за небольшой промежуток времени, лишь опыт сделает из человека программиста.
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 14:35     циклы в С++ за 21 день #13
уметь составлять алгоритм и решать задачу на "бумаге",
вот с этим у меня проблемы
а синтаксис вроде понятный
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
24.04.2009, 14:39     циклы в С++ за 21 день #14
Цитата Сообщение от Мегатрон Посмотреть сообщение
а вдруг гений
Тогда возможно. Но гениев очень мало.
лишь опыт сделает из человека программиста.
Во во именно оно!

Добавлено через 2 минуты 41 секунду
Цитата Сообщение от Мегатрон Посмотреть сообщение
вот с этим у меня проблемы
ну это засада. без этого ни как.
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 18:23  [ТС]     циклы в С++ за 21 день #15
Цитата Сообщение от jds_07 Посмотреть сообщение
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) {
return 1;
} else {
return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
Спасибо конечно тебе jds_07, но с оператором if мне все понятно.
rrrFer
Заблокирован
24.04.2009, 19:00     циклы в С++ за 21 день #16
Цитата Сообщение от dsaasd Посмотреть сообщение
Цитата:
Сообщение от jds_07
C
1
2
3
4
5
6
7
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) {
return 1;
} else {
return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
Спасибо конечно тебе jds_07, но с оператором if мне все понятно.
тут не только оператор if, но еще рекурсия - неуверен только что в книжке "за 21 день..." эта тема нормально раскрыта(врядли дальше факториала зайдет)
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 19:09     циклы в С++ за 21 день #17

ну если
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) { //если к=1 или к=0 то возвратить 1
return 1;
} else { // если нет то Fibonacci(k - 1) + Fibonacci(k - 2);

return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 21:16  [ТС]     циклы в С++ за 21 день #18
Цитата Сообщение от rrrFer Посмотреть сообщение
тут не только оператор if, но еще рекурсия - неуверен только что в книжке "за 21 день..." эта тема нормально раскрыта(врядли дальше факториала зайдет)
Я просто не правильно выразился.
int fib(int n)
{
cout << "Processing fib("<< n <<")...";
if (n < 3)
{
cout << "Return 1!\n";
return (1);
}
else
{
cout << "Call fib(" << n-2 <<") and fib (" << n-1 <<").\n";
return (fib(n-2)+fib(n-1));
тут мне все понятно было изночально. в книге все подробно написанно и дана схема
krdman
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 9
24.04.2009, 21:19     циклы в С++ за 21 день #19
пропал рабочий стол, страница приветствия, что делать? помогите!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2009, 21:46     циклы в С++ за 21 день
Еще ссылки по теме:
Определить день недели с датой D и M, если W - день недели первого января C++
Циклы: Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивает дневную норму на 10% Pascal ABC
Циклы с постусловием и предусловием. Определить в какой день лыжник пробежит больше 20 км Pascal ABC
На овощную базу привезли помидоры. В первый день 8 машин по а ящиков; во второй день 6 машин по в ящиков в каждой. В какой день помидоров привезли бол Pascal
1С Розница 2.0 банковские карты, возврат день-в-день одной позиции(из нескольких)

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

Или воспользуйтесь поиском по форуму:
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 21:46  [ТС]     циклы в С++ за 21 день #20
Все народ я уже разобрался с циклами. пошел дальше грысть гранит сами знаете чего. Всем откликнувшимся СПАСИБО!
p.s
Классный сайт я пожалуй тут поселюсь.
Yandex
Объявления
24.04.2009, 21:46     циклы в С++ за 21 день
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru