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

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

Войти
Регистрация
Восстановить пароль
 
July
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 21
#1

Разработать рекурсивную функцию, не возвращающую значений - C++

20.08.2014, 16:47. Просмотров 519. Ответов 7
Метки нет (Все метки)

Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию для нахождения n-го члена и суммы п первых членов прогрессии.
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
#include "iostream"
#include "conio.h"
#include "math.h"
using namespace std;
void Progres(int n, float q,float b1,int i)
{
    float b,s;
        if (i==1) 
        {
            b=b1;s=b1;
        }
        if (i>1) 
        {
            b=b1*pow(q,i-1);
            s+=b;
            
        }
    i--; 
    if (i==0) cout<<"b="<<b<<"\ts="<<s<<endl;
    Progres(i,q,b1,i);
}
int main()
{ 
    int n; float q,b1;
    cout<<"b1="; cin>>b1;
    cout<<"q="; cin>>q;
    cout<<"n="; cin>>n;
    Progres(n,q,b1,n);
    getch();
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2014, 16:47     Разработать рекурсивную функцию, не возвращающую значений
Посмотрите здесь:

C++ Разработать рекурсивную функцию
Разработать рекурсивную функций, возвращающую значение для нахождения НОД методом Евклида C++
C++ Разработать рекурсивную функцию, возвращающую значение
разработать не рекурсивную функцию,возвращающее значение: C++
Разработать рекурсивную функцию, возвращающую значение: C++
Написать функцию, возвращающую наибольшее из значений модулей попарных разностей C++
C++ Разработать функцию, возвращающую младшую цифру заданного натурального числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Voivoid
672 / 275 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
20.08.2014, 18:08     Разработать рекурсивную функцию, не возвращающую значений #2
Разработать рекурсивную функцию, не возвращающую значений
Ох, кажется более бредового задания я еще не видел
-=ЮрА=-
20.08.2014, 18:50
  #3

Не по теме:

Цитата Сообщение от Voivoid Посмотреть сообщение
Ох, кажется более бредового задания я еще не видел
- более бредового ответа я тоже

July
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 21
20.08.2014, 18:58  [ТС]     Разработать рекурсивную функцию, не возвращающую значений #4
Цитата Сообщение от Voivoid Посмотреть сообщение
Ох, кажется более бредового задания я еще не видел
Не я создавала эти задания. да была бы обычная функция все легко, но которая не возвращает значение у меня не получается
Alex5
1035 / 698 / 102
Регистрация: 12.04.2010
Сообщений: 1,754
20.08.2014, 19:01     Разработать рекурсивную функцию, не возвращающую значений #5
Цитата Сообщение от July Посмотреть сообщение
C++
1
2
3
4
5
void Progres(int n, float q,float b1,int i)
{
  // ... 
  Progres(i,q,b1,i);
}
Это можно назвать "бесконечная рекурсия".

Цитата Сообщение от July Посмотреть сообщение
Написать рекурсивную функцию
Рекурсивная функция должна содержать проверку условия - продолжать рекурсию или нет.
C++
1
2
3
4
5
6
7
8
9
10
11
void F(...)
{
    // ... 
    if( продолжить  ) 
    {
        F(...);
    }else
    {
        // или больше не надо выполнять рекурсивный вызов  
    }
}
-=ЮрА=-
Заблокирован
Автор FAQ
20.08.2014, 19:02     Разработать рекурсивную функцию, не возвращающую значений #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
July, держите
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
#include <iostream>
using namespace std;
 
void rekurs_calc(int nmax, int n, float q, float &b, float &s);
 
int main(){
    int   n = 3;
    float b = 1;
    float q = 2;
    float s = 0;
    rekurs_calc(n, n, q, b, s);
    cin.get();
    return 0;
}
 
void rekurs_calc(int nmax, int n, float q, float &b, float &s){
    
    if( n ){
        b = b*q;
        s = s + b;
        cout<<"n = "<<nmax - n<<" b= "<<b<<" q= "<<q<<" sum= "<<s<<endl; 
        rekurs_calc(nmax, --n, q, b, s);
    }
    
}
n = 0 b= 2 q= 2 sum= 2
n = 1 b= 4 q= 2 sum= 6
n = 2 b= 8 q= 2 sum= 14
http://codepad.org/Af0jTtO6
Alex5
1035 / 698 / 102
Регистрация: 12.04.2010
Сообщений: 1,754
20.08.2014, 19:11     Разработать рекурсивную функцию, не возвращающую значений #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Element( long n, float b1, float q, float& elem )
{
    if( нужен первый элемент )
    {
        elem = b1;
        return;
    }else{
        // вычислим  (n-1)-й элемент 
        Element( n-1 .... );
        // и умножим на знаменатель прогрессии
        elem *= q;
        return;
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 14:35     Разработать рекурсивную функцию, не возвращающую значений
Еще ссылки по теме:

Разработать рекурсивную функцию,возвращающую значение,для вычисления наибольшего значения в одномерном массиве C++
C++ Разработать функцию, возвращающую сумму остатка от деления первого и второго аргументов на заданное число
C++ Разработать функцию типа float, возвращающую абсолютное значение доли от деления первого аргумента на второй
C++ Разработать рекурсивную функцию, возвращающую значение нахождения наибольшего общего делителя методом Евклида

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

Или воспользуйтесь поиском по форуму:
July
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 21
21.08.2014, 14:35  [ТС]     Разработать рекурсивную функцию, не возвращающую значений #8
спасибо большое))))
Yandex
Объявления
21.08.2014, 14:35     Разработать рекурсивную функцию, не возвращающую значений
Ответ Создать тему
Опции темы

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