- •Программирование и основы алгоритмизации Практикум
- •Введение
- •Лабораторная работа № 1 "простейшие вычисления"
- •Краткие теоретические сведения
- •Структура программы.
- •Константы и переменные
- •Операции
- •Функция вывода
- •Функция ввода
- •Постановка задачи
- •Выражения
- •Ввод и вывод
- •Варианты.
- •Методические указания
- •Постановка задачи
- •Варианты Задание 1.
- •Задание 2.
- •Лабораторная работа № 3 "вычисление функций их сумм и произведений при помощи циклических алгоритмов"
- •Краткие теоретические сведения Операторы циклов.
- •Цикл с предусловием
- •Цикл с постусловием
- •Цикл с параметром
- •Операторы передачи управления
- •Постановка задачи
- •Варианты Задание 1.
- •Задание 2.
- •Методические указания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 "работа с одномерными массивами"
- •Краткие теоретические сведения.
- •Обработка одномерных массивов.
- •Формирование псевдодинамических массивов.
- •Использование датчика случайных чисел для формирования массива.
- •Перебор массива по два элемента.
- •Варианты
- •Методические указания
- •Двумерные массивы
- •Одномерные и двумерные массивы
- •«Многомерные массивы»
- •Определение количества элементов массива в программе.
- •Постановка задачи
- •Варианты
- •Дополнительные задания
- •«Динамические массивы»
- •Формирование динамических массивов с использованием операций new и delete.
- •Постановка задачи
- •Порядок выполнения работы
- •Варианты
- •«Работа со строками»
- •Постановка задачи
- •Варианты
- •«Структуры»
- •Инициализация структур
- •Присваивание структур
- •Доступ к элементам структур
- •Указатели на структуры
- •Постановка задачи.
- •Варианты
- •«Полиморфизм в объектно-ориентированном программировании. Перегрузка функций»
- •Постановка задачи
- •Варианты
- •«Функции с переменным числом параметров»
- •Постановка задачи
- •Варианты
- •Доступность компонентов класса.
- •Указатель this
- •Конструктор
- •Конструктор копирования
- •Деструктор
- •Указатели на компоненты-функции
- •Порядок выполнения работы.
- •Методические указания.
- •Варианты
- •Содержание отчета.
- •Контрольные вопросы
- •Лабораторная работа № 12
- •Краткие теоретические сведения.
- •Бинарные и унарные операции
- •Предопределенные значения операций
- •Операции и определяемые пользователем типы
- •Определяемое преобразование типа
- •Конструкторы
- •Перегрузка операций new и delete
- •Перегрузка операции приведения типа
- •Перегрузка операции вызова функции
- •Перегрузка операции индексирования
- •Порядок выполнения работы.
- •Варианты задания.
- •Методические указания. Пример решения задачи
- •Содержание отчета.
- •Контрольные вопросы
- •Лабораторная работа № 13 «наследование и виртуальные функции»
- •Краткие теоретические сведения.
- •Указатель this
- •Наследование
- •Конструкторы и деструкторы производных классов
- •Виртуальные функции
- •Абстрактные классы
- •Порядок выполнения работы.
- •Варианты заданий.
- •Методические указания.
- •Содержание отчета.
- •Контрольные вопросы.
- •Самостоятельная работа № 1 «шаблоны функций и классов»
- •Краткие теоретические сведения.
- •Основные свойства параметров шаблона функции
- •Шаблон класса
- •Основные свойства шаблонов классов
- •Компонентные функции
- •Порядок выполнения работы.
- •Варианты заданий.
- •Содержание отчета.
- •Контрольные вопросы
- •Самостоятельная работа № 2 «потоковые классы»
- •Краткие теоретические сведения.
- •Пример шаблона потокового класса.
- •Базовые потоки ввода-вывода
- •Форматирование
- •Манипуляторы
- •Определение пользовательских манипуляторов
- •Файловый ввод-вывод
- •Порядок выполнения работы.
- •Методические указания
- •Распечатка исходных данных и результатов выполнения программы.
- •Литература
Варианты заданий.
Вариант 1
Шаблон функции MIN() возвращающая минимальное значение для двух чисел, символов и вещественных чисел и протестировать её.
Вариант 2
Шаблон функции MAX() возвращающая максимальное значение для двух чисел, символов и вещественных чисел и протестировать её.
Вариант 3
Шаблон функции INVERSIA(), выводящую элементы в обратном порядке их следования, для строки и целых чисел и протестировать ее;
Вариант 4
Шаблон функции SORT(), реализующую сортировку данных по возрастанию по методу выборки, переопределить ее для длинных целых, и вещественных чисел и протестировать её.
Вариант 5
Шаблон функции SORT(), реализующую сортировку данных по убыванию по методу включения, переопределить ее для длинных целых, и вещественных чисел и протестировать её.
Вариант 6
Шаблон функции SORT(), реализующую сортировку данных по возрастанию по методу обменов, переопределить ее для длинных целых, и вещественных чисел и протестировать её.
Вариант 7
Шаблон функции SORT(), реализующую сортировку данных по убыванию по методу распределения, переопределить ее для длинных целых, вещественных чисел и строк и протестировать её.
Вариант 8
Шаблон функции SORT(), реализующую сортировку данных по возрастанию по методу быстрой сортировки, переопределить ее для длинных целых, и вещественных чисел и протестировать её.
Вариант 9
Шаблон функции SORT(), реализующую сортировку данных по убыванию по методу слияния, переопределить ее для длинных целых, и вещественных чисел и протестировать её.
Вариант 10
Шаблон функции FIND(), реализующую поиск данных по методу бинарного поиска, переопределить ее для длинных целых, и вещественных чисел и протестировать её.
Содержание отчета.
Титульный лист: название дисциплины, номер и наименование работы, фамилия, имя, отчество студента, дата выполнения.
Постановка задачи.
Следует дать конкретную постановку, т.е указать шаблон какого класса должен быть создан, какие должны быть в нем конструкторы, компоненты-функции, перегруженные операции и т.д.
То же самое следует указать для пользовательского класса.
Определение шаблона класса с комментариями.
Определение пользовательского класса с комментариями.
Реализация конструкторов, деструктора, операции присваивания и операций, которые заданы в варианте задания.
То же самое для пользовательского класса.
Результаты тестирования. Следует указать для каких типов и какие операции проверены и какие выявлены ошибки (или не выявлены)
Контрольные вопросы
В чем смысл использования шаблонов?
Каковы синтаксис/семантика шаблонов функций?
Каковы синтаксис/семантика шаблонов классов?
Перечислите основные свойства параметров шаблона функции.
Как записывать параметр шаблона?
Можно ли перегружать параметризованные функции?
Перечислите основные свойства параметризованных классов.
Может ли быть пустым список параметров шаблона? Объясните.
Как вызвать параметризованную функцию без параметров?
Все ли компонентные функции параметризованного класса являются параметризованными?
Являются ли дружественные функции, описанные в параметризованном классе, параметризованными?
Могут ли шаблоны классов содержать виртуальные компонентные функции?
Как определяются компонентные функции параметризованных классов вне определения шаблона класса?
