Professional Documents
Culture Documents
Звіт Lab02
Звіт Lab02
Інститут ІКНІ
Кафедра ПЗ
ЗВІТ
До лабораторної роботи № 2
На тему: “Програмування циклічних процесів в С”
Лектор:
ст.викл. каф. ПЗ
Муха Т.О.
Виконав:
ст. гр. ПЗ-15
Кочан А.А.
Прийняла:
асист. каф. ПЗ
Заводовська Н.О.
« 27 » вересня 2021 р.
∑= ____ .
Львів – 2021
Тема роботи: Основні поняття мови С, реалізація алгоритмів з розгалуженням.
Мета роботи: навчитися програмувати на мові С найпростіші лінійні алгоритми та алгоритми з
галуженням.
Індивідуальне завдання №1
Використовуючи цикли:
15. Надрукувати усі числа, утворені діленням кожного тризначного натурального числа, в
якого не повторюються цифри, на суму його цифр, помножену на 2.
Індивідуальне завдання №2
З допомогою операторів циклу, протабулювати на відрізку від А до В з області визначення
функцію, задану розкладом у ряд Тейлора. Для порівняння обчислити також у кожній точці
табуляції значення функції задане формулою. Результати подати у виді таблиці з коментарями.
Теоритичні відомості
Оператор while – це оператор циклу з передумовою. Синтаксис:
while(<умова>) <оператор>;
Цикл виконується, поки умова є істинною. Якщо умова початково є хибною (вираз, що
задає
умову має нульове значення), цикл не виконається жодного разу. У ролі <оператор>,
який і є
тілом циклу, може бути будь-який допустимий оператор мови С.
У мові С існують вкладені цикли. Тобто, один цикл (внутрішній) може знаходитися в тілі
іншого циклу (зовнішнього). При цьому глибина вкладення (кількість вкладених циклів)
не
обмежується. Типове застосування вкладених циклів – для обробки матриць
(двовимірних
масивів). Цикл for може знаходитися у тілі циклу while (чи do...while), і навпаки.
1. Алгоритм коду програми №1
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
steps, E
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);
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
1. Використовуючи оператор циклу for написали програму, яка виводить всі тризначні
числа, в яких не повторюються цифри і число ділиться на суму цифр, помножену на 2.
2. Використовуючи оператори циклу for і while протабулювали функцію у ряди Тейлора.