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

вызов функцииж факториал - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 05:24     вызов функцииж факториал #1
не могу найти ошибку в программе. задание: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из n по m. заранее спасибо за помощь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double m, n)
{
return f(n)/(f(m)*f(n-m));
}
 
double f(double n)
{
return {
p=0.0;
for(i=0;i<=n;i++) p=p*i; }
}
int main()
{ double m,n C;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m,n-m);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 05:24     вызов функцииж факториал
Посмотрите здесь:

C++ Факториал
Факториал C++
C++ Факториал
факториал (2k+1)!с++ C++
C++ факториал
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,362
Записей в блоге: 4
24.04.2013, 06:15     вызов функцииж факториал #2
По-моему, так:
C++
1
2
3
4
5
6
double f(double n)
{
    double p=1.0;
    for(int i=2;i<=n;i++) p=p*i;
    return p;
}
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 06:46  [ТС]     вызов функцииж факториал #3
у меня выдает ошибку в строке:
C++
1
double H (double (*f)(double), double m, n)
только я не могу понять что в ней не так.
а про то, что при умножении приравнивается к 1, а не к 0, я действидельно забыла. спасибо. только основную проблему это не решило.

Добавлено через 27 минут
я в панике. она вообще не работает. подскажите пожалуйсто что в ней не так
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,362
Записей в блоге: 4
24.04.2013, 06:58     вызов функцииж факториал #4
А компилятор разве не говорит в чем ошибка? Это не паскаль.
C++
1
double H (double (*f)(double), double m, double n)
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 07:28  [ТС]     вызов функцииж факториал #5
а теперь оно пишет что здесь что-то не так
C++
1
2
3
4
5
6
double f(double n)
{
return {
p=0.0;
for(i=0;i<=n;i++) p=p*i; }
}
может нучно как-то по другому функцию вызова цикла писать??
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,362
Записей в блоге: 4
24.04.2013, 07:31     вызов функцииж факториал #6
После return может следовать выражение и в конце точка с запятой. У вас - не выражение.
Я написал, как должно быть.
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 07:38  [ТС]     вызов функцииж факториал #7
только как тогда сделать вызов функции с циклом вычисления факториала?

Добавлено через 4 минуты
все, исправила=) спасибо
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
24.04.2013, 08:50     вызов функцииж факториал #8
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
#include<iostream>
#include<math.h>
using namespace std;
int f(int n)
{
      int p=1;
      for(int i=2;i<=n;i++) 
           p=p*i; 
     return p;
}
 
int H (int m,int n)
{
      return f(n)/f(m)/f(n-m);
}
int main()
{ 
    int m,n;
    cout<<"VVedite m, n:";
    cin>>m>>n;
    cout<<H(m,n);
    system("pause");
    return 1;
}
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 09:17  [ТС]     вызов функцииж факториал #9
а можно функцию Н вставить в цикл с вычислением еще и суммы, где m будет заменено на i и будет меняться в цикле i++???
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
24.04.2013, 09:24     вызов функцииж факториал #10
C++
1
2
3
4
5
...
int S=0;
for(int i=1;i<=m;i++)
  S+=H(i,n);
....
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 09:37  [ТС]     вызов функцииж факториал #11
выдает Н со значением n

Добавлено через 6 минут
по формуле примерно вот так.только в этом случае оно Н не вычисляет, причем не в 1-м, не во 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
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double n, double m)
{
return f(n)/(f(m)*f(n-m));
}
double f(double n)
{
     double p=1.0;
     for(int i=1;i<=n;i++) p=p*i;
     return p;
}
 
int main()
{ double m,n ;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m);
double x,y;
cout<<"\nVVedite x\n";
cin>>x;
for(int i=1;i<=n;i++)
y=H(f,n,i)*pow(x,i);
cout<<"y="<<y;
}
ErinI
 Аватар для ErinI
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 11
24.04.2013, 10:01     вызов функцииж факториал #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>
 
