Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для vasilisa-9090
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108

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

24.04.2013, 05:24. Показов 3664. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не могу найти ошибку в программе. задание: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из 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);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2013, 05:24
Ответы с готовыми решениями:

Факториал некторого числа записан в eax, а нужно вывести этот факториал в ebx
Хочу сделать код факториал некторого числа записан в eax, а нужно вывести этот факториал в ebx и где-то ошибка ( не могли бы помочь...

Факториал. Определить максимальное число, факториал которого хранится в переменной типа int
/*Доброго времени суток ! Задача такова: Пользователь вводит число с клавы. Вывести на экран факториал этого числа. Определить...

Описать рекурсивные функции вещественного типа, вычисляющие факториал и двойной факториал заданного числа
Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала N! и двойного факториала N!!...

43
 Аватар для vasilisa-9090
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 14:27  [ТС]
Студворк — интернет-сервис помощи студентам
Задание звучит так: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из n по m по формуле C(n,m)=n!/(m!*(n-m)!). Нахождение факториала осуществить с помощью вызова подпрограммы. Обчислити вираження для заданих n, x:
https://www.cyberforum.ru/cgi-bin/latex.cgi?y= \sum_{i=0}^{n}C_{n}^{i}*{x}^{i}

Добавлено через 1 минуту
я просто уже не знаю что с єтой программой делать
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
24.04.2013, 14:31
Так это будет https://www.cyberforum.ru/cgi-bin/latex.cgi?(x+1)^n. Тут и вычислять ничего не надо.
1
 Аватар для vasilisa-9090
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 14:34  [ТС]
Простите за глупый вопрос, а куда это нужно вставить в этой программе?
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
24.04.2013, 14:35
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
не могу найти ошибку в программе.
Я же указал вам на ошибки, а вы по-прежнему выкладываете ошибочный вариант.

Добавлено через 1 минуту
С вас, наверно, требуют вычислять это через бином Ньютона. А как сейчас выглядит ваша программа?
0
 Аватар для vasilisa-9090
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 14:38  [ТС]
по прежнему:
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;
}
Добавлено через 26 секунд
я исправила ошибку в 1-м вызове функции

Добавлено через 35 секунд
только она с вызовом 2-й отказывается 1-ю считать

Добавлено через 1 минуту
она работала в виде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<math.h>
 
double H (double (*f)(double), double m, double n)
{
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;
}
void main()
{ double m,n,x,y ;
cout<<"VVedite m, n\n";
cin>>m>>n;
cout<<H(f,n,m);}
Добавлено через 22 секунды
только нужно ведь еще сумму посчитать
0
24.04.2013, 14:40

Не по теме:

vasilisa-9090, хорошо сейчас набросаю

0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
24.04.2013, 14:49
C++
1
2
3
4
5
cin>>x;
y=0;
for(int i=0;i<=n;i++)
y+=H(f,n,i)*pow(x,i);
cout<<"y="<<y;
Добавлено через 6 минут
Только если https://www.cyberforum.ru/cgi-bin/latex.cgi?x<0 то функция pow работать не будет. У вас в задании есть условие, что https://www.cyberforum.ru/cgi-bin/latex.cgi?x\ge 0 ?
0
 Аватар для vasilisa-9090
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 14:55  [ТС]
только оно все равно 1-ю функцию не считает. выдает ответ что для С равный иксу, который вводишь, а в мат модели он другой. а х там положительный вводится по заданию
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.04.2013, 14:57
vasilisa-9090, если совсем просто
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
36
37
38
39
40
41
42
43
#include <iostream>
using namespace std;
 
int fact(int n);
int C(int n, int m);
//C(n,m)=n!/(m!*(n-m)!)
 
int main()
{
    int   i,n = 0;
    double x = 0;
    double y = 0;
    double power;
    while(true)
    {
        cout<<"n = ";cin>>n;
        cout<<"x = ";cin>>x;
        power = x;
        for(y = (i = 0); i <= n; i++)
        {
            y = y + C(i, n)*power;
            power = power*x;
        }
        cout<<"y = "<<y<<endl;
    }
    return 0;
}
 
int fact(int n)
{
    int ret = n;
    if(n == 0)
        ret = 1;
    else
    if(0 < (n -= 1))
        ret *= fact(n);
    return ret;
}
 
int C(int n, int m)
{
    return fact(n)*1.0/(fact(m)*fact(n - m));
}
Миниатюры
вызов функцииж факториал  
2
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
24.04.2013, 14:58
Сейчас я поищу ошибку.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.04.2013, 15:06

Не по теме:

На самом же деле формула числа сочетаний и факториала для рассчёта на кажой итерации и не нужна, ведь у нас сумма элементов ряда надо всего лишь найти отношение для двух смежных членов, рассчитать первый член ряда и накомпить сумму. Когда появится время накидаю



Добавлено через 4 минуты
Эффективная формула вычисления числа сочетаний


Добавлено через 2 минуты
https://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{i} = {{C}^{i}}_{n}*{x}^{i} = \frac{n!}{i!*(n - i)!}*{x}^{i}
https://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{i + 1} = {{C}^{i + 1}}_{n}*{x}^{(i + 1)} = \frac{n!}{(i + 1)!*(n - (i + 1))!}*{x}^{(i + 1)}
Итератор
https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{y}_{i + 1}}{{y}_{i}} =  \frac{\frac{n!}{(i + 1)!*(n - (i + 1))!}*{x}^{(i + 1)}}{\frac{n!}{i!*(n - i)!}*{x}^{i}} = x*\frac{i!}{(i + 1)!}*\frac{(n - i - 1)!*(n - i)}{(n - i - 1)!} = x*\frac{(n - i)}{i + 1}
1
 Аватар для okman
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
24.04.2013, 15:10
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
Задание звучит так: Составить программу решения задачи с использованием функций нахождения факториала и числа сочетаний из n по m по формуле C(n,m)=n!/(m!*(n-m)!). Нахождение факториала осуществить с помощью вызова подпрограммы. Обчислити вираження для заданих n, x:
Что такое "i" и откуда его взять? Если я тебя правильно понял то я почти решил задачу
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.04.2013, 15:11
Итак вот теперь как выглядит задача
https://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{0} = {{C}^{i}}_{n}*{x}^{i} = \frac{n!}{i!*(n - i)!}*{x}^{i} = \frac{n!}{0!*(n - 0)!}*{x}^{0} = 1 далее просто в цикле ведём итерационное домножение
1
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
24.04.2013, 15:13
Не знаю. У меня ваша программа (с моими последними исправлениями) работает правильно.
Вводил 2 5 и 0.1
Программа выдала 10 и 1.61051
Компилятор Borland C++ 5.5.1
0
24.04.2013, 15:14

Не по теме:

okman, в формуле брать в посте 22

0
 Аватар для vasilisa-9090
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
24.04.2013, 15:19  [ТС]
спасибо огромное! только у меня компилятор
C++
1
while(true)
не воспринимает почему-то и ошибку выдает. и я, как новичек, не могу понять где здесь вызов функций. нам просто задали написать чтобы факториал вызывался отдельной функцией.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
24.04.2013, 15:19
Вот скриншот.
Миниатюры
вызов функцииж факториал  
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.04.2013, 15:21
Так вот vasilisa-9090, смотри сколько было кода в посте 30 и сколько кода в этом с учётом рекурентных формул
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    int   i,n = 0;
    double x = 0;
    double y = 0;
    while(true)
    {
        cout<<"n = ";cin>>n;
        cout<<"x = ";cin>>x;
        y = x;
        for(i = 0; i < n; i++)
            y = y*(n - i)*x/(i + 1);
        cout<<"y = "<<y<<endl;
    }
    return 0;
}
А результат тотже, вот почему кроме колосального сокращения числа вычислительных операций, итерационное домножение ещё существенно упрощает сам код. Так что как говориться - зачем больше платить?
Миниатюры
вызов функцииж факториал  
2
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.04.2013, 15:23
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
пасибо огромное! только у меня компилятор
Код C++
1
while(true)
не воспринимает почему-то и ошибку выдает. и я, как новичек, не могу понять где здесь вызов функций. нам просто задали написать чтобы факториал вызывался отдельной функцией.
достаточно записать while(1) думаю установлен довольной старый BorlandC который не воспринимает C++ а компилирует под Си
1
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
24.04.2013, 15:24
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
не воспринимает почему-то и ошибку выдает
В вашем компиляторе нет типа bool и соответствующих констант true и false.
Так что замените true на 1 и должно заработать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2013, 15:24

Вызов методов классов друг у друга (вызов метода из другого класса)
Есть несколько классов, которые могут вызывать методы (функции) друг у друга. Логика: класс1 имеет метод А, класс2 имеет метод Б, класс1...

Вызов запроса хранящегося в Access2000 и его вызов из VB, с получение Recordset.
Есть запрос хранящийся в БД Access2000. Как можно его вызвать из VB и получить от него Recordset?

Не удается выполнить исходящий вызов, так как приложение обрабатывает входящий синхронный вызов
И снова добренького вечера) Столкнулся с такой проблемой, может кто знает пути выхода из нее. Есть процедура чтения свойств флешки: ...

Массивы. Загрузите программу, проверьте ее исполнение, замените вызов процедуры ввода на вызов присваивания и снова исполните программу
Загрузите программу lab11.pas, проверьте ее исполнение, замените вызов процедуры ввода на вызов присваивания и снова исполните программу: ...

Вызов скрипта с параметрами скрипта рекурсивно с своими глобальными переменными каждый вызов
Всем привет, есть скрипт у которого глобальные переменные на весь файл. Хочу запустить этот скрипт с путем к файлу с параметрами для...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru