- •Лабораторная работа 1
- •Теоретические сведения
- •Ход работы
- •Задание
- •Контрольные вопросы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 2
- •Теоретические сведения
- •Ход работы
- •Література
- •Лабораторная работа 3
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 4
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 5
- •Теоретические сведения
- •Основные библиотечные математические функции c
- •Основные стандартные функции и макросы c (из библиотеки stdlib.H)
- •Основные библиотечные функции c для работы с символами
- •Основные библиотечные функции c для работы с символьными массивами
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 6
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 7
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 8
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 9
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 10
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 11
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 12
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 13
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 14
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 15
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 16
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
Контрольные вопросы
Можно ли выполнять перегрузку функций-членов класса?
Могут ли функции-члены класса быть с параметрами по умолчанию?
Будет ли компилятором создан конструктор по умолчанию, если вы определили свой собственный конструктор?
Допустима ли перегрузка конструкторов?
Как выполнить инициализацию членов-данных в конструкторе?
Что такое конструктор копирования?
Каковы функции конструктора копирования?
Какое копирование называется поверхностным?
Какое копирование называется глубоким?
В каком случае необходимо писать свой конструктор копирования? Почему?
Что такое перегрузка операций? Для чего она применяется?
Как различается перегруженное постфиксное и префиксное инкрементирование?
Что такое указатель this и как он используется при перегрузке операций?
Можно ли перегружать операции для встроенных типов и создавать новые?
Можно ли перегрузить ++ так, чтобы он декрементировал?
Можно ли использовать оператор =, если вы его не перегружали в классе?
Как проверить случай присваивания объекта самому себе? Для чего нужна проверка?
Обязательно ли перегруженные операторы должны быть членами класса?
Література
Джесс Либерти. Освой самостоятельно С++. 3 и-е. М.: Вильямс. – 2000.
Г. Шилдт. Полный справочник по С++. 4 и-е. – М.: Вильямс. – 2003.
Т.А. Павловская. С/С++. Программирование на языке высокого уровня. ПИТЕР-2002
С.В. Глушаков. Практикум по С++. ФОЛИО – 2006
Х. Дейтел, П. Дейтел. Как программировать на С++.
Ю.Л. Кетков. Введение в языки программирования C и C++ http://www.intuit.ru/department/pl/ccpp/
А.Л. Фридман. Язык программирования C++ http://www.intuit.ru/department/pl/cpp/
Лабораторная работа 11
Тема: Массивы
Цель:
Теоретические сведения
См. лекция №11
Ход работы
Создайте массив из 1000 случайных чисел из диапазона от 1 до 100. Выведите его на экран по 6 чисел в строке. Увеличьте все значения в массиве вдвое. Определите количество четных и нечетных чисел в этом массиве. Подсчитайте сумму и среднее арифметическое элементов массива. Найдите в массиве наименьшее (наибольшее) число.
Перепишите программу п.1, разбив ее на функции.
Объявите двумерный массив для игры в крестики-нолики и проинициализируйте его 0. Напишите цикл for, заносящий во все элементы этого массива –1.
Объявите массив для хранения объектов любого ранее разработанного класса (Worker,Pencil,Rectangle…) в стеке. Измените поля у всех объектов массиве. Распечатайте массив объектов. Для обхода используйте как индексы так и адресную арифметику.
Объявите массив указателей для работы с объектами любого ранее разработанного класса (Worker,Pencil,Rectangle…). Создайте несколько объектов в свободной памяти и сохраните их адреса в массиве указателей. Распечатайте массив объектов. Уничтожьте объекты. Для обхода используйте как индексы так и адресную арифметику.
Объявите массив в свободной памяти для хранения объектов любого ранее разработанного класса (Worker,Pencil,Rectangle…). Создайте несколько объектов и сохраните их в массиве. Распечатайте массив объектов. Подчитайте количество объектов в массиве. Определите сумму по одному из полей объекта. Найдите в массиве наименьший (наибольший) объект. Уничтожьте массив объектов. Для обхода используйте как индексы так и адресную арифметику.
Напишите программу, выполняющую ввод двух строк С-стиля с клавиатуры, их сравнение, и объединение в третьей строке. Определите число символов в строке объединения.
строки содержат по одному слову;
строки содержат по несколько слов;
Измените эту программу, использовав строковый класс вашего компилятора.
Добавьте в личный класс Workerдва новых члена-данных : строку С-стиля (“Фамилия”) и объект строкового класса компилятора (“Адрес”). Напишите методы доступа для их обработки. Исправьте конструкторы класса и другие его методы и операторы. Реализуйте в классе операторы сравнения на равенство и меньше для члена-данного “Фамилия”.
Напишите функции для поиска и сортировки в массиве объектов типа Worker.
Напишите класс защищенного массива для объектов ранее разработаного класса (Worker,Pencil,Cat…) с оператором индексации и проверьте его в главной программе.
***Напишите объявление класса для узла связного списка ранее разработаного класса объектов (Worker,Pencil,Cat…) и его реализацию.
***Напишите объявление класса для связного списка класса узлов объектов типа (Worker, ***Pencil,Cat…) и его реализацию, включив в нее следующие методы :Insert(),Delete(),Display(),Find() и оператор [ ]. Протестируйте этот класс в главной программе.
