You are on page 1of 9

Міністерство освіти і науки України

Національний університет «Львівська політехніка»


Кафедра систем
автоматичного проектування

Звіт
Про виконання лабораторної роботи №3
Оператори циклу, директиви препроцесора та форматований ввід-вивід у мові
C
Варіант 13

Виконала студент групи КН-11З


Вакарова В.В.

Прийняв ассистент, к.т.н


Оборська О.В.

Львів 2021
Мета роботи: Ознайомитися з директивами препроцесора мови C, з
операторами циклу і функціями вводу-виводу.
Лабораторне завдання:
1. Ознайомитися з директивами препроцесора мови C, з операторами циклу і
функціями вводу-виводу.
2. Одержати індивідуальне завдання.
3. Побудувати блок-схеми алгоритмів відповідно до завдання.
4. Скласти програми на алгоритмічній мові C згідно завдання.
5. Відлагодити програми, виконати обчислення, проаналізувати отримані
результати..
Індивідуальні завдання :
Завдання 1
Скласти програму для обчислення значень функції для різних значень
аргументу (протабулювати функцію) на вказаному відрізку, використовуючи
три оператори циклу. Обчислити означений інтеграл функції на вказаному
відрізку. Значення аргументу розглянути у вказаній кількості точок, задавши
її як константу препроцесора. Вивести на екран по стовпчиках номер за
порядком, значення аргументу і значення функції, використовуючи
можливості форматованого виводу. Окремо вивести значення обчисленого
інтегралу.

№ Функція Відрізок К-сть. вузлів


1
13 y=
3+2 cos x
[1.0,2.0] 17
Блок-схема:
Код:

Результат:
Завдання 2
Скласти програму для наближеного обчислення значення функції Y(x) в точці
0 < | х | < 1 за допомогою розкладу в ряд Тейлора S(x). Знайти наближене
значення функції з похибкою менше ε < 0,0001. Значення x та ε вводити з
клавіатури. Вивести на екран точне значення Y(x), знайдене наближене
значення S(x) та отриману похибку | S(x) – Y(x) |.

№ Функція Розклад в ряд Тейлора


∞ 2k
13 S ( x )=∑ (−1)k
(2 x)
Y(x)=2(cos 2 x−1 ¿ k=1 (2 k ) !

Код:
Блок-схема:

Результат:
Контрольні запитання
1. Що таке директиви препроцесора, для чого вони існують?
Директивою препроцесора називається рядок у коді, який має такий
вигляд #ключове_слово параметри(є чітко визначений список ключових
слів). Директиви препроцесора починаються з символу “#”.
За допомогою директиви препроцесора #include в програму на мові C
можна включити текст будь-якого файлу. Директива #include має дві
форми:
А) #include – під’єднання стандартного файлу: < file’s name >
Б) #include – під’єднання зовнішнього не стандартного файлу: «file’s name»
Директива #define ставить у відповідність ідентифікатору текстову
стрічку, тобто проводить деяке визначення. Синтаксис оператора: #define
Стрічка заміни може містити ідентифікатори, ключові слова, розділювачі.
Директива #define може стояти у будь-якому місці програми і виконує такі
функції:
А) Визначення констант: #define NULL 0 ; #define TRUE 1; #define FALSE 0
Б) Прості макровизначення: #define begin {; #define end } - тоді замість
фігурних дужок будуть використовуватись слова begin i end
В) Параметризація макровизначень: #define MAX(x,y); #define MIN(x,y)
Директива #undef – відміняє дію #define.

2. Які функції має директива #define?


Директива #define ставить у відповідність ідентифікатору текстову
стрічку, тобто проводить деяке визначення.

3. Які директиви умовної компіляції?


Умовна компіляція це вибіркова компіляція лише тих частин програми, які
задовольняють певні умови. Для умовної компіляції використовуються такі
директиви препроцесора: #if, #else, #endif, #ifdef, #ifndef.
4. Які Ви знаєте оператори циклу у мові C?
У мові С, як і в більшості інших існує три типи операторів циклу:
1. Оператор циклу з передумовою:
while(<вираз>) <оператор>;
2. Оператор циклу з постумовою:
do <oператор>;
while (<вираз>);
3. Оператор з параметрами:
for(<вираз 1>; <вираз 2 >; <вираз 3>) <оператор>;

5. Що Ви знаєте про оператори break і continue?


Оператор break здійснює негайний вихід з операторів циклу або оператора
swich. Управління передається наступному оператору після оператора з якого
здійснювався вихід. Якщо оператор break стоїть всередині вкладеного циклу,
то вихід здійснюється тільки із внутрішньої структури, тобто тільки з того
циклу в якому є оператор break.
Оператор break, який стоїть в тілі циклу, негайно припиняє виконання
циклу й передає керування на рівень вище, а точніше, на наступний оператор,
що стоїть після даного циклу, який містить break. Тому для припинення
виконання багаторівневого циклу по "ініціативі" на найглибшому рівні
доводиться виконувати не один, а декілька операторів break.
Оператор continue – передає управління на кінець тіла циклу, всередині
якого він знаходиться. Тобто пропускає частину ітерації, яку виконує і
переходить до наступної ітерації.
6. Які функції вводу-виводу Ви знаєте?
Функції prіntf() і scanf() виконують форматований ввід-вивід на консоль,
інакше кажучи, вони можуть зчитувати й записувати дані в заданому
форматі, Функція prіntf() виводить дані на консоль. Функція scanf(),
навпаки, зчитує дані з клавіатури. Обидві функції можуть оперувати
будьякими вбудованими типами даних, включаючи символи, рядки та числа.
Також існують функції getchar() читає символ з клавіатури, а функція
putchar() – виводить його на екран.
7. Що таке перемикання вводу-виводу?
Історично операція перемикання вводу-виводу – це засіб операційної
системи UNIX, а не самої мови C. Але вона виявилась настільки корисною,
що при переносі компілятора з мови C на інші системи найчастіше
переноситься і ця операція.
Перемикання вводу здійснюється за допомогою знака “<” :
Наприклад, якщо програма test.exe для вводу використовує функцію
getchar(), то командна стрічка test.exe<data.txt - вказує програмі, що вхідні дані
вводяться не з клавіатури, а з файлу data.txt
Перемикання виводу здійснюється за допомогою знаку “>” - test.exe>rez.txt.
Вивід результатів test.exe буде здійснюватись у файл rez.txt.
Висновок: На цій лабораторній роботі я ознайомилася з директивами
препроцесора мови C, з операторами циклу і функціями вводу-виводу.

You might also like