ІКТА / КБ-12 / Технології Програмування частина №1 (ТП ч.1) / Лаби (готові) / Варіант №5 / Лабараторна робота № 2(a)(b) Войтович О.О
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №2(a)(b)
з курсу: «Технології програмування »
на тему: «Програми з розгалуженими та циклічними алгоритмами»
Варіант № 5
Виконав: ст. гр. КБ-12
Войтович О.О.
Прийняв: асистент кафедри
захисту інформації
Крет Т.Б.
Львів - 2017
Мета роботи - вивчити оператори мови Сі та основні функції введення-виведення даних, навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.
1. Завдання
Скласти блок-схеми алгоритмів та програми мовою СІ для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Дані для роботи беруться з таблиць 1 і 2 за вказівкою викладача:
а) Табулювання функції що вибирається залежно від значення аргумента, на проміжку [a, b] з кроком табуляції h
2 а). Блок-схема алгоритму програми
3 а). Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
y – задана функція;
x – аргумент функції;
а – початок заданого проміжку;
b – кінець заданого проміжку;
h – крок табулювання функції;
for - цикл з передумовою;
main() – головна функція;
printf() – функція виводу даних;
scanf() – функція вводу даних;
log10(x) – обчислення натурального логарифма з основою 10;
pow(x,y) – обчислення х в степені у;
соs (x) – обчислення косинуса;
sin(x) – обчислення синуса.
4 а). Текст програми
#include <stdio.h> // бібліотека стандартного зчитування\виведення
#include <math.h> // бібліотека матетатичних функцій
void main () // головна програма
{
double a,b,h,x,y; // описуємо змінні
printf ("a= "); // виводимо "a= "
scanf ("%lf", &a); // зчитуємо а
printf ("b= "); // виводимо "b= "
scanf ("%lf", &b); // зчитуємо b
printf ("h= "); // виводимо "h= "
scanf ("%lf", &h); // зчитуємо h
for (x=a; x<b+h; x+=h) // запускаємо цикл від a до b з кроком h
{ x<0.2 ? (y=(log10(3*x+1)/log10(5))) : ((x>=0.2 && x<0.4) ? (y=pow(x,(cos(x)))):(y=((1/sin(x))*log10(x))));
// виконуємо перевірку на умову і виконуємо певну функцію
printf ("x=%lf\t y=%lf\n", x,y); // виводимо результати
}
}
5 а). Результати роботи програми
a = 0.1; b = 0.7; h = 0.05;
б) табулювання функції, представленої рядом, на інтервалі [a, b] з кроком табуляції h та абсолютною похибкою d. Оцінку похибки здійснювати за значенням модуля чергового члена ряду.
2 б). Блок-схема алгоритму програми
3 б). Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
y – задана функція;
x – аргумент функції;
а – початок заданого проміжку;
b – кінець заданого проміжку;
h – крок табулювання функції;
d - абсолютнa похибкa;
s, k – змінні;
for - цикл з передумовою;
do while – цикл з післяумовою;
main() – головна функція;
printf() – функція виводу даних;
scanf() – функція вводу даних;
pow(x,y) – обчислення х в степені у;
fabs (x) – обчислення модуля числа з плаваючою комою;
sin(x) – обчислення синуса.
4 б). Текст програми
#include <stdio.h> // бібліотека стандартного зчитування\виведення
#include <math.h> // бібліотека матетатичних функцій
void main () // головна програма
{
double a,b,h,x,y,d,s; int k; // описуємо змінні
printf("Vvedit zn a= "); scanf("%lf",&a); // виводимо " Vvedit zn a= " та зчитуємо «а»
printf("Vvedit zn b= "); scanf("%lf",&b); // виводимо " Vvedit zn b= " та зчитуємо «b»
printf("Vvedit zn h= "); scanf("%lf",&h); // виводимо " Vvedit zn h= " та зчитуємо «h»
printf("Vvedit zn d= "); scanf("%lf",&d); // виводимо " Vvedit zn d= " та зчитуємо «d»
for(x=a;x<b+0.001;x=x+h) // запускаємо цикл від a до b з кроком h
{ k=0; s=0; // присвоюємо значення змінним
do // запускаємо цикл з післяумовою
{
y=(1/pow(2,k))*sin(x/pow(2,k)); // обраховуємо функцію
s=s+y; k=k+1; // змінюємо значення змінних
}
while(fabs(y)>d); // перевіряємо умову
printf("\n x=%lf s=%lf",x,s); // виводимо результат
}
}
5 б). Результати роботи програми
a = 1.1; b = 2; h = 0.1; d = 0.001
Висновок:
В цій лабораторній роботі я вивчив оператори мови Сі та основні функції введення-виведення даних, навчився складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.