МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №2 (а)
з курсу: «Технології програмування»
на тему: «Програми з розгалуженими та циклічними алгоритмами»
Варіант № 11
Мета роботи – вивчити оператори мови Сі та основні функції введення-виведення даних, навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.
1. Завдання
Скласти блок-схеми алгоритмів та програми мовою СІ для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей.
а) табулювання функції, що вибирається залежно від значення аргументу, на проміжку [a, b] з кроком табуляції h.
Функції
Умови для вибору функції
Крок,
h
Інтервал,
[a, b]
log3(x+sin(x))
lg(ex+4)
ln(lg(x))
x<4
4≤x<5
x≥5
0.2
[3,6]
2. Блок-схема алгоритму програми
3. Список ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
x, a, b, h – змінні типу з плаваючою крапкою подвійної точності (десятковий запис);
y – змінна типу з плаваючою крапкою подвійної точності (десятковий запис), якій надається значення результату обчислення виразу;
main( ) – головна функція;
printf( ) – функція виводу даних;
scanf( ) – функція вводу даних;
log( ) – математична функція обчислення натурального логарифма;
lg( ) – математична функція обчислення десяткового логарифма;
sin() − математична функція обчислення синуса;
if − умовний оператор;
for − оператор покрокового циклу.
4. Текст програми
#include <stdio.h>
#include <math.h>
void main()
{
double x, y, a, b, h;
printf("a=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
printf("h=");
scanf("%lf",&h);
for (x=a; x<=b; x+=h)
{
if (x<4)
{
y=log(x+sin(x))/log(3.0);
printf("x=%lf \t y=%lf \n", x,y);
}
else
if (x>=4 && x<5)
{
y=log10(exp(x)+4);
printf("x=%lf \t y=%lf \n", x,y);
}
else
if (x>=5)
{
y=log(log10(x));
printf("x=%lf \t y=%lf \n", x,y);
}
}
}
5. Результат роботи програми
a=3
b=6
h=0.2
x=3.000000 y=1.041841
x=3.200000 y=1.041988
x=3.400000 y=1.042808
x=3.600000 y=1.046569
x=3.800000 y=1.055366
x=4.000000 y=1.767884
x=4.200000 y=1.849335
x=4.400000 y=1.931716
x=4.600000 y=2.014875
x=4.800000 y=2.098680
x=5.000000 y=-0.358147
x=5.200000 y=-0.334070
x=5.400000 y=-0.311437
x=5.600000 y=-0.290101
x=5.800000 y=-0.269936