Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы.doc
Скачиваний:
33
Добавлен:
04.03.2016
Размер:
317 Кб
Скачать
☆

Контрольные вопросы

  1. Можно ли выполнять перегрузку функций-членов класса?

  2. Могут ли функции-члены класса быть с параметрами по умолчанию?

  3. Будет ли компилятором создан конструктор по умолчанию, если вы определили свой собственный конструктор?

  4. Допустима ли перегрузка конструкторов?

  5. Как выполнить инициализацию членов-данных в конструкторе?

  6. Что такое конструктор копирования?

  7. Каковы функции конструктора копирования?

  8. Какое копирование называется поверхностным?

  9. Какое копирование называется глубоким?

  10. В каком случае необходимо писать свой конструктор копирования? Почему?

  11. Что такое перегрузка операций? Для чего она применяется?

  12. Как различается перегруженное постфиксное и префиксное инкрементирование?

  13. Что такое указатель this и как он используется при перегрузке операций?

  14. Можно ли перегружать операции для встроенных типов и создавать новые?

  15. Можно ли перегрузить ++ так, чтобы он декрементировал?

  16. Можно ли использовать оператор =, если вы его не перегружали в классе?

  17. Как проверить случай присваивания объекта самому себе? Для чего нужна проверка?

  18. Обязательно ли перегруженные операторы должны быть членами класса?

Література

  1. Джесс Либерти. Освой самостоятельно С++. 3 и-е. М.: Вильямс. – 2000.

  2. Г. Шилдт. Полный справочник по С++. 4 и-е. – М.: Вильямс. – 2003.

  3. Т.А. Павловская. С/С++. Программирование на языке высокого уровня. ПИТЕР-2002

  4. С.В. Глушаков. Практикум по С++. ФОЛИО – 2006

  5. Х. Дейтел, П. Дейтел. Как программировать на С++.

  6. Ю.Л. Кетков. Введение в языки программирования C и C++ http://www.intuit.ru/department/pl/ccpp/

  7. А.Л. Фридман. Язык программирования C++ http://www.intuit.ru/department/pl/cpp/

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

Тема: Массивы

Цель:

Теоретические сведения

См. лекция №11

Ход работы

  1. Создайте массив из 1000 случайных чисел из диапазона от 1 до 100. Выведите его на экран по 6 чисел в строке. Увеличьте все значения в массиве вдвое. Определите количество четных и нечетных чисел в этом массиве. Подсчитайте сумму и среднее арифметическое элементов массива. Найдите в массиве наименьшее (наибольшее) число.

  2. Перепишите программу п.1, разбив ее на функции.

  3. Объявите двумерный массив для игры в крестики-нолики и проинициализируйте его 0. Напишите цикл for, заносящий во все элементы этого массива –1.

  4. Объявите массив для хранения объектов любого ранее разработанного класса (Worker,Pencil,Rectangle…) в стеке. Измените поля у всех объектов массиве. Распечатайте массив объектов. Для обхода используйте как индексы так и адресную арифметику.

  5. Объявите массив указателей для работы с объектами любого ранее разработанного класса (Worker,Pencil,Rectangle…). Создайте несколько объектов в свободной памяти и сохраните их адреса в массиве указателей. Распечатайте массив объектов. Уничтожьте объекты. Для обхода используйте как индексы так и адресную арифметику.

  6. Объявите массив в свободной памяти для хранения объектов любого ранее разработанного класса (Worker,Pencil,Rectangle…). Создайте несколько объектов и сохраните их в массиве. Распечатайте массив объектов. Подчитайте количество объектов в массиве. Определите сумму по одному из полей объекта. Найдите в массиве наименьший (наибольший) объект. Уничтожьте массив объектов. Для обхода используйте как индексы так и адресную арифметику.

  7. Напишите программу, выполняющую ввод двух строк С-стиля с клавиатуры, их сравнение, и объединение в третьей строке. Определите число символов в строке объединения.

  8. строки содержат по одному слову;

  9. строки содержат по несколько слов;

  10. Измените эту программу, использовав строковый класс вашего компилятора.

  11. Добавьте в личный класс Workerдва новых члена-данных : строку С-стиля (“Фамилия”) и объект строкового класса компилятора (“Адрес”). Напишите методы доступа для их обработки. Исправьте конструкторы класса и другие его методы и операторы. Реализуйте в классе операторы сравнения на равенство и меньше для члена-данного “Фамилия”.

  12. Напишите функции для поиска и сортировки в массиве объектов типа Worker.

  13. Напишите класс защищенного массива для объектов ранее разработаного класса (Worker,Pencil,Cat…) с оператором индексации и проверьте его в главной программе.

  14. ***Напишите объявление класса для узла связного списка ранее разработаного класса объектов (Worker,Pencil,Cat…) и его реализацию.

  15. ***Напишите объявление класса для связного списка класса узлов объектов типа (Worker, ***Pencil,Cat…) и его реализацию, включив в нее следующие методы :Insert(),Delete(),Display(),Find() и оператор [ ]. Протестируйте этот класс в главной программе.