using namespace std;
 
double fact(int x,int n)
{
    if (n==0) return 1;
    else return x*fact(x,n-1);
}
 
void main()
{
    int n,x;
    cin>>x>>n;
    cout<<fact(x,n);
}
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 10:05  [ТС]     вызов функцииж факториал #13
в таком варианте она вообще не работает
ErinI
 Аватар для ErinI
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 11
24.04.2013, 10:10     вызов функцииж факториал #14
Вы на чем компилируете?
okman
 Аватар для okman
15 / 21 / 1
Регистрация: 05.04.2013
Сообщений: 203
24.04.2013, 10:56     вызов функцииж факториал #15
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
не могу найти ошибку в программе. задание: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из n по m. заранее спасибо за помощь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double m, n)
{
return f(n)/(f(m)*f(n-m));
}
 
double f(double n)
{
return {
p=0.0;
for(i=0;i<=n;i++) p=p*i; }
}
int main()
{ double m,n C;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m,n-m);
}
Я вообще новичок, но может лучше глобальные переменные объявить? И почему у тебя здесь double H (double (*f)(double), double m, n) в скобках написано? Так вроде нельзя делать.
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 11:32  [ТС]     вызов функцииж факториал #16
компилирую на борланд 4.5. нас только на нем учат по рограмме.

Добавлено через 1 минуту
а в скобках потому что, это обьявление параметров функции
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,362
Записей в блоге: 4
24.04.2013, 12:51     вызов функцииж факториал #17
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
а в скобках потому что, это обьявление параметров функции
По хорошему эту информацию вообще не нужно включать в параметры. Она фиксирована. К функции из другой функции можно обращаться непосредственно по имени. Я хотел задать вопрос, зачем вы так делаете, но потом подумал, что это не мое дело, может преподаватель приказал...
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 13:07  [ТС]     вызов функцииж факториал #18
просто мы программы по примеру делаем, а в примере такое обьявление функции. только там нет суммы, формула без факториала. креатив наказуем плохими отметками. увы

Добавлено через 4 минуты
вот только не получается сделать чтоб этот вариант программы заработал
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
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double n, double m)
{
return f(n)/(f(m)*f(n-m));
}
double f(double n)
{
     double p=1.0;
     for(int i=1;i<=n;i++) p=p*i;
     return p;
}
 
int main()
{ double m,n ;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m);
double x,y;
cout<<"\nVVedite x\n";
cin>>x;
for(int i=1;i<=n;i++)
y=H(f,n,i)*pow(x,i);
cout<<"y="<<y;
}
Добавлено через 5 минут
а есть какой-нибудь другой вариант вызова этой функции, но чтоб последний параметр m заменить на i??
okman
 Аватар для okman
15 / 21 / 1
Регистрация: 05.04.2013
Сообщений: 203
24.04.2013, 13:16     вызов функцииж факториал #19
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
а есть какой-нибудь другой вариант вызова этой функции, но чтоб последний параметр m заменить на i??
Приятель, у меня сейчас с головой проблемы, по правде говоря я не понимаю что твоя программа должна делать. Ну факториал найти то не проблема, я не понимаю что там еще требуется. Просто голова гудит туго соображаю)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 14:07     вызов функцииж факториал
Еще ссылки по теме:

C++ С++ Факториал
факториал и с++ C++
C++ Факториал

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

Или воспользуйтесь поиском по форуму:
vasilisa-9090
 Аватар для vasilisa-9090
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 14:07  [ТС]     вызов функцииж факториал #20
Задание звучит так: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из n по m по формуле C(n,m)=n!/(m!*(n-m)!). Нахождение факториала осуществить с помощью вызова подпрограммы. Обчислити вираження для заданих n, x:
Yandex
Объявления
24.04.2013, 14:07     вызов функцииж факториал
Ответ Создать тему
Опции темы

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