Загрузка...

Лабораторная работа 1


Цель работы: Ознакомиться с некоторыми расширениями языка С, позволяющими перейти к объектно-ориентированному программированию С++.

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. Написать функцию, которая по ссылке получает символьную строку из программы и подсчитывает частоту появления букв латинского алфавита в этой строке символов. Окончание строки — 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. Стандартные потоки ввода/вывода. Использование их в программе.

Загрузка...