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

Контрольные вопросы

Компонентные технологии

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

Технологии программирования, использующие компонентный подход, разработаны на базе технологии COM (Component Object Model – компонентная модель объектов) и на базе технологии создания распределенных объектов CORBA (Common Object Request Broker Architecture – общая архитектура с посредником обработки запросов объектов). Обе технологии основаны на общих принципах.

Объекты (компоненты) COM имеют следующие особенности:

- являются объектами (экземплярами) классов COM, содержат поля и наборы виртуальных функций, называемых интерфейсами, могут иметь несколько интерфейсов, обеспечивающих доступ к его полям и функциям;

- представлены в двоичном виде, в виде динамически компонуемых библиотек (dll);

- не зависимы от языков программирования.

Технология COM – это модель взаимодействия типа «клиент – сервер». Клиент – это программа или объект, использующий другой объект. Клиент подсоединяется к объекту через интерфейс. Сервер – это местоположение объектов COM, подключаемых к приложению-клиенту.

Технология COM фирмы Microsoft явилась основой для разработки компонентных технологий программирования.

Технология CORBA использует принципы, аналогичные технологии COM, т.е. это тоже модель взаимодействия типа «клиент – сервер», только организация взаимодействия производится с помощью специального посредника VisiBroker. Технологию можно применять для разработки распределенного программного обеспечения в разнородной вычислительной среде.

1. Перечислите этапы эволюции программного обеспечения

2. Какие языки и методы программирования Вы знаете?

3. Охарактеризуйте технологию процедурного программирования.

4. Охарактеризуйте технологию объектно – ориентированного программирования.

5. Чем достигается высокий уровень создания Windows- приложений на объектно-ориентированном языке Visual C++?

6. Что такое компонентные технологии и CASE-технологии?

Тема 2 Базовый язык С++

Будем использовать термин базовый язык (kernel language) для обозначения подмножества С++, которое эквивалентно ANSI C, с не значительными расширениями. Он будет включать в себя не объектно-ориентированные расширения языка.

Организационно программа состоит из нескольких файлов (модулей) двух типов: файлов заголовков (с расширением.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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: