Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

20.08.2014, 16:47. Просмотров 588. Ответов 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;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2014, 16:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разработать рекурсивную функцию, не возвращающую значений (C++):

Разработать рекурсивную функцию, возвращающую значение: - C++
для вычисления значения функции Аккермана для неотрицательных чисел n и m. Функция Аккермана определяется следующим образом:

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

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

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

Разработать рекурсивную функций, возвращающую значение для нахождения НОД методом Евклида - C++
разработать рекурсивную функций,возвращающую значение для нахождения НОД методом Евклида НОД(a,b)=а,если a=b ...

Разработать функцию, возвращающую младшую цифру заданного натурального числа - C++
Разработать функцию f(x), которая возвращает младшую цифру натурального числа х. Вычислить с помощью нее значение выражения z=f(a)+f(b). ...

7
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
20.08.2014, 18:08 #2
Разработать рекурсивную функцию, не возвращающую значений
Ох, кажется более бредового задания я еще не видел
0
-=ЮрА=-
20.08.2014, 18:50
  #3

Не по теме:

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

0
July
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 21
20.08.2014, 18:58  [ТС] #4
Цитата Сообщение от Voivoid Посмотреть сообщение
Ох, кажется более бредового задания я еще не видел
Не я создавала эти задания. да была бы обычная функция все легко, но которая не возвращает значение у меня не получается
0
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,907
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
    {
        // или больше не надо выполнять рекурсивный вызов  
    }
}
0
-=ЮрА=-
Заблокирован
Автор 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
1
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,907
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;
    }
}
0
July
0 / 0 / 0
Регистрация: 16.08.2014
Сообщений: 21
21.08.2014, 14:35  [ТС] #8
спасибо большое))))
0
21.08.2014, 14:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 14:35
Привет! Вот еще темы с ответами:

Разработать рекурсивную функцию - C++
Разработать рекурсивную функцию нахождения значения функции Аккермана, которая определяется для всех неотрицательных целых аргументов m и n...

Разработать рекурсивную функцию - C++
Разработать рек. функцию , возвращающая значение: для вычисления суммы цифр в строке. С помощью этой функ. определить в какой из двух строк...

Разработать функцию, возвращающую сумму остатка от деления первого и второго аргументов на заданное число - C++
Разработать функцию типа int, что возвращает сумму остатка от деления первого и второго аргументов на 5, если сумма больше 20, иначе...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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