МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра „ЗАХИСТ ІНФОРМАЦІЇ”
EMBED Word.Picture.8
ЗВІТ
до лабораторної роботи № 2 б
З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”
на тему:
АЛГОРИТМІЧНА МОВА ПРОГРАМУВАННЯ Сі.
ПРОГРАМИ З РОЗГАЛУЖЕНИМИ ТА ЦИКЛІЧНИМИ
АЛГОРИТМАМИ
Варіант № 16
Виконав:
студент групи БІ – 1
Львів - 2007
Мета роботи – вивчити оператори мови Сі та основні функції введення-виведення даних, навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.
2. ПОВНИЙ ТЕКС ЗАВДАННЯ
Скласти блок-схемy алгоритмy та програмy мовою Ci для табулювання функції, представленої рядом:
у = EMBED Equation.3
на відрізку [-0.5, 0] з кроком 0.05 і похибкою 0.001.
Забезпечити ввід значень інтервалу, кроку та похибки табулювання з клавіатури і вивід результатів на дисплей.
3. ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ
s = - s
вивід s, x, y
x = x + h
EMBED Equation.3
s = s + y; n = n + 1
кінець
очікування натискання
будь-якої клавіші
так
x ≤ b+h/4
так
x = a
ввід a, b, h, d
початок
|y| < d
n = 1; s = 0
ні
ні
4. СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР І ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
a, b, h, x, y, s, d – змінні типу double для зберігання введених даних та результату роботи програми;
clrscr() – функція очистки екрана яка об’явлена в модулі conio.h;
getch() – функція яка чекає натискання будь-якої клавіші;
printf() – функція виведення текстових повідомлень і значень змінних на екран;
scanf() – функція яка зчитує дані з клавіатури та присвоює відповідне значення змінним;
pow(x,y) – функція для піднесення х в степінь у;
fabs(x) – функція яка повертає модуль дійсного числа х;
5. ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
double a,b,h,d,x,y,s;
int n;
clrscr();
printf("Enter interval [a,b] krok h ta poxubky d:\n");
printf("a = "); scanf("%lf",&a);
printf("b = "); scanf("%lf",&b);
printf("h = "); scanf("%lf",&h);
printf("d = "); scanf("%lf",&d);
x=a;
while (x<b+h/4)
{
n=1; s=0;
do
{
y=pow(x,n)/n;
if (fabs(y)<d) break;
s+=y; n++;
} while(1);
s=-s;
printf("\nx = %0.1lf\ts = %0.4lf\ty = %0.5lf",x,s,y);
x+=h;
}
getch();
}
6. РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ
Enter interval [a,b] krok h ta poxubky d:
a = -0.5
b = 0
h = 0.05
d = 0.001
x = -0.5 s = 0.4058 y = 0.00049
x = -0.5 s = 0.3712 y = -0.00053
x = -0.4 s = 0.3370 y = 0.00068
x = -0.4 s = 0.3003 y = 0.00031
x = -0.3 s = 0.2620 y = -0.00049
x = -0.3 s = 0.2240 y = 0.00098
x = -0.2 s = 0.1827 y = 0.00040
x = -0.2 s = 0.1399 y = 0.00013
x = -0.1 s = 0.0950 y = -0.00033
x = -0.1 s = 0.0488 y = -0.00004
x = 0.0 s = 0.0000 y = -0.00000
7. ВИСНОВОК
На даній лабораторній роботі я навчився використовувати найпростіші математичні операції мови Сі, вивчив синтаксис функцій введення-виведення, навчився підлагоджувати найпростіші програми з розгалуженими та циклічними алгоритмами. Як наслідок було створено програму яка табулює функцію задану рядом з деякою точністю.