- •3. Ұсынылатын әдебиеттер тізімі / список рекомендуемой литературы
- •1.Обзор стилей программирования
- •1.1. Процедурное программирование
- •1.2. Структурное программирование
- •1.3. Функциональное программирование
- •1.4. Логическое программирование
- •1.5. Объектно-ориентированное программирование
- •2. Основные принципы объектно-ориентированного программирования
- •3.1. Объявление классов и объектов
- •3.2. Конструкторы и деструкторы
- •3.3. Область видимости компонент класса
- •3.4. Определение компонентных функций класса
- •3.5. Статические компоненты классов
- •3.6. Дружественные функции
- •3.7. Перегрузка операций
- •4. Наследование классов
- •4.1. Повторное использование классов: наследование и агрегирование
- •4.3. Множественное наследование
- •4.4. Виртуальные классы
- •4.5. Виртуальные функции. Полиморфизм
- •4.6. Абстрактные классы
- •Методические указания по выполнению лабораторных работ
- •1. Краткие теоретические сведения
- •1.1. Структура программы
- •1.2. Константы и переменные
- •1.3. Операции
- •1.4. Выражения
- •1.5. Ввод и вывод
- •1.5.1. Ввод и вывод в стандартном Си
- •2. Постановка задачи
- •3. Варианты
- •4. Методические указания
- •5. Содержание отчета
- •Краткие теоретические сведения
- •Составные операторы
- •Операторы выбора
- •Операторы циклов
- •Операторы перехода
- •2. Постановка задачи
- •3. Варианты
- •3. Содержание отчета
- •4. Методические указания
- •1. Краткие теоретические сведения
- •2. Постановка задачи
- •3. Варианты
- •4. Методические указания
- •5. Содержание отчета
- •Краткие теоретические сведения
- •1.1. Определение массива
- •1.2. Инициализация массива
- •1.3. Указатели
- •1.4. Указатели и массивы
- •2. Варианты заданий
- •3. Методические указания
- •4. Содержание отчета
- •Краткие теоретические сведения
- •1.1. Функции
- •1.2. Массивы и строки как параметры функций
- •2. Постановка задачи
- •3. Варианты
- •4. Содержание отчета
- •Задания на лабораторные работы Классы. Протокол класса. Конструкторы и деструкторы
- •Краткие теоретические сведения Виртуальные функции и полиморфизм План
- •Задания для самостоятельной работы
- •Лабораторная работа №8 "Производные классы: множественное наследование"
- •Задания на лабораторные работы по Объектно-ориентированному программированию, множественное наследование
- •Экзаменационные вопросы
Экзаменационные вопросы
Общая характеристика языка С и его характерные отличия от языка PASCAL.
Структура программы на языке С. Подключение библиотек, Организация ввода-вывода с помощью библиотеки iostream.
Модуль в языке С. Организация многофайловой программы, заголовочные файлы, директива #include, прототипы функций.
Оператор присваивания и оператор ветвления. Особенности оператора присваивания и вычисления условий в языке С. Примеры операторов присваивания и ветвления.
Объявление массивов с языке С. Организация циклов. Цикл с предусловием и постусловием. Цикл for и его связь с циклом while. Примеры.
Оператор переключатель. Инструкция break. Примеры применения оператора переключателя.
Числовые типы данных языка С. Целочисленные (десятичные, восьми и шестнадцатиричные) и действительные константы. Именованные константы и способы их задания в языке С.
Перечисленный тип в языке С. Особенности, возможности и примеры его использования.
Понятие блока в языке С. Объявления и инициализация переменных и массивов в С.
Обзор операций языка С. Приоритеты операций. Операции низкого и высокого уровней. Примеры операций.
Выражения в языке С. Правила вычисления выражений. Приоритеты операций и правило ассоциативности. Приведение типов в С и С++. Операция последования (скобки).
Символьный тип в языке С. Символьные константы. Представление строк в С. Библиотека string. Примеры функций библиотеки string.
Указатели и ссылки в языке С. Константные указатели и ссылки. Операции с указателями и ссылками.
Массив как указатель в языке С. Особенности индексации массива при записи кода. Массив как параметр функции. Многомерные массивы.
Функции в языке С. Объявление, описание и вызов. Особенности передачи параметров (по значению, ссылке, указателем, константной ссылке). Перегрузка функций и параметры по умолчанию.
Функции в языке С. Встраиваемые функции и макросы. Передача функции как параметр. Функция как указатель на функцию. Массив указателей на функции.
Структуры в языке С. Объявление типа и переменных. Использование элементов структур. Вложенные структуры и массивы. Примеры построения вложенных структур и массивов.
Объединения в языке С. Объявление типа и переменных. Использование элементов объединений. Битовые поля.
Классы и типы памяти. Время жизни и область видимости объектов. Локальные и глобальные объекты. Механизм управления стеком.
Классы и типы памяти. Время жизни и область видимости объектов. Локальные и глобальные объекты. Механизм управления кучей.
Форматный вывод и ввод. Функции printf и scanf библиотеки stdio.
Форматные преобразования в памяти. Функции sprintf и sscanf библиотеки stdio.
Работа с текстовыми файлами. Функции fopen, fclose, fprintf, fscanf библиотеки stdio.
Работа с записеориентированными файлами. Функции fopen, fclose, fprintf, fscanf библиотеки stdio.
Работа с бинарными файлами. Функции fopen, fclose, fwrite, fread, fseek библиотеки stdio.
Технологические основы языков программирования высокого уровня. Структурное и модульное программирование.
Технологические основы языков программирования высокого уровня. Простые и сложные задачи. Причины возникновения сложности. Решение проблемы сложности задач.
ООП и объектная модель. Основные принципы объектной модели.
Анализ, проектирование и программирование. Объектный подход, алгоритмическая и объектно-ориентированная декомпозиция. Достоинства и недостатки ООП.
Абстрактные типы данных. Понятие класса. Инкапсуляция. Объявление класса. Поля и методы. Секции public и private. Скрытие данных.
Объявление класса. Поля и методы. Секции public и private. Скрытие данных. Пример разработки класса “Комплексное число”. Реализация методов класса. Встроенные методы.
Константные поля. Константные методы. Использование константных ссылок в списке параметров методов класса. Пример разработки класса “Комплексное число”.
Способы создания объектов. Доступ к данным и методам объекта. Указатель this.
Статическое и динамическое создание объектов внутри методов. Ссылки в заголовках методов. Примеры.
Создание объектов. Конструкторы. Виды конструкторов.
Конструктор копирования. Пример разработки конструктора копирования.
Уничтожение объектов. Деструкторы.
Статические поля и методы класса. Дружественные функции и классы.
Пример разработки класса “Вектор”. Реализация операций без использования перегрузки.
Перегрузка операций. Особенности перегрузки для унарных, бинарных операций. Перегрузка операции [].
Перегрузка операций. Перегрузка операции присваивания. Операция присваивания и конструктор копирования.
Суть проблемы моделирования. Инкапсуляция, модульность и иерархия как средства решения проблемы. Виды иерархий. Наследование и агрегация. Реализация агрегации в C++. Пример.
Наследование в C++. Простое (одиночное) наследование. Public, private и protected-наследование. Некоторые правила наследования.
Наследование в C++. Простое (одиночное) наследование. Пример последовательного проектирования иерархии классов геометрических фигур. Перекрытие (замещение) методов.
Раннее и позднее связывание. Механизм виртуальных методов.
Механизм виртуальных методов. Применение виртуальных методов для разработки классов “Точка” и “Круг”.
Чисто виртуальные методы и абстрактные классы. Абстрактный класс в примере “Геометрические фигуры”.
Множественное наследование. Виртуальное наследование.
Перегрузка функций в C++. Сигнатура. Алгоритм проверки соответствия сигнатуре.
Шаблоны функций. Шаблоны классов. Инстанцирование и специализация.
