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

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

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

ІКТА

кафедра ЗІ

ЗВІТ

до лабораторної роботи №2

з курсу: «Технології програмування »

на тему: «Програми з розгалуженими та циклічними алгоритмами»

Варіант № 13

Виконала: ст. гр. КБ-12

Ковальчин О.Ю.

Прийняв: Крет Т.Б.

Львів - 2017

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

A)

  1. Завдання

Скласти блок-схеми алгоритмів та програми мовою СІ для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Дані для роботи беруться з таблиць 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

Кінець

2. Блок-схема алгоритму програми

Так

Ні Ні

Ні

Так

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