Лабораторная работа №5 «Шаблоны классов» — КиберПедия 

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Лабораторная работа №5 «Шаблоны классов»

2017-06-20 494
Лабораторная работа №5 «Шаблоны классов» 0.00 из 5.00 0 оценок
Заказать работу

Задание 8.

1. Создать шаблон класса для работы с массивом произвольного типа данных. Шаблон должен включать:

  • указатель, хранящий адрес размещения массива в динамической памяти;
  • целочисленную переменную, показывающую количество занятых элементов массива;
  • конструктор без параметров с параметрами по умолчанию;
  • конструктор копирования;
  • метод «обработка массива» (на начальном этапе метод выводит на консоль какое-либо сообщение);
  • деструктор

и другие необходимые для работы методы (например, перегрузка операций индексирования и присваивания, методы ввода / вывода и т.д.).

2. Предусмотреть генерацию и обработку исключений для возможных ошибочных ситуаций (отрицательная размерность при задании массива, выход за границы диапазона при обращении по индексу и т.д.).

3. В функции main() показать использование созданного класса, включая ситуации, приводящие к генерации исключений; показать инстанцирование шаблона для различных типов.

4. На основе данного шаблона создать класс для работы со строкой символов, специализировав метод «обработка массива» для вашей конкретной задачи.

8.1. Дана строка латинских символов. Преобразовать строку, заменив все символы на заглавные.

 

8.2. Дана строка латинских символов. Преобразовать строку, заменив все символы на строчные.

 

8.3. Дана строка латинских символов. Преобразовать строку, разместив в алфавитном порядке все различные строчные латинские буквы, входящие в исходную строку.

 

8.4. Дана строка латинских символов. Преобразовать строку, заменив все вхождения «abc» на «def».

8.5. Дана строка латинских символов. Преобразовать строку, удалив первое вхождение «w», если такое есть (образовавшуюся «дыру» заполнить последующими буквами, а в конец добавить пробел).

 

8.6. Дана строка латинских символов. Преобразовать строку, заменив на «ks» первое вхождение «x», если оно есть.

 

8.7. Дана строка латинских символов. Преобразовать строку в эту же последовательность символов, но в обратном порядке.

 

8.8. Дана строка латинских символов. Преобразовать строку, удалив из нее повторно входящие символы.

8.9. Дана строка латинских символов. Преобразовать строку, оставив символы, которые встречаются в последовательности по одному разу.

 

8.10. Дана строка латинских символов. Преобразовать строку, оставив все различные символы, указав для каждого из них число его вхождений в исходную строку.

 

8.11. Дана строка латинских символов. Преобразовать строку, разместив символы в алфавитном порядке, разделяя их пробелами.

 

8.12. Дана строка латинских символов. Преобразовать строку, оставив символы, которые являются строчными.

 

8.13. Дана строка латинских символов. Преобразовать строку, оставив символы, которые являются заглавными.

8.14. Дана строка латинских символов. Преобразовать строку, оставив символы, отличающиеся от последнего.

 

8.15. Дана строка латинских символов. Преобразовать строку, удалив из нее символы, встречающиеся ровно два раза.

 

8.16. Дана строка латинских символов. Преобразовать строку, оставив символы, отличающиеся от первого.

 

8.17. Дана строка латинских символов. Преобразовать строку, разместив символы в алфавитном порядке, разделяя их запятыми.

 

8.18. Дана строка латинских символов. Преобразовать строку, заменив на «ks» все вхождения «x», если они есть.

 

8.19. Дана строка латинских символов. Преобразовать строку, заменив на «ww» все вхождения «www», если они есть.

 

8.20. Дана строка латинских символов. Преобразовать строку, заменив на «w» первое вхождение «www», если оно есть.

Задание 9.

1. Создать шаблон класса, реализованного в задании №5 для работы со структурой произвольного типа данных.

2. Предусмотреть генерацию и обработку исключений для возможных ошибочных ситуаций (удаление из пустой структуры, смещение за пределы структуры и т.п.).

3. В функции main() показать использование созданного класса, включая ситуации, приводящие к генерации исключений; показать инстанцирование шаблона для различных типов (int, float, string).

 

Лабораторная работа №6 «Потоковые классы»

Задание 10.

10.1. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса матриц размером 3×3. Данный класс также описывается в указанном модуле и содержит перегруженные операции сложения и умножения матриц.

10.2. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса полиномов степени 5. Данный класс также описывается в указанном модуле и содержит перегруженные операции сложения и умножения полиномов.

10.3. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции sin(x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения (x- 0.16667 x 3 +…). Значение n определяет пользователь.

10.4. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции cos(x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.5. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции sin2(x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.6. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции cos2(x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.7. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.8. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции sin(ax) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.9. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции cos(ax) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения а и n определяет пользователь.

10.10. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(ax) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения а и n определяет пользователь.

10.11. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции ln(1+x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.12. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции ln(1+ax) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения а и n определяет пользователь.

10.13. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции sin(x)+cos(x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.14. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции sin(ax)+cos(x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения a и n определяет пользователь.

10.15. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции sin(x)+cos(аx) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения a и n определяет пользователь.

10.16. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(x)+exp(-x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.17. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(x)+exp(ax) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения a и n определяет пользователь.

10.18. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(x)-exp(-x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.19. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(x)-exp(ax) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения a и n определяет пользователь.

10.20. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции (1+x)m в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n и m определяет пользователь.

10.21. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции (1+аx)m в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения a, m и n определяет пользователь.

10.22. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(x)+ln(1+x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.23. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции exp(x)-ln(1+x) в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значение n определяет пользователь.

10.24. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции двух переменных (a+x)m в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения a, m и n определяет пользователь.

10.25. Реализуйте модуль, подключение которого перегружает операции помещения в поток вывода и извлечение из потока ввода для класса, содержащего методы разложения функции двух переменных (b+аx)m в ряд Тейлора. На экран должно выводиться n первых слагаемых разложения. Значения a, b, m и n определяет пользователь.

 


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.019 с.