С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 09.10.2022
Сообщений: 17
1

Преобразование вычисления в функцию

08.01.2023, 19:13. Показов 516. Ответов 13

Author24 — интернет-сервис помощи студентам
Нужно пребразовать нижеприведённое вычисление в форму функции, что бы только припомощи ввода 4 переменных вывполнялась одна и таже функция.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <iomanip>
#include <math.h> 
using namespace std;
int main()
{
    double S, x, a, b, h;
    int n, i;
    cout << "Write a, b, h, k" << endl;
    cin >> a >> b >> h >> n;
    x = a;
    do                                                      
    {
        S = 0;                                              
        for (i=1; i<=n; i++)                                
            S += pow(x, 2*i-2) / 2*i+1;
        cout << setw(25) << x << setw(15) << S << endl;     
        x += h;                                             
    }   while (x <= b + h / 2);                             
    cout << endl;                                           
    return 0;
}
Добавлено через 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
#include <iostream> 
#include <iomanip> 
#include <math.h> 
 
using namespace std;
 
int Sum(double a, double b, double h, double n)
{
    double  S; double  x;
    
    x = a;
    do
    {
        S = 0;
        for (int i = 1; i <= n; i++)
            S += pow(x, 2 * i - 2) / 2 * i + 1;
            x += h;
    } while (x <= b + h / 2);
 
    return S, x;
}
 
void main()
{
    double a = 0.1;
    double b = 1.2;
    double h = 0.1;
    double n = 20;
 
    double c;
 
    c = 0;
    c += Sum(a, b, h, n);
    
    cout << c << endl;
}
Но выводит почему-то только единицу, хотя ничего в решении не менялось.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2023, 19:13
Ответы с готовыми решениями:

Преобразование в функцию. Есть код, как его преобразовать в функцию, не совсем понимаю
tort = {&quot;наполеон&quot;: , 4, 1500], &quot;медовик&quot;: , 6, 2000]} a = input(&quot;Какой торт Вы хотели бы...

Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k
Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала...

Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k
Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала...

Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k.
Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала...

13
0 / 0 / 0
Регистрация: 09.10.2022
Сообщений: 17
08.01.2023, 19:14  [ТС] 2
Должно получиться что-то вроде
Преобразование вычисления в функцию
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
09.01.2023, 04:42 3
Цитата Сообщение от Morofer Посмотреть сообщение
return S, x;
Что это по вашему означает ?
Что вернется из функции ?

Добавлено через 55 секунд
И почему тип возвращаемого значение - целое ?
0
0 / 0 / 0
Регистрация: 09.10.2022
Сообщений: 17
09.01.2023, 14:42  [ТС] 4
Я не понимаю, если делать что-то простое то всё получается, а как попробовать что-то посложнее то не получается, что мне нужно сделать в первую очередь?
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
09.01.2023, 14:57 5
double Sum(double a, double b, double h, double n)
{
double S; double x;

x = a;
do
{
S = 0;
for (int i = 1; i <= n; i++)
S += pow(x, 2 * i - 2) / 2 * i + 1;
x += h;
} while (x <= b + h / 2);

return S;
}
Цитата Сообщение от Morofer Посмотреть сообщение
double c;
c = 0;
    c += Sum(a, b, h, n);
cout << c << endl;
C++
1
cout << Sum(a, b, h, n) << endl;
Получим итоговую сумму.
0
0 / 0 / 0
Регистрация: 09.10.2022
Сообщений: 17
09.01.2023, 15:07  [ТС] 6
Хорошо, выводится первый прогон цикла, но почему не выводятся следующие итерации?
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
09.01.2023, 15:15 7
Какая следующая ?
Функция Summ по входным данным посчитала частичную сумму ряда и вернула ее.
0
0 / 0 / 0
Регистрация: 09.10.2022
Сообщений: 17
09.01.2023, 15:25  [ТС] 8
Но я же делал не сумму, а функцию. А Sum я её просто так назвал.
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
09.01.2023, 18:05 9
Morofer, бессмысленно выносить в функцию только внутренность цикла. Суть функции - выполнение законченного действия - подсчёт приближённого значения ряда.

А зачем вам функция, которая не до конца считает весь ряд, а только один его член?
0
1 / 0 / 1
Регистрация: 27.12.2022
Сообщений: 1
09.01.2023, 18:09 10
Лучший ответ Сообщение было отмечено Morofer как решение

Решение

Я запутался. У меня задача выполнить первый код в виде функции. Как это должно выглядеть если не так?
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
09.01.2023, 19:22 11
Morofer1, тебя вообще не звали, я автору отвечал, создай тему со своим вопросом и в ней узнавай, что хочешь!
0
0 / 0 / 0
Регистрация: 09.10.2022
Сообщений: 17
10.01.2023, 00:36  [ТС] 12
Сам разобрался, вот если кому интересно:
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 <iomanip>
#include <math.h> 
 
using namespace std;
 
double y(double x)
{
    double s = 0;
    for (int i = 1; i <= 20; i++) s += pow(x, 2 * i - 2) / 2 * i + 1;
    return s;
}
 
int main()
{
    double a, b, h;
    cout << "Write a, b, h" << endl;
    cin >> a >> b >> h;
    cout << setw(25) << "x" << setw(25) << "y(x)" << endl;
        for (double x = a; x <= b; x += h)
        cout << setw(25) << x << " " << setw(25) << y(x) << endl;
    cin.get();
    return 0;
}
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
10.01.2023, 01:32 13
Morofer, только ракеты не строй, окей ?
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
10.01.2023, 08:43 14
Morofer, нормально, прокатит
0
10.01.2023, 08:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2023, 08:43
Помогаю со студенческими работами здесь

Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k
Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала...

Описать функцию вычисления натуральной степени действительного числа. Составить программу вычисления функции arctg(x)
Описать функцию вычисления натуральной степени действительного числа. Составить программу...

Оформить процедуру / функцию вычисления модуля числа, не используя функцию abs
Оформить процедуру вычисления модуля числа, не используя функцию abs....

Вычислить значение функции y раскладывая функцию f(x) в ряд Тейлора. Для вычисления f(x) и факториала использовать рекурсивную функцию
Вычислить значение функции y раскладывая функцию f(x) в ряд Тейлора. Для вычисления f(x) и...

Написать процедуру-функцию для вычисления и составить программу для вычисления величины
Написать процедуру-функцию для вычисления: http://www.7image.ru/pics/0511/161614291.png Число...

Написать процедуру для вычисления коэффициентов и функцию для вычисления значения многочлена
Задано многочлен {P}_{n}(x) степени n&lt;=100, коэффициенты которого содержатся в действительном...


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

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