1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Задача: вычисление площади криволинейной трапеции (ф-лы Прямоуг., Трап

Тема в разделе "Вопросы новичков и не только", создана пользователем dimon131, 9 дек 2010.

Статус темы:
Закрыта.
  1. dimon131

    dimon131 Member

    Репутация:
    0
    Регистрация:
    8 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    Программа:
    Написать программу которая будет вычислять площадь криволенейной трапеции ограниченой отрезком [a.b], графиком функции и вертикальными прямыми х=а и х=b, применив формулы прямоугольников и трапеций. Сравнить результаты, полученые за разными формулами.

    Формула прямоугольников для приближенного вычисления площади имеет вид:

    b
    ∫ f(x)dx≈h*(f(a+h/2)+f(a+h/2+h)+⋯+f(a+h/2+(n-1)*h))〗
    а

    формула трапеций

    b
    ∫ f(x)dx≈h*(f(a)/2+f(a+h)+f(a+2h)+...+f(a+(n-1)*h)+f(a+n*h)/2)
    а

    формула которую нужно вычислить:

    Пи
    ∫ ln(5-4*cosx)dx;
    0

    n-количество равных частей на которые разбивается отрезок [a.b]
    h=(b-a)/n
    n>=20 - по условию

    Код программы:

    Код:
    #include<conio.h>
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    double a,b,h,n;			 //Обьявление переменных
    float x,y;
    printf("Введите a,a=");
    scanf("%f",&a);			 //Ввод данных
    printf("Введите b, b=");
    scanf("%f",&b);			 //Ввод данных
    printf("Введите n>20, n=");
    scanf("%f",&n);			 //Ввод данных
    h=(b-a)/n;				  
    printf("x-Площадь через прямоугольник\n");
    x=h*(log(h/2+a+(n-1)*h));		 //Вычесление площади через прямоугольник	 
    printf("%f",x);					 //Вывод результата
    printf("y-Площадь через трапецию\n");
    y=h*(log(a+(n-1)*h)+log(n*h+a)/2);		 // Вычесление площади через трапецию
    printf("%f",y);							//Вывод результата
    if(y<x)									//условие
    printf("y<x");					 //Вывод результата
    else
    printf("y>x");		//Вывод результата
    getch();
    return 0;
    }
     
  2. DarkKnight

    DarkKnight Well-Known Member

    Репутация:
    0
    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    У вас есть ошибки в формулах..... Это раз...
    Ну и подход вычисление вы не поняли.... Вычисляете не то что нужно...
    Код:
    #include<stdio.h>
    #include <conio.h>
    #include<math.h>
    
    //Эту строку при компиляции уберешь(!!!)
    #include <iostream>
    
    //У нас функция, так что бы очень не мучатся мы вычисление ее значение заведем как функцию
    double Funct(double x)
    {
    return log(5 - 4 * cos(x));
    }
    
    int main()
    {
    //И эту строку тоже
    setlocale(LC_ALL,"Russian");
    //Сразу вам скажу, что не вижу у вас сумм членов ряда
    //Следовательно решения у вас уже никакого не получится
    //setlocale(LC_ALL,"Russian");
    double a,b,h,n;			 //Обьявление переменных
    double i; //Для цикла
    printf("Введите a, a=");
    scanf("%lf",&a);
    printf("Введите b, b=");
    scanf("%lf",&b);			 //Ввод данных
    printf("Введите n>20, n=");
    scanf("%lf",&n);			 //Ввод данных
    h=(b-a)/n;				  
    //Вот до этого момента с вами абсолютно согласен
    //а теперь заведем переменные суммы для м. прямоугольников и суммы для м. трапеций
    double sRect = 0.0;
    double sTrap = 0.0;
    // f(x)dx≈h*(f(a+h/2)+f(a+h/2+h)+⋯+f(a+h/2+(n-1)*h))
    printf("x-Площадь через прямоугольник\n");
    //И так метод прямоугольника
    //интеграл у нас от a до b, а шаг h => циклим
    for (i = a; i<b; i +=h)
    {
    sRect += Funct(a+h*i);
    }
    sRect *= h; //Завершающим является умножение на h
    
    printf("y-Площадь через трапецию\n");
    //Метод трапеций
    for (i = a; i<b; i +=h)
    {
    sTrap += Funct(a+h*i); //Найдем сумму членов последовательности
    }
    sTrap = h * ((Funct(a)+Funct(b))/2 + sTrap); 
    
    printf("%f  %f \n",sRect,sTrap);
    
    if(sTrap < sRect)									//условие
    printf("y<x");					 //Вывод результата
    else
    printf("y>x");		//Вывод результата
    getch();
    return 0;
    }
     

    Вложения:

    • Задача: вычисление площади криволинейной трапеции (ф-лы Прямоуг., Трап
      scanf1.jpg
      Размер файла:
      34,9 КБ
      Просмотров:
      19
    • Задача: вычисление площади криволинейной трапеции (ф-лы Прямоуг., Трап
      scanf2.jpg
      Размер файла:
      29,8 КБ
      Просмотров:
      18
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей