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

Решение уравнения с используя функцию - C++

Восстановить пароль Регистрация
 
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 13:54     Решение уравнения с используя функцию #1
Используя пользовательскую функцию (одну для двух сумм) рассчитать по формуле:
Миниатюры
Решение уравнения с используя функцию  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GmV_ScoRp
 Аватар для GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
11.07.2012, 15:55     Решение уравнения с используя функцию #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
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include "math.h"
using namespace std;
 
double div_(int, int);
 
int main()
{
    cout << "y = " << div_(4, 3); // Надо вписать нужное число, 1-параметр n, 2ой m; ((int n, int m))
 
    return 0;
}
 
double div_(int n, int m)
{
    int a = 0;
 
    for (int i = 0; i <= n; ++i) {
 
        a += 3 * pow(i, 3) + pow(i, 2) + 1;
    }
 
    a *= 2 + 1;
 
    int b = 0;
 
    for (int j = 0; j <=m; ++j)  {
 
        b += 2 * pow(j, 3) + 3;
 
    }
 
    b += 2;
 
    int sum = a / b;
 
    return sum;
 
}
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 17:24  [ТС]     Решение уравнения с используя функцию #3
нужно, чтобы деление выполнялось в главной программе, то есть функция считала сумму, а главная программа выглядела примерно так

************************
y=(1+2*sum(n))/(2+sum(m));
************************
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
11.07.2012, 17:51     Решение уравнения с используя функцию #4
Замени только мои предложения на своё усмотрение, т.к я не знал как правильно назвать n и m. Возможно я подзабыл математику, но вроде я всё правильно понял: например, первая сумма вычисляется для j равным от 3 до некого 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
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include "math.h"
using namespace std;
double sum1(int pr);
double sum2(int pr);
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int n,m;
    cout << "Введите предел n, равным не менее 3: ";
    cin>> n;
    if (n<3)
        {cout << "n должно быть не менее 3, введите повторно: ";
         cin>> n;}
    cout << "\nВведите предел m, равным не менее 2: ";
    cin>> m;
    if (m<2)
        {cout << "m должно быть не менее 2, введите повторно: ";
         cin>> m;}
    double result = (1+2*sum1(n))/(2+sum2(m));
    cout << "\nРезультат равен: " << result;
    for (int i=0;i<100; i++)
        cin.get();
    return 0;
}
 
double sum1(int pr)
{
    double fun=0;
    for (int j=3; j<=pr; j++)
        fun+=3*pow(j,3.0)+pow(j,2.0)+1;
    return fun;
}
double sum2(int pr)
{
    double fun=0;
    for (int j=2; j<=pr; j++)
        fun+=2*pow(j,3.0)+3;
    return fun;
}
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 17:53  [ТС]     Решение уравнения с используя функцию #5
все бы хорошо, но функция должна быть одна для двух сумм, а как это сделать я не знаю
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
11.07.2012, 18:08     Решение уравнения с используя функцию #6
Цитата Сообщение от MasterRO Посмотреть сообщение
все бы хорошо, но функция должна быть одна для двух сумм, а как это сделать я не знаю
Я хз, как сделать через 1 аргумент у функции, получается только с двумя аргументами
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
#include <iostream>
#include "math.h"
using namespace std;
double sum1(int nr, int mr);
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int n,m;
    cout << "Введите предел n, равным не менее 3: ";
    cin >> n;
    if (n<3)
        {cout << "n должно быть не менее 3, введите повторно: ";
         cin>> n;}
    cout << "\nВведите предел m, равным не менее 2: ";
    cin>> m;
    if (m<2)
        {cout << "m должно быть не менее 2, введите повторно: ";
         cin>> m;}
    double result = (1+2*sum1(n,1))/(2+sum1(1,m));
    cout << "\nРезультат равен: " << result;
    for (int i=0;i<100; i++)
        cin.get();
    return 0;
}
 
double sum1(int nr, int mr)
{
    if (mr==1)
    {
    double fun=0;
    for (int j=3; j<=nr; j++)
        fun+=3*pow(j,3.0)+pow(j,2.0)+1;
    return fun;}
    if (nr==1)
    {
    double sun=0;
    for (int j=2; j<=mr; j++)
        sun+=2*pow(j,3.0)+3;
    return sun;}
}
GmV_ScoRp
 Аватар для GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
11.07.2012, 18:13     Решение уравнения с используя функцию #7
Перегрузи функцию!!
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
11.07.2012, 18:20     Решение уравнения с используя функцию #8
Цитата Сообщение от GmV_ScoRp Посмотреть сообщение
Перегрузи функцию!!
Это ты кому пишешь? Если мне, то я как раз только начал читать про перегрузки, поэтому пока не понимаю, что это означает

Добавлено через 3 минуты
ЕЕЕЕ, я сам сделал Блин, я такой клёвый
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>
#include "math.h"
using namespace std;
double sum(int nr);
double sum(double mr);
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int n;
    double m;
    cout << "Введите предел n, равным не менее 3: ";
    cin >> n;
    if (n<3)
        {cout << "n должно быть не менее 3, введите повторно: ";
         cin>> n;}
    cout << "\nВведите предел m, равным не менее 2: ";
    cin>> m;
    if (m<2)
        {cout << "m должно быть не менее 2, введите повторно: ";
         cin>> m;}
    double result = (1+2*sum(n))/(2+sum(m));
    cout << "\nРезультат равен: " << result;
    for (int i=0;i<100; i++)
        cin.get();
    return 0;
}
 
