You are on page 1of 6

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

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

Інститут ІКНІ
Кафедра ПЗ

ЗВІТ

До лабораторної роботи № 1
На тему: “Основні поняття мови С реалізація алгоритмів з розгалуженням”

З дисципліни: “Основи програмування”

Лектор:
ст.викл. каф. ПЗ
Муха Т.О.

Виконав:
ст. гр. ПЗ-15
Кочан А.А.

Прийняла:
асист. каф. ПЗ
Заводовська Н.О.

« 13 » вересня 2021 р.

∑= ____ .

Львів – 2021
Тема роботи: Основні поняття мови С, реалізація алгоритмів з розгалуженням.
Мета роботи: навчитися програмувати на мові С найпростіші лінійні алгоритми та алгоритми з
галуженням.

Індивідуальне завдання №1

1. Написати програму для обчислення заданого арифметичного виразу:

14. , де x=0.100, y= -0.875, z=0.765;

Вважати, що X, Y –
змінні, значення яких слід вводити з клавіатури, всі інші величини виразу описати як
константи.
2. Запустити її на виконання, отримати і проаналізувати результат.
3. Підготувати та подати звіт про виконання завдання.

Індивідуальне завдання №2

1. Не використовуючи оператор циклу скласти програму, яка обчислює і виводить


десяткове значення кожного з чисел, які є записом числа у системі
числення з основою 7. З клавіатури послідовно ввести 3 шестизначних числа,
контролюючи чи число є записаним в системі числення з основою 7.
2. Запустити її на виконання, отримати і проаналізувати результат.
3. Підготувати та подати звіт про виконання завдання.

Теоритичні відомості
Під час виконання лабораторної роботи було використано дві бібліотеки, для виконання
першого завдання потрібна була бібліотека математичних функцій math.h, для другої
програми застосовувалась бібліотека для введення і виведення даних stdio.h. Також в
програмах використано директиву для вимкнення попередження C4996 (про небезпечне
зчитування даних).

В першій програмі були використані оператори зчитування символів введених з


клавіатури (scanf), а також математичні функції з бібліотеки (pow, tan, fabs, sqrt). Для
виведення кінцевого результату використаний оператор printf.

В другій програмі було використано оператор галуження if для контролю введених


чисел. Потрібно контролювати щоб число було записане в семирічній системі числення,
тобто щоб воно мало не більше ніж 6 цифр, і щоб кожна цифра не була вищою шістки.
Також використано логічне або (||) під час перевірки числа. Замість математичної
функціїї степеня використовувався алгебраїчний відповідник (число множилось саме на
себе). Для більш приємного вигляду і читабельності використано керуючу послідовність
\n – новий рядок. Результати розрахунку виводились за допомогою оператора printf.
1. Алгоритм коду програми №1

Рис 1. Блок-схема до завдання 1


Код програми №1
#include <stdio.h>
#include <math.h>
#pragma warning(disable:4996)

void main() {

float x, y, z, b;
printf("x=");
scanf("%f", &x);
printf("y=");
scanf("%f", &y);
printf("z=");
scanf("%f", &z);

b = pow(1 + pow(tan(z / 2), 2), sqrt(fabs(y) + x));

printf("Here is result: b=%f",b);

return 0;
}

Протокол роботи №1

Рис 2. Виведення результату


Перевіримо результат на сайті WolframAlpha:

Рис 3. Перевірка

2. Алгоритм коду програми №2

Рисунок 4. Блок-схема до завдання №2


Код програми №2
#include <stdio.h>
#pragma warning(disable : 4996)

