Лабораторная работа №3
Цель работы:
-
Изучить методы параметризации;
-
Изучить методы обработки ошибок;
Теоретические сведения:
Используйте материалы лекций за первый семестр изучения языка С++ и любую дополнительную литературу.
Лабораторное задание:
Решите следующие задачи:
Задача №1: Напишите консольный вариант "простого" калькулятора, принимающего операнды и номер оператора (+-*/). Реализуйте через массив указателей на функцию.
Примечание: обработку возможных ошибок производите с помощью исключений.
Задача №2: Напишите функции тасовки и сдачи колоды карт. Имена мастей и номиналов хранятся в массивах строк.
Задача №3: Напишите реализацию функции void printf(char*, ...).
Примечание: разбор производите с помощью макросов va_start(), va_list(),va_arg(), va_end().
Задача №4 Определите класс Vec4, как вектор из 4-х float. Определите для него operator[]. Определите операторы +,-,*,/,=,+=,*=,/= для комбинаций векторов и чисел с плавающей запятой. Преобразуйте класс к шаблону, опишите требования к параметрам шаблона.
Задача №5 Опишите шаблон класса открытой хеш-таблицы, в которой производится размещение элементов произвольного типа. Хеш-функция описанна внутри класса.
Задача №6 Проведите оценку работы тривиальных методов сортировки: постройте диаграмму времени выполнения сортировки от кол-ва элементов (целых чисел) (10, 100, 1000, 10000, 30000).