Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Created by Turkin Alexey, AMM, VSU*/
- // подключаем библиотеки
- #include <iostream>
- #include <iomanip> // библиотека для функции setprecision();, которая отвечает за вывод знаков после запятой (кол-во цифр в скобках - кол-во знаков после запятой)
- using namespace std;
- // int main() || void main() function
- int main() {
- setlocale(LC_ALL, "Russian"); // подключение русской локали (чтобы в консоли русские буквы в кавычках воспринимались компилятором)
- unsigned short int n; // unsigned - беззнаковый, short - диапазон по своей сути и памяти меньше берет (в C# 100% также)
- cout << "Введите точность интегрирования n: "; cin >> n;
- int a, b;
- cout << "Введите пределы интегрирования: сначала а, затем b: "; cin >> a >> b;
- if (n <= 0) {
- cout << "INVALID N!" << endl;
- system("pause");
- return 0; // если у нас int main(), то обязательно пишем возвращаемое значение, т.е. return 0;, если же написано void main(), то return 0; писать не нужно
- } else {
- double slag = ((b-a)/2*n); // наше суммируемое слагаемое в соответствии с заданием
- double sigma = 0; // сам результат вычислений
- if (a == b) {
- cout << "0" << endl;
- system("pause");
- return 0;
- } else if (a < b) {
- for (int i = a; i <= b; i++) {
- if (i == a || i == b) {
- slag *= i;
- } else {
- slag *= 2*i;
- }
- sigma += slag;
- slag = ((b-a)/2*n);
- }
- cout << "Значение интеграла при заданной точности n равно: " << setprecision(10) << sigma << endl;
- system("pause");
- return 0;
- } else { // почему здесь вычитание, а не сумма. Потому что по св-ву интеграла Римана (определенного интеграла), если поменять пределы местами, то интеграл следует брать с минусом
- for (int i = b; i <= a; i++) {
- if (i == a || i == b) {
- slag *= i;
- } else {
- slag *= 2*i;
- }
- sigma -= slag;
- slag = ((b-a)/2*n);
- }
- cout << "Значение интеграла при заданной точности n равно: " << setprecision(10) << sigma << endl;
- system("pause");
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment