Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EKZAMEN_PO_INFORMATIKE_TEORIYa_1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
260.1 Кб
Скачать

20)Директивы препроцессора. Директива #include. Директива #define. Директива #undef.

Препроцессором называется первая фаза компилятора, на которой исходный текст программы преобразуется в соответствии со специальными инструкциями, содержащимися в тексте программы.

- инструкции препроцессора называются директивами

- директива препроцессора должна начинаться с символа #

Директива #include:

- директива #include <имя файла> вставляет содержимое указанного файла в ту точку исходного файла, где она записана

- #include “имя файла” – поиск в каталоге, содержащем исходный файл

- заголовочные файлы обычно имеют расширение .h и могут содержать:

а) определения типов, констант, встроенных функций, шаблонов, перечислений

б) объявления функций, данных, имен, шаблонов

в) пространства имен

г) директивы препроцессора

д) комментарии

Директива #define:

- директива #define определяет подстановку в тексте программы

- используется для определения:

а) символических констант

#define имя текст_подстановки

б) макросов

#define имя(параметр) текст_подстановки

в) символов, управляющих условной компиляцией

#define имя

Примеры:

#define VERSION1

#define VASIA “Василий Иванович”

#define MAX(x, y) ((x)>(y)?(x):(y))

#define MUX

Использование макросов:

- вызов макроса

y=MAX(sum1, sum2) будет заменен на

y=((sum1)>(sum2)?(sum1):(sum2))

- отсутствие круглых скобок может привести к неправильному порядку вычисления

неправильный вариант:

#define sqr(x) (x*x)

sqr(y+1) (y+1*y+1)

правильный вариант:

#define sqr(x) ((x)*(x))

sqr(y+1) ((y+1)*(y+1))

Директива #undef:

#undef имя

- удаляет определение символа, введенного директивой #define

21)Директива препроцессора. Директивы условной компиляции.

Директивы условной компиляции #if, #ifdef, #ifndef применяются для того, чтобы исключить компиляцию отдельных частей программы.

формат директивы #if:

#if константное_выражение

[#elif константное_выражение…]

[#elif константное_выражение…]

[#else…]

#endif

пример #if:

#if VERSION==1

#define INCFILE “vers1.h”

#elif VERSION==2

#define INCFILE “vers2.h”

#else

#define INCFILE “versN.h”

#endif

#include INCFILE

В константных выражениях может использоваться проверка, определена ли константа, с помощью defined(имя_константы):

#if defined(MUX)

……

#endif #ifdef и #ifndefпозволяют управлять компиляцией в зависимости от того, определен ли с помощью директивы #define указанный в них символ:

#ifdef символ //расположенный ниже код компилируется, если символ определен

#endif

#ifndef символ //расположенный ниже код не компилируется, если символ не определен

#endif

22)Основные свойства объектно-ориентированного программирования. Понятие класса.

Повышение степени абстракции.

Методы повышения уровня абстракции программ:

1. Использование функций

2. Описание собственных типов данных

3. Объединение в модули описаний типов данных и функций, предназначенных для работы с ними и сокрытием от пользователя такого модуля деталей его реализации.

Объектно-ориентированное программирование (ООП) вводит специальное понятие "класс":

- в классе структуры данных и функции для их обработки могут объединяться

- класс можно использовать только через его интерфейс, а детали реализации для пользователя скрыты.

Идея классов отражает строение объектов реального мира:

- каждый реальный объект или процесс обладают свойствами и поведением.

- в классе свойства реального объекта представляются в виде данных, а поведение описывают с помощью функций.

Основные свойства ООП:

1. Инкарнация (сокрытие информации).

Объединение данных с функциями их обработки в сочетании с сокрытием ненужной для использования этих данных информации.

2. Наследование.

Возможность создания иерархии классов, когда потомки наследуют все свойства своих предков, могут их изменять и добавлять новые.

3. Полиморфизм.

Возможность использовать в различных классах иерархии одно имя для обозначения сходных по смыслу действий и выбирать требуемое действие во время выполнения программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]