МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА кафедра «Захист інформації»
Звіт
про виконання лабораторної роботи №5б
з курсу «Алгоритмічні мови і програмування»
на тему:
ПРОГРАМИ З РОЗГАЛУЖЕНИМИ ТА ЦИКЛІЧНИМИ
АЛГОРИТМАМИ
ВАРІАНТ 18
Львів – 2007
ПОВНИЙ ТЕКСТ ЗАВДАННЯ
Скласти блок-схему алгоритму та програму мовою СІ для табулювання функції. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Дані для роботи беруться з таблиці 1:
табулювання функції, представленої рядом, на інтервалі [a,b] з кроком табуляції h та абсолютною похибкою d. Оцінку похибки здійснювати за значенням модуля чергового члена ряду.
Таблиця 1
№ п/п
Функція
Інтервал, [a, b]
Крок, h
Похибка, d
18
[1, 1.5]
0.05
10-5
ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ:
Список ідентифікаторів констант, змінних, функції, використаних у блок-схемі алгоритму і програмі, та їх пояснення:
min – мінімальне значення х;
max – максимальне значення х;
x – аргумент;
n – проміжна змінна;
h – крок;
d – похибка;
sum – сума;
rez – результат виразу;
printf – функція, що виводить дані на дисплей;
scanf – функція, що зчитує дані з клавіатури;
pow(x,y) – функція, яка обчислює х в степені у;
fabs(x) – функція, що знаходить абсолютне значення х типу double.
ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ:
#include <stdio.h>
#include <math.h>
void main(void)
{
double x,min,max,h,d,sum,rez;
int n;
printf("min="); scanf("%lf",&min);
printf("max="); scanf("%lf",&max);
printf("krok="); scanf("%lf",&h);
printf("pohybka="); scanf("%lf",&d);
x=min;
while (x<=max+0.001)
{
sum=0;
n=1;
do
{
rez=0;
rez=pow(x-1,n)/(n*pow(x,n));
sum=sum+rez;
n++;
}
while (fabs(rez)>=d);
printf("x=%lf suma=%lf\n",x,sum);
x=x+h;
}
}
РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ:
min =1
max=1.5
krok=0.05
pohybka=0.00001
x=1.000000 suma=0.000000
x=1.050000 suma=0.048790
x=1.100000 suma=0.095310
x=1.150000 suma=0.139761
x=1.200000 suma=0.182321
x=1.250000 suma=0.223143
x=1.300000 suma=0.262363
x=1.350000 suma=0.300104
x=1.400000 suma=0.336470
x=1.450000 suma=0.371562
x=1.500000 suma=0.405463