Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программа ГЭ_спец_2012.doc
Скачиваний:
2
Добавлен:
02.05.2019
Размер:
412.67 Кб
Скачать

Раздел 10. Функциональное и логическое программирование

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

  2. Функционалы: функциональное значение функции, способы композиции функций, функции более высокого порядка.

  3. Принципы логического программирования: понятие логической программы, основные конструкции, факты, правила, вопросы, логические переменные, подстановки, абстрактный интерпретатор, значение логической программы, вычислительная модель логических программ, ПРОЛОГ как система, реализующая логический вывод в исчислении предикатов первого порядка.

  4. Согласование целевых утверждений: диаграмма успешного доказательства целевых утверждений, доказательство целевых утверждений при использовании механизма возврата, правила установления соответствия, недетерминизм, понятие "связанной" переменной, операционная модель вычисления ПРОЛОГ-программ, ПРОЛОГ и математическая логика.

  5. Рекурсивное представление данных и программ: построение рекурсивных программ, граничные условия и способы использования рекурсии, структуры и деревья, список как частный вид структуры, формы записи списков, работа со списками, примеры программ с рекурсивными определениями.

  6. Встроенные предикаты: добавление и исключение утверждений, классификация термов, изменение и анализ утверждений, работа со структурами произвольного вида, воздействие на процесс возврата, реализация сложных способов выражения целевых утверждений, объявление операторов, обработка файлов, наблюдение за выполнением программы на ПРОЛОГе.

Раздел 11. Объектно-ориентированное программирование

  1. Основные идеи и сущность ООП: использование объекта в качестве основной компоненты программы и децентрализация управления, реализуемая представлением программы совокупностью взаимодействующих объектов, моделирование поведения объектов реального мира, наглядное представление объектов, создание и использование АТД, производные АТД.

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

  3. Классы: компонентные данные, компонентные функции, способы задания доступа, синтаксическая структура определения класса, объявление, определение и инициализация объектов, объекты объявленные как константы, область видимости класса, указатель this, компонентные функции типа static и const (статические и постоянные компонентные функции), тестирование класса.

  4. Создание и уничтожение объектов: конструкторы – назначение; наличие нескольких конструкторов у одного класса - причины, разделение функций; способы задания конструктора - по умолчанию или явное; вызов конструктора - назначение, способы реализации, задание аргументов; явный и автоматический вызовы - ситуации использования, рекомендации по применению; деструкторы - назначение, основные свойства; способы задания - по умолчанию или явное; вызов деструктора - назначение, способы реализации; явный и автоматический вызовы - ситуации использования, рекомендации по применению; отладка и тестирование системы конструкторов и деструкторов.

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

  6. Параметрический полиморфизм: шаблонные классы и шаблонные функции - назначение, параметризованные типы данных, синтаксис и семантика.

  7. Наследование и иерархия классов: реализация механизма повторного использования кода, полиморфная обработка родственных объектов – чистый полиморфизм, отношения наследования, построение производного класса специализацией базового, построение базового класса обобщением производного, иерархия классов, наследование интерфейса, наследование реализации, виртуальные функции, абстрактные базовые классы, множественное наследование, тестирование системы классов, связанных отношением наследования.

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

  9. Обработка исключений: запуск исключений, перезапуск исключений, выражения исключений, спецификация исключения, пробные блоки try, обработчики исключений catch, иерархии классов для управления исключительными ситуациями, обработка исключений как механизм восстановления после сбоев и как механизм передачи управления, модель завершения, используемая в С++.