Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_ТехнолПрогр2010_090103.doc
Скачиваний:
25
Добавлен:
27.04.2019
Размер:
1.35 Mб
Скачать

2.1 Структура программы

Организационно программа состоит из нескольких файлов (модулей) двух типов: файлов заголовков (с расширением .h) и файлов кодов (с расширением .cpp). Файлы заголовков содержат общие составные части программы, например, директивы препроцессора для подключения библиотек языка, объявления типов, определяемых пользователем, определения именных констант, прототипы функций (заголовки функций без тела). Файлы кодов содержат определения функций (тексты функций), директивы препроцессора для подключения файлов заголовков.

Составные части программы строятся с использованием базовых элементов языка – лексем, к которым относятся ключевые слова, идентификаторы, константы, символы операций и пунктуаций. Ключевые слова – это зарезервированные для специальных целей слова, которые нельзя использовать в качестве идентификаторов.

Идентификатор – последовательность букв, цифр и знака подчеркивания, начинающаяся с буквы или знака подчеркивания.

Комментарии – это тексты, предназначенные для аннотирования программы. Существуют два способа обозначения комментария:

способ С++: начинается с символов // и до конца строки,

способ С: начинается с символов /* и до символов */.

Директива препроцессора – это строка, начинающаяся с символа # и заканчивающаяся символом конца строки.

Директива #include включает файл в текущий файл. Пример:

#include <conio.h> //подключает библиотеку видеофункций

#include “lab1_f.hpp //подключает файл заголовков

Директива #define заменяет идентификатор на текст.

Пример:

#define max_kart 100 //заменяет max_kart на 100

Директива #undef разрывает связь идентификаторов (в директиве #define). Пример:

#undef max_kart //разрывает связь между max_kart и 100.

Директивы условной компиляции вызывают компиляцию частей программы в зависимости от условий. К ним относятся: #if, #ifdef, #ifndef, #else, #elif, #endif. Синтаксис:

#if (vyr1) //Если vyr1 истинно, то компилируется

{op1;...} //{op1;...} и управление на #endif

[#elif (vyr2) //Если vyr1 ложно, то управление на #elif

{op2;...}] //и если vyr2 истинно, то компилируется

... //{op2;...} и управление на #endif и т.д.

[#else {opN;...}] //Если все выражения ложны, то компилируется

#endif //{opN;...} []-необязат. конструкция

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

В С++ имеются базовые типы данных, например:

целые - int, unsignet int, long, unsignet long;

вещественные – float, double, long double;

символьные – char.

Примеры переменных базовых типов:

int kol; //объявление переменной типа int, резерв. 2 байта

float y=0; //объявл. и инициал., резерв. 4 байта

Указатель – это переменная, содержащая адрес другой переменной. Пример объявления и инициализации указателя:

int tabn; int* p; //объявл. переменной и указателя на тип int

p=&tabn; //иниц. указателя адресом tabn, &-опер. взятия адреса

Ссылка – это переменная, которая является альтернативным именем другой переменной. Пример объявления и инициализации ссылки:

int tabn; int& r; //объявление переменной и ссылки r

r=tabn; //инициализация ссылки адресом переменной tabn

Массив – это совокупность данных одинакового типа.

Пример:

int det[10]; //объявление массива из 10 элементов типа int

float cena [10][20]; //объявление двумерного массива

int kol={1,2,3,4,5}; //объявление и инициализация массива

Именные константы – это переменные, не изменяющие своего значения. Пример объявления:

const int max_kart=100;

Структура – это совокупность данных разного типа.

Пример:

struct tip_karta //объявление типа - структура tip_karta

{ //но память не резервируется

char tabn[10]; //3 поля структуры

char fio[30];

fload oklad;

);

tip_karta zap; //объявл. переменной типа структура tip_karta