ІКТА / КБ-12 / Технології Програмування частина №1 (ТП ч.1) / Лаби (готові) / Варіант №13 / Лабараторна робота ТП №2 Ковальчин О.Ю
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №2
з курсу: «Технології програмування »
на тему: «Програми з розгалуженими та циклічними алгоритмами»
Варіант № 13
Виконала: ст. гр. КБ-12
Ковальчин О.Ю.
Прийняв: Крет Т.Б.
Львів - 2017
Мета роботи - вивчити оператори мови Сі та основні функції введення-виведення даних, навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.
A)
-
Завдання
Скласти блок-схеми алгоритмів та програми мовою СІ для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Дані для роботи беруться з таблиць 1 і 2 за вказівкою викладача:
а) табулювання функції що вибирається залежно від значення аргумента, на проміжку [a, b] з кроком табуляції h
Початок
a,b,h
X=a,b
X
+=h
X<=0.3
X<0.4
Y=-ln(x2)+ex
Y=ctg(x2+4)
X>=0.4
Y=tg(x2+1)
X,Y
Кінець
Так
Ні Ні
Ні
Так
3. Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
y – задана функція;
x – аргумент функції;
а – початок заданого проміжку;
b – кінець заданого проміжку;
h – крок табулювання функції;
for - цикл з передумовою;
if – умовний оператор;
main() – головна функція;
printf() – функція виводу даних;
scanf() – функція вводу даних;
log(x) – обчислення натурального логарифма;
pow(x,y) – обчислення х в степені у;
fabs – знаходження абсолютного значення типу double;
tg(x) – обчислення тангенса;
ctg(x) – обчислення котангенса.
4. Текст програми
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main(void) {
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.3)
y=(-1)*log(pow(x,2))+exp(x);
else if (x<0.4)
y=(cos(pow(x,2)+4))/(sin(pow(x,2)+4));
else if (x>=0.4)
y=tan(pow(x,2)+1);
printf ("x=%lf\t y=%lf\n", x,y);
}
}
5. Результати роботи програми
a=0.3
b=0.4
h=0.02
Б)
1. Завдання
Скласти блок-схеми алгоритмів та програми мовою СІ для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Дані для роботи беруться з таблиць 1 і 2 за вказівкою викладача:
б) табулювання функції, представленої рядом (див. табл.2), на інтервалі [a, b] з кроком табуляції h та абсолютною похибкою d. Оцінку похибки здійснювати за значенням модуля чергового члена ряду.
2. Блок-схема алгоритму програми
Початок
a,b,h,d
1
1
x=a,b
x+=h
K=1
S=0
S=0
S+=y
Y=((-1)ksin(kx))/k
K++
|Y|>d
X,S,|Y|
Кінець
Ні
Так
3. Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
y – задана функція;
x – аргумент функції;
а – початок заданого проміжку;
b – кінець заданого проміжку;
h – крок табулювання функції;
for - цикл з передумовою;
if – умовний оператор;
main() – головна функція;
printf() – функція виводу даних;
scanf() – функція вводу даних;
pow(x,y) – обчислення х в степені у;
fabs – знаходження абсолютного значення типу double;
sin(x) – обчислення синуса.
4. Текст програми
include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main(void) {
double x,y,a,b,d,h,s,k;
printf("a=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
printf("h=");
scanf("%lf",&h);
printf("d=");
scanf("%lf",&d);
printf("\n");
for (x=a;x<=b;x+=h){
k=1.0;
s=0.0;
y=0.0;
do
{
y=(pow(-1,k)*sin(k*x))/k;
s+=y;
k++;
} while (fabs(y)>d);
printf ("x = %lf\t s= %lf\t d= %lf\t k= %lf\n ", x,s,fabs(y),k );
}
}
5. Результати роботи програми
a=3
b=4
h=0.1
d=0.001