МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
БІТ
З В І Т
до лабораторної роботи №2
з курсу: «Технології програмування»
на тему: «ПРОГРАМИ З РОЗГАЛУЖЕНИМИ ТА ЦИКЛІЧНИМИ
АЛГОРИТМАМИ»
Варіант № 18
Мета роботи - вивчити інструкції мови C. Навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.
1 Завдання
Вивчити синтаксис, призначення, принцип роботи і використання операторів мови С та основних функцій введення-виведення.
Вивчити правила побудови ідентифікаторів, виразів та присвоєння значень змінним мови С.
Скласти блок-схеми алгоритмів та програми мовою С для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей.
а) табулювання функції (див. табл.1), що вибирається залежно від значення
аргумента, на проміжку [a, b] з кроком табуляції h.
№
Функції
Умови для вибору функцій
Крок, h
Інтервал, [a,b]
18
0.05
[-0.9, -0.4]
б) табулювання функції, представленої рядом , на інтервалі [a, b] з кроком табуляції h та абсолютною похибкою d. Оцінку похибки здійснювати за значенням модуля чергового члена ряду.
№
Функція
Інтервал,[a, b]
Крок, h
Похибка, d
18
[1, 1.5]
0.05
10-5
Завдання3.а
Блок-схема алгоритму програми 1.a
так
ні
так
1.а Список ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
a,b – змінні дійсного типу, які окреслюють межі дії програми;
h – змінна дійсного типу, яка позначає крок табуляції;
x – змінна дійсного типу, яка є аргументом виразу;
y – змінна дійсного типу, якій надається значення результату обчислення виразу;
main ( ) – головна функція;
printf ( ) – функція виводу даних;
pow ( ) – математична функція піднесення до степеня;
cos(х) – математична функція обчислення косинуса від х;
sin(x) – математична функція обчислення синуса від х;
atan(x) ) – математична функція обчислення арккотангенсу від х;
log( ) – математична функція знаходження натурального логарифму;
for() – цикл з передумовою;
Текст програми 1.a
#include<stdio.h>
#include<math.h>
int main ()
{
double a,b,h,x,y;
printf("a=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
printf("h=");
scanf("%lf",&h);
for (x=a; x<=b; x+=h)
{
if(x<=-0.7)
{
y = atan(pow(x,3));
printf("x=%lf \t y=%lf \n",x,y);
}
else if(x>-0.7 && x<=0.6)
{
y=tan(x+log(fabs(x)));
printf("x=%lf \t y=%lf \n",x,y);
}
else
{
y=cos(pow(x,2))/sin(pow(x,2));
printf("x=%lf \t y=%lf \n",x,y);
}
} return 0;
}
5. Результати роботи програми 1.a
a= -0.9
b=-0.4
h=0.05
x=-0.900000 y=-0.629925
x=-0.850000 y=-0.550741
x=-0.800000 y=-0.473201
x=-0.750000 y=-0.399221
x=-0.700000 y=-1.770594
x=-0.650000 y=-1.874747
x=-0.600000 y=-2.018521
x=-0.550000 y=-2.221596
x=-0.500000 y=-2.520864
x=-0.450000 y=-2.994628
1.б Список ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
a,b – змінні дійсного типу, які окреслюють межі дії програми;
n – змінна дійсного типу,яка позначає номер члена ряду;
h – змінна дійсного типу, яка позначає крок табуляції;
d – змінна дійсного типу, яка задає значення похибки;
x – змінна дійсного типу, яка є аргументом виразу;
s – змінна дійсного типу, якій надається значення суми членів ряду;
y – змінна дійсного типу, якій надається значення результату обчислення виразу;
main ( ) – головна функція;
printf ( ) – функція виводу даних;
pow ( ) – математична функція піднесення до степеня;
for() – цикл з передумовою;
do while() – цикл з післяумовою;
Блок-схема алгоритму програми 1.б
А
так ні
Текст програми 1.б
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, h, d, S, x, y;
int n;
printf ("Enter a b h d ");
scanf("%lf %lf %lf %lf", &a, &b, &h, &d);
for(x=a; x<=b; x+=h)
{
n=1; S=0;
do
{
y=pow(x-1, n)/n*pow(x,n);
if(fabs(y)>d)
S+=y;
n++;
}
while(fabs(y)>d);
printf("x=%lf\t S=%lf\t poch=%lf\n",x,S,fabs(y));
}
return 0;
}
Результати роботи програми 2.б
a=1
b=1.5
h=0.05
d=0.00005
x=1.000000 s=0.000000 poch=0.000000
x=1.050000 s=0.053878 poch=0.000048
x=1.100000 s=0.116494 poch=0.000037
x=1.150000 s=0.189310 poch=0.000031
x=1.200000 s=0.274397 poch=0.000032
x=1.250000 s=0.374636 poch=0.000042
x=1.300000 s=0.494260 poch=0.000023
x=1.350000 s=0.639564 poch=0.000024
x=1.400000 s=0.820895 poch=0.000041
x=1.450000 s=0.056882 poch=0.000041