Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Лабораторная работа №1.
- При некоторых x, N, E, определяемых вводом, высчитать для ряда №9:
- 1/(1+x)^3 = 1 - (2*3/(2*x)) + (3*4/(2*x^2)) - (4*5/(2*x^3)) + ... R=1
- а) Сумму N слагаемых данного ряда
- б) Сумму тех слагаемых, которые по абсолютной величине больше E.
- Вычисление второй суммы выполнить для дыух значений Е, отличающихся на порядок, при этом определите количество слагаемых,
- включенных в сумму, вычисляемую для каждого значения Е. Сравните результаты со значением функции,
- для которой данная сумма определяет приближенное значение при х, лежащем в интервале (-R,R), вычисленным с помощью встроенных функций компилятора.
- Выполнена студенткой 2 курса 62 группы Краковой Софьей.
- */
- #include "pch.h"
- #include <iostream>
- using namespace std;
- float rsum(float x, int n) // Первая функция rsum, вычисляет значение ряда №9 для заданного вещ. аргумента x с помощью N слагаемых ряда. Имеет 2 параметра и возвращает вещественное значение вычисленной суммы.
- {
- float sum = 1;
- int z = -1;
- float a = x;
- for (int i = 2; i <= n; i++)
- {
- sum += z* i * (i + 1) * a/2;
- a *= x;
- z *= -1;
- }
- return sum;
- }
- float rsum(float x, float e, int &count) // Вторая (перегруженная) функция с тем же именем вычисляет по тому же алгоритму значение суммы с заданной точностью eps. Она возвращает в основную функцию не только вычисленное значение суммы, но и количество слагаемых в этой сумме (int &count).
- {
- int z = -1;
- float a = x;
- float sum = 1;
- int i = 2;
- while (i * (i + 1) * a / 2 > e) // пока очередное слагаемое по абсолютной величине больше е.
- {
- sum += z * i * (i + 1) * a / 2;
- a *= x;
- z *= -1;
- i++;
- count++;
- }
- return sum;
- }
- int main()
- {
- setlocale(0, "");
- int n;
- cout << "Введите n: ";
- cin >> n; // Количество слагаемых.
- cout << "Введите x: ";
- float x;
- cin >> x; // Некоторое вещественное значение х.
- cout << rsum(x, n) << endl;
- cout << "Введите первое значение E: "; // Заданная точность
- float e;
- cin >> e;
- int count = 1;
- cout << rsum(x, e, count) << " Количество слагаемых = ";
- cout << count << endl;
- cout << "Введите второе значение E: ";
- cin >> e;
- count = 1;
- cout << rsum(x, e, count) << " Количество слагаемых = ";
- cout << count << endl;
- cout << 1/pow((1+x),3); // Сравниваем со значением функции, вычисленной с помощью встроенных функций компилятора.
- return 0;
- }
Add Comment
Please, Sign In to add comment