
- •2. Теоретичні відомості
- •2.1. Директиви препроцесора
- •2.1.1. Макровизначення
- •#Define ідентифікатор (список ідентиф) стрічка заміни.
- •2.1.2. Умовна компіляція.
- •2.2. Оператори циклу у мові с.
- •1) З оператором while:
- •2) З оператором do-while
- •3) З оператором for
- •2.3. Управляючі оператори break, continue I goto.
- •2.4. Специфіка використання операторів break і contіnue.
- •2.5. Форматований ввід-вивід
- •Вивід символів
- •Вивід чисел
- •Вивід адрес
- •Специфікатор %n
- •Модифікатори формату
- •Модифікатор мінімальної ширини поля
- •Модифікатор точності
- •Ввід чисел
- •Ввід цілих чисел без знака
- •Ввід окремих символів
- •Ввід рядків
- •2.6. Функції і перемикання вводу-виводу.
- •3. Контрольні запитання
- •4. Лабораторне завдання
- •Мета роботи.
- •6. Список літератури
- •Завдання до лабораторної роботи
Лабораторна робота №3
Тема: ОПЕРАТОРИ ЦИКЛУ, ДИРЕКТИВИ ПРЕПРОЦЕСОРА,
ФОРМАТОВАНИЙ ВВІД-ВИВІД І ФУНКЦІЇ ПЕРЕМИКАННЯ ВВОДУ-ВИВОДУ
У АЛГОРИТМІЧНІЙ МОВІ С
1. МЕТА РОБОТИ
Мета роботи - ознайомлення з директивами препроцесора мови C, з операторами циклу і функціями вводу-виводу.
2. Теоретичні відомості
2.1. Директиви препроцесора
Препроцесор мови C використовується для обробки тексту програми до її компіляції. Препроцесор виконує макропідстановку, умовну компіляцію, під’єднання іменованих файлів. Директиви препроцесора починаються з символу “#”.
З однією директивою препроцесора #include Ви познайомились в лабораторній роботі №1. За допомогою цієї команди в програму на мові C можна включити текст будь-якого файлу.
Директива #include має дві форми:
#include<ім’я файлу> - під’єднання стандартного файлу.
#include<stdio.h>
#include<main.h>
2)#include “ім’я файлу”- під’єднання зовнішнього, Вашого файлу
#include “myfile.h”.
Суфіка h використовуються для файлів, які під’єднуються в заголовку Вашої програми.
2.1.1. Макровизначення
Директива #define ставить у відповідність ідентифікатору текстову стрічку. Синтасис оператора:
#Define ідентифікатор (список ідентиф) стрічка заміни.
Стрічка заміни може містити ідентифікатори, ключові слова, розділювачі. Директива #define може стояти у будь-якому місці програми і виконує такі функції:
1) Визначення констант:
#define NULL 0
#define TRUE 1
#define FALSE 0
Прості макровизначення:
#define begin {
#define end }
тоді замість фігурних дужок будуть використовуватись слова begin i end.
3) Параметризація макровизначень:
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)>(y)?(y):(x))
Директива #undef - відміняє дію #define.
Приведемо приклад використання директив #define і #undef:
#define TWO 2
#define FOUR TWO*TWO
#define PX print(“x дорівнює %d.\n”,x)
main ()
{ int x=TWO; PX;
x=FOUR; PX;
}
В результаті роботи цієї програми одержим повідомлення:
х дорівнює 2
х дорівнє 4
За директивою #define препроцесор замінює кожне макровизначення на стрічку заміни, тобто:
int x=TWO перетвориться в int x=2;
PX перетвориться в print (“х дорівнює %d.\n”,x)
x=FOUR перетвориться в x=TWO*TWO і далі в х=2*2
і так далі.
2.1.2. Умовна компіляція.
Умовна компіляція це вибіркова компіляція лише тих частин програми, які задовільняють певні умови. Для умовної компіляції використовуються такі директиви препроцесора: #if, #else, #endif, #ifdef, #ifndef.
Синтаксис директиви умовної компіляції:
if - заголовок
текстові рядки для випадку “істина”
#else
текстові рядки для випадку “не істина”
#endif
if - заголовок містить умови, на основі яких здійснюється перевірка. Управляючий рядок if - заголовок має 3 форми:
#if вираз, що має постійне значення;
#ifdef ідентифікатор;
#ifndef ідентифікатор.
В першій формі вираз визначається значенням нуль або не нуль (“істина”, “не істина”.
В другій формі значення “істина” відповідає умові, якщо ідентифікатор був визначений в директиві #define.
В третій формі значення “істина” відповідає умові, якщо ідентифікатор або не був визначений в директивою #define, або був відмінений директивою #undef.
Для прикладу умовної компіляції приведемо такий фрагмент програми:
#ifndef MAX_STK
#define MAX_STK 128
#endif
Ідентифікатор MAX_STK має значення по замовчуванню, якщо не буде заданий користувачем.
Директива if подібна до оператора if у мові C:
#if SYS= = “IBM”
#include “ibm.h”
#endif
Якщо вираз SYS= = “IBM” істина, то під’єднується файл “ibm.h”.