void main(void)
{
int x1, x2, x3;
int a1, a2, a3;

printf("Enter your number 1:");


scanf("%d", &x1);
printf("Enter your number 2:");
scanf("%d", &x2);
printf("Enter your number 3:");
scanf("%d", &x3);

if (x1 % 10 >= 7 || x1 / 10 % 10 >= 7 || x1 / 100 % 10 >= 7 || x1 / 1000 % 10 >= 7 || x1 /


10000 % 10 >= 7 || x1 / 100000 % 10 >= 7) //перевірка чи перше число в сімковій с.ч.

{
printf("\nThe first number isn't 7-fold system");
a1 = 0;
}

else if (x1 > 1000000)


{
printf("\nThe first number isn't 7-fold system");
a1 = 0;

}
else (a1 = x1 % 10 + x1 / 10 % 10 * 7 + x1 / 100 % 10 * 7 * 7 + x1 / 1000 % 10 * 7 * 7 *
7 + x1 / 10000 % 10 * 7 * 7 * 7 * 7 + x1 / 100000 % 10 * 7 * 7 * 7 * 7 * 7); //переведення в
десяткову с.ч.

if (x2 % 10 >= 7 || x2 / 10 % 10 >= 7 || x2 / 100 % 10 >= 7 || x2 / 1000 % 10 >= 7 || x2


/ 10000 % 10 >= 7 || x2 / 100000 % 10 >= 7) //перевірка чи друге число в сімковій с.ч.

{
printf("\nThe second number isn't 7-fold system");
a2 = 0;
}
else if (x2 > 1000000)
{
printf("\nThe second number isn't 7-fold system");
a2 = 0;
}
else (a2 = x2 % 10 + x2 / 10 % 10 * 7 + x2 / 100 % 10 * 7 * 7 + x2 / 1000 % 10 * 7 * 7
* 7 + x2 / 10000 % 10 * 7 * 7 * 7 * 7 + x2 / 100000 % 10 * 7 * 7 * 7 * 7 * 7); //переведення в
десяткову с.ч.

if (x3 % 10 >= 7 || x3 / 10 % 10 >= 7 || x3 / 100 % 10 >= 7 || x3 / 1000 % 10 >= 7 || x3


/ 10000 % 10 >= 7 || x3 / 100000 % 10 >= 7) //перевірка чи третє число в сімковій с.ч.
{

printf("\nThe third number isn't 7-fold system");


a3 = 0;

}
else if (x3 > 1000000)
{
printf("\nThe third number isn't 7-fold system");
a3 = 0;
}
else (a3 = x3 % 10 + x3 / 10 % 10 * 7 + x3 / 100 % 10 * 7 * 7 + x3 / 1000 % 10 * 7 * 7
* 7 + x3 / 10000 % 10 * 7 * 7 * 7 * 7 + x3 / 100000 % 10 * 7 * 7 * 7 * 7 * 7); //переведення в
десяткову с.ч.
printf("\nNumbers in 7-fold system: %d %d %d\n", x1, x2, x3); //вивід чисел введених в
сімковій с.ч.

printf("\nNumbers in 10-fold system: %d %d %d\n", a1, a2, a3); //вивід чисел, отриманих
внаслідок обчислень

return 0;
}

Протокол роботи №2

Рисунок 5. Результат роботи програми

На рисунку 5 зображено три введених числа.


Перше число є правильним в семирічній системі, тому перетворення відбулось.
Друге число не є записаним в виді семирічного так як містить цифру 7(програма
видає помилку “The second number isn`t 7 fold system”, тому переведення здійснити
неможливо, результат в десятковій 0.
Третє число теж не є записаним в виді семирічного так як містить більше ніж 6
цифр(програма знову видає помилку), результат такого переведення 0.

Рисунок 6. Перевірка результату

Висновки
На лабораторній роботі було розроблено два алгоритми і дві програми:

1. Програма, що обчислює вираз №14, при цьому ми використали бібліотеки <stdio.h> і


<math.h>. Бібліотека math.h містить математичні функції, в моєму випадку я використав
функції pow(степінь), tan(тангенс), sqrt(корінь) і fabs(модуль).
2. Калькулятор між семирічною і десятковою системами числень, з контролем введених
чисел. Для цієї програми був використаний оператор галуження if і else.

You might also like