Частина тексту файла (без зображень, графіків і формул):
Міністерство науки і освіти України
Національний університет “Львівська Політехніка”
Інститут комп’ютерних наук та інформаційних технологій
Кафедра ПЗ
Звіт
З лабораторної роботи № 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
Висновок
Я оволодів основними прийомами створення функцій та передачі даних між ними на основі понять формальних і фактичних параметрів.