Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
37 / 5 / 4
Регистрация: 15.09.2011
Сообщений: 73
1

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

11.07.2012, 13:54. Показов 1166. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Используя пользовательскую функцию (одну для двух сумм) рассчитать по формуле:
Миниатюры
Решение уравнения с используя функцию  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2012, 13:54
Ответы с готовыми решениями:

Решение квадратного уравнения, используя if, else и switch
// Найти корни квадратного уравнения, используя if,else/switch #include <iostream> // work with...

Решение квадратного уравнения через функцию
Здравствуйте, уважаемые программисты. Возникла проблема с написанием кода для решения квадратного...

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

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

16
2 / 2 / 2
Регистрация: 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;
 
}
0
37 / 5 / 4
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 17:24  [ТС] 3
нужно, чтобы деление выполнялось в главной программе, то есть функция считала сумму, а главная программа выглядела примерно так

************************
y=(1+2*sum(n))/(2+sum(m));
************************
0
21 / 17 / 4
Регистрация: 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;
}
0
37 / 5 / 4
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 17:53  [ТС] 5
все бы хорошо, но функция должна быть одна для двух сумм, а как это сделать я не знаю
0
21 / 17 / 4
Регистрация: 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;}
}
0
2 / 2 / 2
Регистрация: 16.02.2011
Сообщений: 64
11.07.2012, 18:13 7
Перегрузи функцию!!
0
21 / 17 / 4
Регистрация: 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;
}
1
37 / 5 / 4
Регистрация: 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.
0
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
11.07.2012, 21:23 10
Цитата Сообщение от MasterRO Посмотреть сообщение
так а функции все равно 2((
А прога, которая повыше, где функция, но с двумя аргументами тоже не подойдёт? Просто тебе же нужно, чтобы сама формула вычислялась в main, а суммы считались функцией. Но теперь я точно даже не представляю, как это можно осуществить в одной функции с одним аргументом и без этих перегрузок, я ещё мало прочитал книжку по с++. Чем мог, тем помог
0
37 / 5 / 4
Регистрация: 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)
но как это сделать на С++ я не знаю
0
21 / 17 / 4
Регистрация: 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; 
}
1
37 / 5 / 4
Регистрация: 15.09.2011
Сообщений: 73
11.07.2012, 23:37  [ТС] 13
спасибо) это подойдет, ограничения по параметрам не было))
0
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,524
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)
ну и так далее
1
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
12.07.2012, 06:17 15
Вам подойдет вариант, когда функция принимает сразу два аргумента и возвращает сразу два отдельных значения суммы...?
0
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,524
12.07.2012, 07:18 16
Цитата Сообщение от salam Посмотреть сообщение
принимает сразу два аргумента и возвращает сразу два отдельных значения суммы...
как так
0
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
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;
}
0
12.07.2012, 07:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2012, 07:20
Помогаю со студенческими работами здесь

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

Преобразовать решение используя указатели (дано решение без указателей)
Элемент матрицы назовем седловой точкой, если он является наименьшим в своей своей строке и...

Передача массива в функцию используя указатель на функцию
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать...

Решение уравнения
Доброго времени суток! Ребят помогите с задачкой пожалуйста Задано уравнение: a*x+b*y=c, где...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru