Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 130стр.doc
Скачиваний:
93
Добавлен:
15.06.2014
Размер:
2.49 Mб
Скачать

4) Иерархия классов библиотеки mfc.

Структура приложения, построенного на базе библиотеки MFC.

Единственный базовый класс CObject. Остальные – производные от CObject и непроизводные от CObject. назначение CObject:

  1. Хранение информации о классе времени выполнения.

  2. Сериализация и диагностика объекта.

Архитектура приложения:

Окна

Фреймы

Панели элементов управления

Свойства мастера

Блоки диалога

Представления

Элементы управления

Производные CObject:

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

Непроизводные от CObject:

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

CObject не поддерживает множественного наследования :

Каждый производный класс от CObject ассоциируется со структурой CRuntimeClass (исп-ся для получения информации времени выполнения об объекте или его базовом классе).

Функции:

Serialize- Вирт функция, служащая для чтения объекта из архива или записи его в архив;

AssertValid- Вирт ф, проверяющая внутреннее состояние объекта на истинность(константная)

Dump- Вирт ф, сохраняющая содержимое объекта в спец объекте CDumpContex, чаще afxDump(позволяет послать инфу в окно отладки)

IsSerializable- позволяет проверить возможность проведения сериализации

IsKindOf- проверяет соответствует ли объект классу переданному ей в качестве параметра

Сериализация – процесс сохранения текущего состояния объекта на каком либо устройстве постоянного хранения (файл, диск…) с возможностью последующего восстановления этого состояния.

Классы, определяющие архитектуру приложения. Все приложения имеют 2 объекта: одно приложение, производный от СWinApp и главное окно от CWnd. Приложения, использующие архитект. Док/предст содержат доп объекты:

  • объект-приложение, производный от СWinApp;

  • 1 или больше объект-документов, производных от CDocument. Эти объекты служат для внутреннего представления данных, обрабатываемых в представлении (ассоц с файлом данных)

  • … объект-представлений, от CView. Каждое представление является окном, присоед к документу и ассоц с фреймом окна. Представление изображает и манипулирует данными в объект-документе.

Приложения содержат фреймы окон и шаблонов документов (от CDocTemplate)

5 Императивное, функциональное и логическое программирование. Сходство и различие.

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

Одной из близких парадигм программирования является логическое программирование, в котором программа представляет собой множество пар (логическое условие, новые факты). В логическом программировании, также как и в функциональном программировании, программист остается в неведении о методах, применяемых при вычислении, и последовательности исполнения элементарных действий. Большая часть ответственности за эффективность вычислений в логическом и функциональном программировании перекладывается на «плечи» транслятора используемого языка программирования.

Функциональное программирование основано на теориях λ-исчисления и комбинаторной логики.

Наиболее известными языками функционального программирования являются:

LISP, ML, Miranda

́Логическое программи́рование — парадигма программирования, основанная выводе новых фактов из данных фактов согласно заданным логическим правилам. Логическое программирование основано на теории математической логики. Самым известным языком логического программирования является Prolog, являющийся по своей сути универсальной машиной вывода, работающей в предположении замкнутости мира фактов.(декларативный язык)

Логические языки: Planner, Prolog, QA-4, Popler, Conniver, и QLISP, Mercury, Visual Prolog, Oz и Fril

Императивное программирование - технология программирования, характеризующаяся принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируемо.(процедурный, алгоритмический язык)