Цель работы: Ознакомиться с некоторыми расширениями языка С, позволяющими перейти к объектно-ориентированному программированию С++.
1? Порядок выполнения работы
1. Ознакомьтесь с теоретическими сведениями?
2. Разберите работу программ 1,2,3. В программе 3 обратите внимание на время выполнения первого и второго цикла.
3. Разберите работу программы 4.
Что изменится, если изменить на swap(void *item1,void *item2)?
4. Разберите работу программы 5.
Что если из последней строки программы убрать перацию приве-дения типов (double)?
Что если добавить определение функции?
float noName(int first) {
return(float) first*first;
}
5. Разберите работу программы 6.
Что если изменить имя второй функции на noName1, а вторую строку функции main на noName1(100.0)?
Что будет, если параметру х в noName1 присвоить значение по умолчанию равное 15, а остальным не присваивать значений по умолчанию?
6? Выполните индивидуальное задание?
2? Индивидуальные задания
В программах использовать стандартные потоки ввода-вывода.
1. Составить программу, в которой задается размер числового массива, вводятся данные в массив и рассчитывается их среднее арифметическое и дисперсия.
2. Написать функцию, которая получает по ссылке координаты левого верхнего и правого нижнего углов и символ, которым рисуется рамка по координатам углов.
3. Написать функцию, которая по ссылке получает символьную строку из программы и подсчитывает частоту появления букв латинского алфавита в этой строке символов. Oкончание строки — Enter.
Другие символы игнорировать. Количество букв вернуть в вызывающую программу и вывести на экран.
4. Составить свою функцию сравнения двух строк символов, получающую в качестве параметров ссылки на строки и возвращающую 1,если строки одинаковы, или 0, если строки различны.
5. Составить свою функцию выделения подстроки, по-лучающую ссылку на строку и номера символов начала и конца подстроки.
6. Составить свою функцию для копирования строки. Передается ссылка на строку-источник и ссылка на строку-результат.
7. Мистер Браун, человек со странностями, всегда читает справо налево. Составить функцию, облегчающую диалог с мистером Брауном, для которой передается ссылка на введенную строку и выводится на экран реверсированная строка. Например: ввод «Галина», вывод «анилаГ».
8. Составить программу, в которой в массив переменной длины, определяемой пользователем, вводятся числовые данные с клавиатуры, а затем сортирются в функции сортировки и записываются в файл.
9. Составить программу, которая читает определенное количество данных из файла в массив переменной длины. Размерность массива задается с клавиатуры.
10. Составить программу, которая формирует список группы студентов (ФИО, адрес, возраст, телефон) и записывает на диск в файл. Количество записей вводится с клавиатуры. Использовать динамически выделяемую память под массив.
11. Определить угол (в градусах) между положением стрелок в начале суток и ее положением в h-часов, m-минут, s-секунд. Ввод времени осуществлять в основной программе и передавать по ссылке в функцию.
12. Определить h-количество часов, m-минут прошедших от начала суток до того момента, когда часовая стрелка повернулась на f-градусов. Написать несколько перегруженных функций для разного ввода параметра (в градусах, в виде строки, в радианах).
3? Отчет по работе
• Название работы и ее цель;
• Ответы на поставленные вопросы в порядке проведения работы;
• Листинг разработанной и отлаженной программы индивидуального задания?
4? Вопросы по лабораторной работе
1. Операции выделения и освобождения памяти в С++. Отличия в создании динамических и статических массивов.
2. Ошибки при распределении памяти.
3. Обработка ошибок при распределении памяти.
4. Указатели. Определение, инициализация и использование указателей в программе. Указатель со значением NULL. Указатель на void.
5. Определение и инициализация ссылки в программе. В чем различие между ссылкой и указателем? Операции над ссылкой.
6. Константы. Преимущества использования const.
7. Перегружаемые функции. Каким образом компилятор определяет какая из перегруженных функций вызывается в данный момент в программе.
8. Использование значений формальных параметров по умолчанию в функции. Правила назначений параметров по умолчанию.
9. inline-функции. Отличие inline-функций от простых функций.
10. Перечисления. Использование перечислений в программе.
11? Стандартные потоки ввода/вывода? Использование их в программе?
