Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kamikazy
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 67
#1

Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями - C++

08.11.2016, 12:11. Просмотров 664. Ответов 2
Метки нет (Все метки)

Использовать метод прямоугольников. Для построения прямоугольника использовать правый конец отрезка.
y=−2x2+3x+6, y=x+2.

Добавлено через 13 часов 28 минут
Я написал код, но выдает неправильный ответ. Помогите найти ошибку, пожалуйста.
При a=1, b=4, n=5 у меня выдает 22,56.
Решение в Экселе выдает 56,16.

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
44
45
46
47
48
49
50
51
52
53
54
//Третья лабораторная работа.//
/* Использовать метод прямоугольников. Для построения прямоугольника использовать правый конец отрезка.
y=-2x^2+3x+6, y=x+2.*/
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <cmath>
#include <math.h>
 
using std::cout;
using std::cin;
using std::endl;
 
double f1(double x) {
    return -2 *pow(x, 2) + 3 * x + 6; 
}
 
double f2(double x) {
    return x + 2;
}
 
double integrate(double a, double b, double n) {
    double h, S = 0, S1 = 0, S2 = 0, x;
    int i;
    h = (b - a) / n;
    for (i = 1; i <= n; i++)
    {
        x = a + i*h;
        S1 += f1(x);
        S2 += f2(x);
    }
    S = h*(S2 - S1);
    return S;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    double y, n, a, b;
    cout << "Использовать метод прямоугольников. Для построения прямоугольника использовать правый конец отрезка" << endl;
    cout << "y = -2x ^ 2 + 3x + 6, y = x + 2." << endl;
    cout << "\nВведите интервал a = ";
    cin >> a;
    cout << "Введите интервал b = ";
    cin >> b;
    cout << "Введите интервал разбиения: ";
    cin >> n;
 
    y = integrate(a, b, n);
        cout << "\nОтвет: S = " << y;
 
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2016, 12:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями (C++):

Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями - C++
1)Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями.В вариантах № 6–10 использовать метод...

Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями - C++
1)Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями. использовать метод прямоугольников. Для...

Составить программу приближенного вычисления площади фигуры - C++
Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями. Использовать метод прямоугольников. Для...

Вычислить площадь фигуры ограниченной линиями - C++
Ребят помогите плс!Задачка никак не получается((( Постановка задачи. Вычислить площадь фигуры ограниченной линиями f1(x) и f2(x) ...

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

Вычислить площадь фигуры ограниченной заданными функциями - C++
Доброго времени суток, программисты :) Прошу помощи переделать программу из MatLAB, в С++ Заранее всем спасибо! Вычислить площадь...

2
afront
1045 / 991 / 372
Регистрация: 29.02.2016
Сообщений: 3,185
08.11.2016, 12:37 #2
у вас одна ошибка, должно быть
C#
1
S = h*(S1 - S2);
а проверять лучше посчитав чему равны интегралы точно

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <cmath>
#include <math.h>
 
using std::cout;
using std::cin;
using std::endl;
 
double f1(double x) {
    return -2 *pow(x, 2) + 3 * x + 6; 
}
 
double f2(double x) {
    return x + 2;
}
  
double if1(double x) {
    return -2.0 / 3 * pow(x, 3) + 3.0/2 * pow(x, 2) + 6 * x; 
}
 
double if2(double x) {
    return 1.0 / 2 * pow(x, 2)  + 2 * x;
}
double integrate(double a, double b, double n) {
    double h, S = 0, S1 = 0, S2 = 0, x;
    int i;
    h = (b - a) / n;
    for (i = 1; i <= n; i++)
    {
        x = a + i*h;
        S1 += f1(x);
        S2 += f2(x);
    }
    S = h*(S1 - S2);
    return S;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    double y, n, a, b;
    cout << "Использовать метод прямоугольников. Для построения прямоугольника использовать правый конец отрезка" << endl;
    cout << "y = -2x ^ 2 + 3x + 6, y = x + 2." << endl;
    cout << "\nВведите интервал a = ";
    cin >> a;
    cout << "Введите интервал b = ";
    cin >> b;
    cout << "Введите интервал разбиения: ";
    cin >> n;
 
    y = integrate(a, b, n);
        cout << "\nОтвет: S = " << y;
 cout << "\nПодтверждение: S = " << if1(b) - if1(a) - if2(b) + if2(a);
    _getch();
    return 0;
}
0
kamikazy
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 67
08.11.2016, 16:14  [ТС] #3
Моё уравнение было правильным.
у вас одна ошибка, должно быть
Мне помогли и заменили код цикла. Выдает 58.56, уже хорошо.
C++
1
2
3
4
5
6
7
    for (double i = a; i < b; i = i + h)
    {
        x = i + h;
        S1 += -2 * x*x + 3 * x - 6;
        S2 += x + 2;
    }
    S = h*(S2 - S1);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2016, 16:14
Привет! Вот еще темы с ответами:

Написать программу для вычисления площади фигуры, используя 3 модуля и 3 пользовательские функции - C++
Была поставлена задача написать программу для вычисления площади фигуры, используя 3 модуля и 3 пользовательские функции. Сам код я...

Составить программу для определения площади заштрихованой фигуры - C++
Добрый день! Помогите написать программу в C++. Вот такие условия: Составить программу для определения методом Монте-Карло площади...

Написать программу, вычисления площади фигуры Программа должна управляться с помощью меню из шести пунктов: - C++
Написать программу, вычисления площади фигуры Программа должна управляться с помощью меню из шести пунктов: Текст задачи, Ввод данных...

Вводить название фигуры, выводить формулу для вычисления площади этой фигуры - C++
Вводить название фигуры (треугольник, квадрат, ромб, прямоугольник) выводить формулу для вычисления площади этой фигуры.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru