Добавил:
Допоможу чим зможу) Відсигнальте якщо знайшли шось корисне) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
135
Добавлен:
15.12.2017
Размер:
106.95 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

ІКТА

кафедра ЗІ

ЗВІТ

до лабораторної роботи №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

Висновок:

В цій лабораторній роботі я вивчив оператори мови Сі та основні функції введення-виведення даних, навчився складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.