Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
1

Разработать рикурсивную функцию, НЕ возвращающее значение

21.04.2010, 19:17. Просмотров 1323. Ответов 20
Метки нет (Все метки)

Ребят помогите. Даны первый член и знаменатель геометрической прогресии. Написать рекурсивку, для нахождения n-ого члена и суммы n первых членов прогрессии. В этой задаче есть все что я ненавижу и плохо знаю - рекурсия и прогрессия. Пжлста, хоть пинка какого небудь дайте а дальше сама "побегу".
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2010, 19:17
Ответы с готовыми решениями:

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

Возвращающее значение
Для решения системы линейных уравнений методом Крамера пишу отдельную функцию для перестановки...

Напишите функцию,возвращающее среднее арифметическое
Напишите функцию,возвращающее среднее арифметическое элементов в однородном целочисленном массиве с...

Разработать процедуру-функцию, вычисляющую значение функции в заданных точках. Для решения задачи разработать процедуру
Приветствую, очень нужна ваша помощь в решении 2-ух заданий. Началось программирование в VBA, а я...

20
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 19:21 2
в чем писать? какой элемент находить???
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 19:29  [ТС] 3
delfamur,
Цитата Сообщение от delfamur Посмотреть сообщение
в чем писать?
в с++

Цитата Сообщение от delfamur Посмотреть сообщение
какой элемент находить???

Цитата Сообщение от LiLi R. Посмотреть сообщение
Написать рекурсивку, для нахождения n-ого члена и суммы n первых членов прогрессии
Тут нужно самому задать первый член и и знаменатель геометрической прогрессии.
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 19:49 4
и все же... n-ный член прогрессии тоже надо как-то вводить? например: найти 6 член прогрессии, так?
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 20:07  [ТС] 5
delfamur, наверно нужно использовать формулу геом прогресии bk=bk-1*q
для справки k и k-1 эт внизу индексы
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:11 6
наверно я знаю, только ты хочешь в обычном си++ вводить n а она тебе в ответ сразу результат и так до бесконечности???
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 20:13  [ТС] 7
delfamur,
Цитата Сообщение от LiLi R. Посмотреть сообщение
Написать рекурсивку, для нахождения n-ого члена и суммы n первых членов прогрессии.
Похож тут самому над задать почти все элементы. n например над самому задать.
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:25 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
clrscr();
    int first, znam, n;
  printf("Vvedite pervii 4len progressii:\n");
  scanf("%d",&first);
  printf("\nVvedite znamenatel rogressii:\n");
  scanf("%d",&znam);
  printf("\nVvedite kakoi 4len progressii nahodit:\n");
  scanf("%d",&n);
  int sec=first*pow(znam,n-1);
  int sum=first*(pow(znam,n)-1)/(znam-1);
printf("\n%d 4len progressii - %d\n",n,sec);
 
printf("summa %d pervix 4lenov ravna - %d",n,sum);
       getch();
    return 0;
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 20:29  [ТС] 9
delfamur, Я конечно не знаток но так для общего развития где здесь рекурсивныя функция и как ее распознать?
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:41 10
честно, я подзабыл точно, что это. выполнил просто то, что тебе надо. но вроде
Цитата Сообщение от delfamur Посмотреть сообщение
int sec=first*pow(znam,n-1);
int sum=first*(pow(znam,n)-1)/(znam-1);
это и есть рекурсия - вычисление значения по ранее заданным переменным
1
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 20:45  [ТС] 11
delfamur,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cmath>
using namespace std;
 
int main(){
        float first, znam, n;
  printf("Vvedite pervii chlen progressii:\n");
  scanf("%d",&first);
  printf("\nVvedite znamenatel progressii:\n");
  scanf("%d",&znam);
  printf("\nVvedite kakoi chlen progressii naiti:\n");
  scanf("%d",&n);
  float sec=first*pow(znam,n-1);
  float sum=first*(pow(znam,n)-1)/(znam-1);
printf("\n%d chlen progressii = %d\n",n,sec);
 printf("summa %d pervih chlenov progressii - %d",n,sum);
       system("PAUSE");
        return 0;
}
я немног модифицировала твой код но цифры получаются здоровыми и отрицательными.
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:47 12
смотря что вводить
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 20:52  [ТС] 13
delfamur, пример
Vvedite pervii chlen progressii:
1

Vvedite znamenatel progressii:
2

Vvedite kakoi chlen progressii naiti:
6

0 chlen progressii = 919076864
summa 0 pervih chlenov progressii - 919076864Для продолжения нажмите любую клави
шу . . .
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 21:11 14
а что у тебя за си??? почему у меня по-др библиотеки подключаются и все остальное???

Добавлено через 39 секунд
и почему выводит 0 член прогрессии? у меня все правильно выводило
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 21:40  [ТС] 15
delfamur, а что делает clscr?
и Vvedite pervii chlen progressii:
5

Vvedite znamenatel progressii:
3

Vvedite kakoi chlen progressii naiti:
6

6 chlen progressii = -858993460
summa 6 pervih chlenov progressii - -858993460Для продолжения нажмите любую клав
ишу . . . заместо float поставила double. мож я цифры не те беру...
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 21:42 16
вообще они инт должны быть. clrscr - clear screen. у тебя какой си? у меня турбо, все норм фунциклирует
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 21:51  [ТС] 17
delfamur, у меня visual studio и при инт у меня ошибка с pow overloaded function
0
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 21:53 18
уууу...эх, ну с вижуал это не ко мне. отличия то есть, как видишь, а я только на всяких си специализировался
1
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
21.04.2010, 21:58  [ТС] 19
delfamur, блин...
0
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
29.04.2010, 13:50 20
Цитата Сообщение от LiLi R. Посмотреть сообщение
delfamur, Я конечно не знаток но так для общего развития где здесь рекурсивныя функция и как ее распознать?
Там нет рекурсии

Рекурсивная функция — это функция, которая вызывает сама себя либо непосредственно, либо косвенно с помощью другой функции.

Пусть https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n} = {a}_{1} {q}^{n-1}
а сумма геом прогрессии https://www.cyberforum.ru/cgi-bin/latex.cgi?{s}_{n} = \frac{{a}_{1} ({q}^{n}-1)}{q-1}


При таких обозначениях, можно написать ниже следующий код, в котором ф-ция m_sum вызывает сама себя образуя рекурсию.
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
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
double m_sum(double a1, double q, int n)
{
    double an = a1*pow(q, n-1);
    if(n == 0)
        return 0;
    else
        return an+m_sum(a1, q, n-1);
}
 
int main()
{
    double a1, q; 
    int n;
    /*a1 = 2, q = 2; n = 3;*/
    cout << "vvedite a1 = "; cin >> a1;
    cout << "\nvvedite (znamenatel) q = "; cin >> q;
    cout << "\nvvedite n = "; cin >> n; cout << endl;
 
    cout  << " a_n = " << a1*pow(q, n-1) << endl;
    cout << " summ = " << a1*(pow(q, n) - 1) / (q - 1) 
        << "\n  summa s rekursiey = " << m_sum(a1, q, n) << endl;
 
    _getch();
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2010, 13:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Возвращающее значение в раб обл окна функцией GetDeviceCaps
Всем привет! Что я не так делаю? как мне вывести возвращающее значение в мою рабочую область окна ?...

Напишите функцию, возвращающее ссылку на максимальное число в массиве, являющееся числом Фибонначи
Напишите функцию, возвращающую ссылку на максимальное число, встречающееся в заданном массиве...

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

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


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

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

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