double sum(int nr)
{
    double fun=0;
    for (int j=3; j<=nr; j++)
        fun+=3*pow(j,3.0)+pow(j,2.0)+1;
    return fun;
    
}
double sum(double mr)
{
double sun=0;
    for (int j=2; j<=mr; j++)
        sun+=2*pow(j,3.0)+3;
    return sun;
}
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 21:09  [ТС]     Решение уравнения с используя функцию #9
так а функции все равно 2((
вот как она на паскале выглядит:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
function F(m,n,a,b,c:integer):integer;
var j,s:integer;
 begin
  s:=0;
 for j:=m to n do
  s:=s+a*j*j*j+b*j*j+c;
  F:=s;
 end;
var m,n:integer;
    y:real;
 begin 
  writeln('Введите n>2: ');
  read(n); 
  writeln('Введите m>1: ');
  read(m);
  y:=(1+2*F(3,n,3,1,1))/(2+F(2,m,2,0,3));
  write('y=',y:0:3);
 end.
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
11.07.2012, 21:23     Решение уравнения с используя функцию #10
Цитата Сообщение от MasterRO Посмотреть сообщение
так а функции все равно 2((
А прога, которая повыше, где функция, но с двумя аргументами тоже не подойдёт? Просто тебе же нужно, чтобы сама формула вычислялась в main, а суммы считались функцией. Но теперь я точно даже не представляю, как это можно осуществить в одной функции с одним аргументом и без этих перегрузок, я ещё мало прочитал книжку по с++. Чем мог, тем помог
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 22:02  [ТС]     Решение уравнения с используя функцию #11
Цитата Сообщение от Fooly Посмотреть сообщение
как это можно осуществить в одной функции с одним аргументом
просто если представить пример (3*j^3+j^2+1) как (a*j^3+b*j^2+c) к примеру, то есть а=3 b=1 b c=1, а j изменяется от 3 до n, тогда во второй сумме a=2, b=0 (0*j^2=0), a c=3, и получается 2*j^3+0*j^2+3=2*j^3+3. В функцию должны передаваться параметры
C++
1
int func(n,m,a,b,c)
но как это сделать на С++ я не знаю
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
11.07.2012, 22:52     Решение уравнения с используя функцию #12
Цитата Сообщение от MasterRO Посмотреть сообщение
просто если представить пример (3*j^3+j^2+1) как (a*j^3+b*j^2+c) к примеру, то есть а=3 b=1 b c=1, а j изменяется от 3 до n, тогда во второй сумме a=2, b=0 (0*j^2=0), a c=3, и получается 2*j^3+0*j^2+3=2*j^3+3. В функцию должны передаваться параметры
C++
1
int func(n,m,a,b,c)
но как это сделать на С++ я не знаю
А в функцию должен передаваться 1 параметр? Просто, если можно передать 4 параметра, то тогда это легко делается, но я всё-таки понимаю, что нужно сделать с одним параметром. Нужно ждать ответа профи в таком случае

Добавлено через 9 минут
И с 4-мя не смог сделать Вот с 5 параметрами, но зато 1 функция
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
#include <iostream>
#include "math.h"
using namespace std;
double sum(int nr, int a, int b, int c, int j);
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int n;
    double m;
    cout << "Введите предел n, равным не менее 3: ";
    cin >> n;
    if (n<3)
        {cout << "n должно быть не менее 3, введите повторно: ";
         cin>> n;}
    cout << "\nВведите предел m, равным не менее 2: ";
    cin>> m;
    if (m<2)
        {cout << "m должно быть не менее 2, введите повторно: ";
         cin>> m;}
    double result = (1+2*sum(n,3,1,1,3))/(2+sum(m,2,0,3,2));    
    cout << "\nРезультат равен: " << result;
    for (int i=0;i<100; i++)
        cin.get();
    return 0;
}
 
double sum(int nr, int a, int b, int c, int j)
{
    double fun=0;
    for (j; j<=nr; j++)
        fun+=a*pow(j,3.0)+b*pow(j,2.0)+c;
    return fun; 
}
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 23:37  [ТС]     Решение уравнения с используя функцию #13
спасибо) это подойдет, ограничения по параметрам не было))
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
12.07.2012, 00:00     Решение уравнения с используя функцию #14
Цитата Сообщение от Fooly Посмотреть сообщение
Вот с 5 параметрами, но зато 1 функция
добавь значения по умолчанию и можешь вызывать с одним параметром
C++
1
double sum(int nr, int a=0, int b=0, int c=0, int j=0);
тогда при вызове
sum(5);
она вызовется как sum(5,0,0,0,0)
при
sum(5,2);
она вызовется как sum(5,2,0,0,0)
ну и так далее
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
12.07.2012, 06:17     Решение уравнения с используя функцию #15
Вам подойдет вариант, когда функция принимает сразу два аргумента и возвращает сразу два отдельных значения суммы...?
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
12.07.2012, 07:18     Решение уравнения с используя функцию #16
Цитата Сообщение от salam Посмотреть сообщение
принимает сразу два аргумента и возвращает сразу два отдельных значения суммы...
как так
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2012, 07:20     Решение уравнения с используя функцию
Еще ссылки по теме:

Решение уравнения C++
Решение квадратного уравнения, используя if, else и switch C++
Передача массива в функцию используя указатель на функцию C++

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

Или воспользуйтесь поиском по форуму:
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
12.07.2012, 07:20     Решение уравнения с используя функцию #17
хотя бы
C++
1
2
3
4
5
6
pair <int, int> function(pair <int, int>)
{
pair <int, int> p;
...
return p;
}
Yandex
Объявления
12.07.2012, 07:20     Решение уравнения с используя функцию
Ответ Создать тему
Опции темы

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