Частина тексту файла (без зображень, графіків і формул):
Міністерство науки і освіти України
Національний університет “Львівська Політехніка”
Інститут комп’ютерних наук та інформаційних технологій
Кафедра ПЗ
Звіт
З лабораторної роботи № 9
з курсу «Основи програмування та алгоритмічні мови»
Тема: Програмування функцій мовою С.
Мета: Оволодіти основними прийомами створення функцій та передачі даних між ними на основі понять формальних і фактичних параметрів.
Завдання: Задано функцію. Знайти визначений інтеграл з точністю Е=10-3 для заданих границь [a,b] за допомогою трьох методів: 1) прямокутників; 2) трапецій; 3) Сімпсона. Метод задавати з клавіатури відповідним номером.
, a=0, b=1;
Блок-схема алгоритму
double f(double x)
main()
Текст програми
#include<stdio.h>
#include<conio.h>
#include<math.h>
double f(double x)
{
return pow(x,15)*sqrt(1+3*pow(x,8));
}
double integralrect(double a,double b,double epsilon)
{
int i, n;
double h, s1, s2;
n = 1;
h = b-a;
s2 = h*f((a+b)/2);
do
{
n = 2*n;
s1 = s2;
h = h/2;
s2 = 0;
i = 1;
do
{
s2 = s2+f(a+h/2+h*(i-1));
i = i+1;
}
while(i<=n);
s2 = s2*h;
}
while(fabs(s2-s1)>epsilon);
return s2;
}
double integraltrapezium(double a,double b,double epsilon)
{
int i, n;
double h, s1, s2;
n = 1;
h = b-a;
s2 = h*(f(a)+f(b))/2;
do
{
s1 = s2;
s2 = 0;
i = 1;
do
{
s2 = s2+f(a-h/2+h*i);
i = i+1;
}
while(i<=n);
s2 = s1/2+s2*h/2;
n = 2*n;
h = h/2;
}
while(fabs(s2-s1)>epsilon);
return s2;
}
void main()
{
int n;
printf("Vvedit nomer:\n");
printf("1)Metod prjamokutnykiv\n");
printf("2)Metod trapecii\n");
scanf("%d", &n);
if (n == 1)
printf("%f\n", integralrect(0, 1, 0.001));
if (n == 2)
printf("%f\n", integraltrapezium(0, 1, 0.001));
getch();
}
Протокол роботи програми
Vvedit nomer:
1)Metod prjamokutnykiv
2)Metod trapecii
1
0.107042
Vvedit nomer:
1)Metod prjamokutnykiv
2)Metod trapecii
2
0.108139
Висновок
Я оволодів основними прийомами створення функцій та передачі даних між ними на основі понять формальних і фактичних параметрів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!