You are on page 1of 7

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

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

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

ЗВІТ

До лабораторної роботи № 2
На тему: “Програмування циклічних процесів в С”

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

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

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

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

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

∑= ____ .

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

Індивідуальне завдання №1
Використовуючи цикли:
15. Надрукувати усі числа, утворені діленням кожного тризначного натурального числа, в
якого не повторюються цифри, на суму його цифр, помножену на 2.

Індивідуальне завдання №2
З допомогою операторів циклу, протабулювати на відрізку від А до В з області визначення
функцію, задану розкладом у ряд Тейлора. Для порівняння обчислити також у кожній точці
табуляції значення функції задане формулою. Результати подати у виді таблиці з коментарями.

Теоритичні відомості
Оператор while – це оператор циклу з передумовою. Синтаксис:
while(<умова>) <оператор>;

Цикл виконується, поки умова є істинною. Якщо умова початково є хибною (вираз, що
задає
умову має нульове значення), цикл не виконається жодного разу. У ролі <оператор>,
який і є
тілом циклу, може бути будь-який допустимий оператор мови С.

Цикл for управляється змінною, що називається лічильником циклу. Величину зміни


лічильника називають кроком. Синтаксис циклу є наступний:
for(<початкова_інструкція>; <умова>; <вираз>)
<тіло циклу>;
Спочатку виконується початкова інструкція та перевіряється умова. Якщо вона істинна,
то
виконуються інструкції з тіла циклу, а тоді обчислюється вираз та управління
передається в
початок циклу з тією різницею, що початкова інструкція вже не виконується.

У мові С існують вкладені цикли. Тобто, один цикл (внутрішній) може знаходитися в тілі
іншого циклу (зовнішнього). При цьому глибина вкладення (кількість вкладених циклів)
не
обмежується. Типове застосування вкладених циклів – для обробки матриць
(двовимірних
масивів). Цикл for може знаходитися у тілі циклу while (чи do...while), і навпаки.
1. Алгоритм коду програми №1

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


Код програми №1
#include <stdio.h>

int main()
{
int a, b, c, i, newrow = 0;
float printnumber;
for (i = 100; i < 1000; i++)
{
a = i % 10;
b = i / 10 % 10;
c = i / 100;
if (a != b && b != c && a != c)
{
if (newrow % 10 == 0)
{
printf("\n");
}
newrow++;
float a1 = a, b1 = b, c1 = c, i1 = i;
printnumber = i1 / (2 * (a1 + b1 + c1));
printf("%10.5lf ", printnumber);
}
}
return 0;
}

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

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

Тепер перевіримо перших три числа:

Як бачимо числа рахує вірно.


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

steps, E

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


Код програми №2
#include <stdio.h>
#include <math.h>

int main(void) {
double A, B; //межі
printf("A and B:");
scanf_s("%lf %lf", &A, &B);
int steps;
printf("Steps:");
scanf_s("%d", &steps);
double E;
printf("Epsilon:");
scanf_s("%lf", &E);

if (fabs(A)>1 || fabs(B)>1) { //перевірка меж


printf("Incorrect input");
}
printf( " X \t\tTaylor \t\t\tReal \t\tDifference\n");
for (double x = A; x < B; x += (B - A) / steps) {
double right_tay = 1;
double sum_member = -1.0 / 2.0 * x;
double left_real = pow(1 + x, -1.0 / 2.0);

int i = 1;
while (fabs(right_tay - left_real) > E) {
right_tay += sum_member;
sum_member *= (2.0 * i + 1) / (2.0 * i + 2) * (-x);
i++;
}

printf(" % lf \t% .13lf \t% .13lf \t% .13lf\n", x, right_tay, left_real, fabs(right_tay
- left_real));

}
return 0;
}
Протокол роботи №2

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


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

1. Використовуючи оператор циклу for написали програму, яка виводить всі тризначні
числа, в яких не повторюються цифри і число ділиться на суму цифр, помножену на 2.
2. Використовуючи оператори циклу for і while протабулювали функцію у ряди Тейлора.

You might also like