Б3.Б.5 Основы объектно-ориентированного программирования
.pdfРабочая программа дисциплины составлена в 2011 году в соответствии с требованиями ФГОС ВПО по направлению подготовки 230100 «Информатика и вычислительная техника» (квалификация (степень) «бакалавр») от 09.11.2009 г. № 553.
Пересмотрена в 2012 году на заседании методической комиссии факультета информационных технологий от 25.05.2012 № 48.
Пересмотрена в 2013 году на заседании методической комиссии факультета информационных технологий от 24.06.2013 № 53.
Изменена, дополнена и утверждена в 2014 году в соответствии с требованиями Порядка организации и осуществления образовательной деятельности по образовательным программам высшего образования – программам бакалавриата, программам специалитета, программам магистратуры (приказ Минобрнауки России от 19.12.2013 г. №
1367).
Разработчик: Кафедра общей информатики, Рылов Всеволод Юрьевич (кафедра, ФИО, ученая степень, ученое звание)
Рабочая программа дисциплины одобрена на заседании Методической комиссии факультета информационных технологий от 03.02.2014 года, протокол № 55.
2
Аннотация рабочей программы дисциплины
Дисциплина «Основы объектно-ориентированного программирования» входит в базовую часть профессионального цикла образовательной программы бакалавриата по направлению подготовки 230100 «Информатика и вычислительная техника».
Дисциплина реализуется на факультете информационных технологий НГУ кафедрой общей информатики.
Содержание дисциплины охватывает круг вопросов, связанных с теорией объектноориентированного программирования и особенностями ее поддержки и реализации основных принципов в языке программирования C++ и его стандартной библиотеке.
Дисциплина нацелена на формирование общекультурных ОК-1, ОК-6, ОК-8, ОК-12, профессиональных компетенций ПК-2, ПК-3, ПК-4, ПК-5, ПК-6 выпускника.
Преподавание дисциплины предусматривает проведение следующих видов учебных занятий: лекции, лабораторные занятия, самостоятельная работа обучающихся.
Рабочая программа дисциплины предусматривает проведение следующих видов контроля: текущий контроль успеваемости с использованием балльно-рейтинговой системы оценок за сдачу лабораторных заданий и коллоквиум в течение семестра и промежуточный контроль в форме экзамена.
Объем дисциплины 5 зачетных единиц, в том числе в академических часах по видам учебных занятий:
|
|
|
учебные занятия |
|
|
форма |
||||
Сем |
Общий |
|
|
|
в том числе |
|
|
промежуточ |
||
естр |
объем |
|
контактная работа обучающихся с |
|
СРС |
ной |
||||
|
|
|
|
преподавателем |
|
|
аттестации |
|||
|
|
Всего |
|
|
|
из них |
|
|
(зачет, |
|
|
|
|
Лекции |
|
Лабор |
Практи |
КСР |
Конс |
|
дифференци |
|
|
|
|
|
ные |
ческие |
|
ульта |
|
рованный |
|
|
|
|
|
занят |
занятия |
|
ции |
|
зачет, |
|
|
|
|
|
ия |
|
|
|
|
экзамен) |
3 |
180 |
64 |
32 |
|
32 |
|
|
|
116 |
экзамен |
3
1. Цели освоения дисциплины
Дисциплина «Основы объектно-ориентированного программирования» имеет своей целью:
Изучение основ классической теории объектно-ориентированного программирования, в том числе:
o Пути эволюции технологий программирования от алгоритмического к ООП
o Основных принципов объектно-ориентированного построения программных систем (Абстракция, Инкапсуляция, Иерархия, Модульность, Типизация, Параллелизм, Сохраняемость)
oПонятий классов, объектов, взаимоотношений между ними, а также многоуровневой модели OMG
Изучение средств объектно-ориентированного и обобщенного программирования языка С++, средств стандартной библиотеки STL
Выработку практических навыков проектирования и реализации объектноориентированных программ на языке программирования C++.
2.Место дисциплины в структуре образовательной программы
Дисциплина «Основы объектно-ориентированного программирования» входит в базовую часть профессионального цикла.
Изучение дисциплины опирается на курсы «Информатика», «Программирование», «Математическая логика и теория алгоритмов».
Предварительными требованиями к студентам являются:
Знание одного из классических процедурно-ориентированных языков, предпочтительно языка C
Знания в области алгоритмической декомпозиции, основных структур данных и технологий работы с ним
Знание основ теории множеств
Данный курс является предшествующим для следующих дисциплин: «Объектноориентированное программирование на Java», «Базы данных», «Инженерная и компьютерная графика», «Объектно-ориентированный анализ и дизайн».
3. Компетенции обучающегося, формируемые в результате освоения дисциплины (перечень планируемых результатов обучения)
В результате освоения данной дисциплины обучающийся демонстрирует следующие общекультурные и профессиональные компетенции:
Код компетенции |
Формулировка |
Планируемые результаты обучения (показатели |
||||||
компетенции из ФГОС |
достижения |
заданного |
уровня |
освоения |
||||
|
компетенций) |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
ОК-1 |
Владеет культурой |
Знать: историю развития технологий разработки |
||||||
|
мышления, способен к |
программных систем; |
|
|
|
|
||
|
обобщению, анализу, |
Уметь: |
оценивать |
границы |
применимости |
|||
|
восприятию информации, |
технологий и методик разработки программ; |
||||||
|
постановке цели и выбору |
Владеть: объектно-ориентированной технологией |
||||||
|
путей ее достижения |
построения программных систем |
|
|
4
ОК-6 |
Стремится к саморазвитию, |
Владеть: |
|
получить |
|
практический |
|
опыт |
|||||||||
|
повышению своей |
|
самостоятельного |
решения |
задач |
по |
|||||||||||
|
квалификации и мастерства |
проектированию и разработки программных систем |
|||||||||||||||
ОК-8 |
Осознает социальную |
|
Знать: важность освоения изучаемой технологии и |
||||||||||||||
|
значимость своей будущей |
особенностей ее применения в решении задач |
|||||||||||||||
|
профессии, обладает |
|
автоматизации во всех областях хозяйственной и |
||||||||||||||
|
высокой мотивацией к |
|
научно-исследовательской деятельности людей. |
|
|||||||||||||
|
выполнению |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
профессиональной |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
деятельности |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
ОК-12 |
Имеет навыки работы с |
|
Уметь: использовать сеть Internet для поиска |
||||||||||||||
|
компьютером как |
|
документации, спецификаций, типовых способов |
||||||||||||||
|
средством управления |
|
решения задач при разработке программ; |
|
|
|
|||||||||||
|
информацией |
|
|
Владеть: устойчивыми навыками использования |
|||||||||||||
|
|
|
|
|
|
компьютеров и программных пакетов при |
|||||||||||
|
|
|
|
|
|
проектировании и реализации программ |
|
|
|
||||||||
ПК-2 |
Осваивать |
|
методики |
Знать: |
основные |
программные среды |
и |
средства |
|||||||||
|
использования |
|
|
разработки программ на языке C++; |
|
|
|
|
|||||||||
|
программных |
средств |
для |
Уметь: разрабатывать и тестировать программные |
|||||||||||||
|
решения |
практических |
компоненты с использованием этих средств; |
|
|||||||||||||
|
задач |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПК-3 |
Разрабатывать интерфейсы |
Знать: средства стандартной библиотеки |
C++ для |
||||||||||||||
|
"человек-электронно- |
|
реализации |
|
интерфейсов |
|
взаимодействия |
с |
|||||||||
|
вычислительная машина" |
человеком |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
Владеть: навыками построения простых (текстовых, |
|||||||||||
|
|
|
|
|
|
консольных) интерфейсов «человек-ЭВМ» при |
|||||||||||
|
|
|
|
|
|
решении |
практических |
|
задач |
в |
|
составе |
|||||
|
|
|
|
|
|
лабораторных работ |
|
|
|
|
|
|
|
||||
ПК-4 |
Разрабатывать |
модели |
Знать: |
основы |
языка |
моделирования |
UML |
для |
|||||||||
|
компонентов |
|
|
представления диаграмм и иерархий классов |
|||||||||||||
|
информационных систем, |
программных |
|
систем |
а |
также |
|
диаграмм |
|||||||||
|
включая |
модели |
баз |
взаимодействия объектов. |
|
|
|
|
|
|
|||||||
|
данных |
|
|
|
|
Уметь: представлять модели классов программной |
|||||||||||
|
|
|
|
|
|
системы с использованием языка UML. |
|
|
|
||||||||
|
|
|
|
|
|
Владеть: |
Инструментальными |
программными |
|||||||||
|
|
|
|
|
|
пакетами моделирования на языке UML |
|
|
|
||||||||
ПК-5 |
Разрабатывать компоненты |
Знать: язык программирования C++; |
|
|
|
|
|||||||||||
|
программных комплексов и |
Уметь: |
пользоваться средой |
разработки |
Microsoft |
||||||||||||
|
баз данных, использовать |
Visual Studio Express и языком C++, владеть |
|||||||||||||||
|
современные |
|
|
технологией |
|
|
|
объектно-ориентированного |
|||||||||
|
инструментальные |
|
программирования и использовать язык C++ для |
||||||||||||||
|
средства |
и |
технологии |
построения программных систем по этой |
|||||||||||||
|
программирования |
|
технологии. |
|
|
|
|
|
|
|
|
|
|
||||
ПК-6 |
Обосновывать |
|
|
Знать: технологии автоматического модульного |
|||||||||||||
|
принимаемые |
проектные |
тестирования программ на языке C++ с |
||||||||||||||
|
решения, |
осуществлять |
использованием специализированных программных |
||||||||||||||
|
постановку |
и |
выполнять |
библиотек; |
|
|
|
|
|
|
|
|
|
|
|||
|
эксперименты по проверке |
Уметь: |
подтверждать |
корректность |
работы |
||||||||||||
|
их |
корректности |
и |
программной |
|
системы |
|
путем |
организации |
||||||||
|
эффективности |
|
|
модульного |
|
тестирования |
и |
представления |
|||||||||
|
|
|
|
|
|
результатов тестов; |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
Владеть: практическими навыками написания |
|||||||||||
|
|
|
|
|
|
модульных тестов к программным компонентам в |
|||||||||||
|
|
|
|
|
|
процессе реализации практических заданий |
|
5
4. Объем, структура и содержание дисциплины
4.1.Объем дисциплины составляет 5 зачетных единиц, 180 академических часов.
4.2.Структура дисциплины
№ |
Раздел (тема) |
|
п/ |
||
дисциплины |
||
п |
||
|
1Эволюция методологий программирования. Основные принципы объектно-ориентированного программирования
2Объектно-ориентированная модель
3Классы, метамодель и основы UML
4Основные алгоритмические отличия C++ от C
5Средства объектного программирования языка
C++
6Средства объектноориентированного программирования С++
7Обобщенное
программирование
8Стандартная библиотека С++
Промежуточная аттестация
ИТОГО часов:
|
|
|
|
Контактная работа |
||||
|
|
|
|
|
обучающихся с |
|||
|
|
|
преподавателем по видам |
|||||
|
|
|
|
учебных занятий (из |
||||
|
Семестр (из уч. плана) |
|
учебного плана, в часах) |
|||||
|
Неделя семестра |
|
|
|
|
|
|
|
Лекции |
|
Лабораторные занятия |
Практические занятия |
Контроль самостоятельной работы (КСР) |
Консультации |
|||
3 |
1 |
2 |
|
2 |
|
|
|
|
3 |
2 |
2 |
|
2 |
|
|
|
|
3 |
3 |
2 |
|
2 |
|
|
|
|
3 |
4 |
2 |
|
2 |
|
|
|
|
3 |
5-8 |
8 |
|
8 |
|
|
|
|
3 |
9-11 |
6 |
|
6 |
|
|
|
|
3 |
12- |
4 |
|
4 |
|
|
|
|
|
|
13 |
|
|
|
|
|
|
3 |
14- |
6 |
|
6 |
|
|
|
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
работа обучающихся (из |
часах) |
Самостоятельная |
учебного плана, в |
|
1 |
3
4
3
14
10
7
11
63
116
Формы
текущего
контроля
успеваемо
сти
(по неделям семестра)
Форма
промежуто
чной
аттестации
(по семестрам, из учебного плана)
Защита лаб. работы №1
Защита лаб. работ №2, №3
Защита лаб. работы №4
Коллоквиу м (12) Защита лаб. работы №5
Защита лаб. работ №6, №7
Экзамен
6
4.3. Содержание дисциплины, структурированное по темам (разделам)
Лекции – 32 часов (из учебного плана)
Раздел |
занятия |
|
Кол-во часов |
||
(тема), |
Содержание занятий и ссылки на рекомендуемую |
|
В |
||
Код |
|
интерак |
|||
литературу |
всего |
||||
компетен |
тивной |
||||
№ |
|
|
|||
ции |
|
|
форме |
||
|
|
|
|||
Тема 1 |
|
1. Основные принципы объектно-ориентированного |
|
|
|
( ОК-1, |
|
программирования |
|
|
|
ОК-6, |
|
1.1. Эволюция методологий программирования |
|
|
|
ОК-8, |
|
1.1.1. Начало начал, или первое поколение языков |
|
|
|
ПК-5) |
|
программирования. |
|
|
|
|
|
1.1.2. Развитие алгоритмических абстракций, или |
|
|
|
|
|
второе поколение языков программирования. |
|
|
|
|
|
1.1.3. Модуль как единица построения программных |
|
|
|
|
|
систем, третье поколение языков программирования. |
|
|
|
|
|
1.1.4. Зарождение объектной модели, четвертое |
|
|
|
|
|
поколение языков программирования. |
|
|
|
|
1 |
1.1.5. Объектные языки программирования, объектно- |
2 |
|
|
|
|
ориентированные языки программирования, объектно- |
|
|
|
|
|
ориентированный анализ, дизайн и проектирование. |
|
|
|
|
|
1.1.6. Парадигмы программирования. |
|
|
|
|
|
1.2. Составные части объектного подхода |
|
|
|
|
|
1.2.1. Абстрагирование |
|
|
|
|
|
1.2.2. Инкапсуляция |
|
|
|
|
|
1.2.3. Модульность |
|
|
|
|
|
1.2.4. Иерархия |
|
|
|
|
|
1.2.5. Типизация |
|
|
|
|
|
1.2.6. Параллелизм |
|
|
|
|
|
1.2.7. Сохраняемость |
|
|
|
Тема 2 |
|
2. Объектно-ориентированная модель |
|
|
|
( ОК-1, |
|
2.1. Понятие объекта |
|
|
|
ОК-6, |
|
2.2. Свойства, присущие объектам |
|
|
|
ОК-8, |
|
2.2.1. Состояние |
|
|
|
ПК-4) |
2 |
2.2.2. Поведение |
2 |
|
|
|
2.2.3. Идентичность |
|
|||
|
|
|
|
||
|
|
2.3. Отношения между объектами |
|
|
|
|
|
2.3.1. Типы отношений |
|
|
|
|
|
2.3.2. Связь (ассоциация) |
|
|
|
|
|
2.3.3. Агрегация |
|
|
|
Тема 3 |
|
3. Классы |
|
|
|
(ОК-1, |
|
3.1. Природа классов. |
|
|
|
ОК-6, |
|
3.2. UML – унифицированный язык моделирования. |
|
|
|
ОК-8, |
|
Четырехуровневая метамодель MOF |
|
|
|
ОК-12, |
|
3.3. Отношения между классами. |
|
|
|
ПК-2, |
3 |
3.3.1. Типы отношений |
2 |
|
|
ПК-4, |
3.3.2. Ассоциация |
|
|||
|
|
|
|||
ПК-6) |
|
3.3.3. Агрегация |
|
|
|
|
|
3.3.4. Использование |
|
|
|
|
|
3.3.5. Наследование |
|
|
|
|
|
3.3.6. Инстанцирование |
|
|
|
|
|
3.4. Отношения между классами и объектами |
|
|
7
Тема 4 |
4. Основные алгоритмические отличия C++ |
|
(ОК-1, |
4.1. Использование ссылок. Передача аргументов |
|
ОК-6, |
функции по ссылке. |
|
ОК-8, |
4.2. Использование констант. |
|
ОК-12, |
4.3. Логические тип и перечисления. |
|
ПК-2, |
4.4. Операторы управления динамической памятью, |
|
ПК-3, |
4 инициализация массивов. |
2 |
ПК-4, |
4.5. Структура программы, раздельная компиляция и |
|
ПК-5, |
особенности использования статической памяти. |
|
ПК-6 ) |
4.6. Пространства имен и исключения (краткий обзор) |
|
|
4.7. Библиотека ввода вывода (краткий обзор iostream) |
|
|
4.8. Функциональный полиморфизм. |
|
Тема 5 |
5. Средства объектного программирования языка C++ |
|
(ОК-1, |
5.1. Представление объектов и классов. |
|
ОК-6, |
5.1.1. Реализация поведения объектов на примере |
|
ОК-12, |
добавления функций—членов в структуры. Структура |
|
ПК-2, |
как вырожденный класс. |
|
ПК-3, |
5.1.2. Структура объявления класса. |
|
ПК-4, |
5.1.3. Доступ к членам класса. |
|
ПК-5, |
5.1.4. Поля данных класса как механизм реализации |
|
ПК-6) |
состояния объекта. |
|
|
5.1.5. Функции члены класса как механизм реализации |
|
|
поведения объекта. |
|
|
5.1.6. Спецификаторы доступа для обеспечения |
|
|
инкапсуляции. |
|
|
5.1.7. Средства управления жизнью объекта. |
|
|
Конструкторы и деструкторы. |
|
|
5.1.8. Конструирование и уничтожение объектов и |
|
|
массивов объектов. |
|
|
5.1.9. Особенности использования конструктора |
|
5-8 |
копии, конструктора по умолчанию, оператора |
8 |
|
присваивания. |
|
|
5.1.10. Описание селекторов и модификаторов. |
|
|
5.1.11. Перегрузка операторов C++ как реализация |
|
|
поведения с предопределенным смыслом. |
|
|
5.1.12. Дружественность как механизм нарушения |
|
|
инкапсуляции. Достоинства и недостатки механизма |
|
|
дружественности. |
|
|
5.1.13. Статические поля и методы классов. |
|
|
Инициализация статических полей. |
|
|
5.2. Реализация отношений между объектами и |
|
|
классами |
|
|
5.2.1. Ассоциация и агрегация объектов и классов. |
|
|
Зависимость по времени жизни. |
|
|
5.2.2. Использование и зависимость от интерфейсов. |
|
|
5.2.3. Объекты при передаче параметров и возврате из |
|
|
методов. |
|
|
5.2.4. Варианты реализации отношения клиент-сервер. |
|
|
5.2.5. Внутренние классы. |
|
8
Тема 6 |
6. Средства объектно-ориентированного |
|
|
(ОК-1, |
программирования С++ |
|
|
ОК-6, |
6.1. Наследование как средство организации иерархий |
|
|
ОК-12, |
классов. Принцип замещения Лисковой. |
|
|
ПК-2, |
6.2. Одиночное наследование. |
|
|
ПК-3, |
6.2.1. Понятие производного класса. |
|
|
ПК-4, |
6.2.2. Управление доступом в производных классах. |
|
|
ПК-5, |
6.2.3. Конструкторы и деструкторы, совмещение имен |
|
|
ПК-6) |
методов при наследовании, иерархии. |
|
|
|
6.2.4. Абстрактные классы и виртуальные функции. |
|
|
|
6.2.5. Виртуальный полиморфизм. |
|
|
|
6.2.6. Информация о типе на этапе выполнения. RTTI. |
|
|
|
6.3. Множественное наследование |
|
|
|
6.3.1. Проблема множественного наследования. |
|
|
|
Виртуальное наследование как средство разрешения |
|
|
|
коллизий. |
|
|
|
6.3.2. Порядок вызовов конструкторов и деструкторов |
|
|
9-11 |
при множественном наследовании. |
6 |
|
6.3.3. Чистые виртуальные классы, понятие |
|||
|
|
||
|
интерфейса. |
|
|
|
6.3.4. Принципы дизайна иерархий классов. OCP, DIP, |
|
|
|
ISP. |
|
|
|
6.4. Пространства имен. |
|
|
|
6.4.1. Пространства имен как средство реализации |
|
|
|
модульности. |
|
|
|
6.4.2. Поиск имен и разрешение конфликтов. |
|
|
|
6.4.3. Объединение пространств имен. |
|
|
|
6.4.4. Принципы дизайна пакетов. |
|
|
|
6.5. Обработка исключений. |
|
|
|
6.5.1. Обработка ошибок. |
|
|
|
6.5.2. Группировка и перехват исключений. |
|
|
|
6.5.3. Управление ресурсами. |
|
|
|
6.5.4. Исключения и эффективность. |
|
|
|
6.5.5. Альтернативные методы обработки ошибок. |
|
|
|
6.5.6. Стандартные исключения. |
|
Тема 7 |
|
7. Обобщенное программирование. |
|
|
(ОК-1, |
|
7.1. Шаблоны классов. |
|
|
ОК-6, |
|
7.1.1. Определение шаблона. |
|
|
ОК-12, |
12- |
7.1.2. Инстанцирование. |
|
|
ПК-2, |
7.1.3. Параметры шаблонов и проверка типов. |
4 |
||
13 |
||||
ПК-3, |
7.2. Шаблоны функций. |
|
||
ПК-4, |
|
7.3. Специализация. |
|
|
ПК-5, |
|
7.4. Наследование и шаблоны. |
|
|
ПК-6) |
|
|
|
9
Тема 8 |
|
8. Стандартная библиотека С++ |
|
|
(ОК-1, |
|
8.1. Библиотека стандартных шаблонов |
|
|
ОК-6, |
|
8.1.1. Общие сведения (понятия контейнеров, |
|
|
ОК-12, |
|
итераторов и объектов-функций) |
|
|
ПК-2, |
|
8.1.2. Контейнеры (виды контейнеров, |
|
|
ПК-3, |
|
последовательные и ассоциативные контейнеры, |
|
|
ПК-4, |
|
адаптеры) |
|
|
ПК-5, |
|
8.1.3. Итераторы (итератор как обобщение указателя, |
|
|
ПК-6 ) |
|
классы итераторов) |
|
|
|
14- |
8.1.4. Алгоритмы (примеры алгоритмов с |
6 |
|
|
16 |
использованием итераторов: алгоритмы сортировки, |
|
|
|
|
|
||
|
|
алгоритмы, не изменяющие содержание контейнера, |
|
|
|
|
алгоритмы, изменяющие содержание контейнера) |
|
|
|
|
8.2. Библиотека ввода-вывода |
|
|
|
|
8.2.1. Потоки вывода. Вывод типов определяемых |
|
|
|
|
пользователем. |
|
|
|
|
8.2.2. Потоки ввода. Ввод типов определяемых |
|
|
|
|
пользователем. |
|
|
|
|
8.2.3. Форматирование в потоках ввода-вывода. |
|
|
|
|
8.2.4. Буферизация. |
|
|
|
|
Итого |
32 |
|
Лабораторные занятия – 32 часов (из учебного плана)
Раздел (тема), Код компетенц
ии
Тема1 – Тема 3
( ОК-1,
ОК-6, ОК- 8, ОК-12, ПК-2, ПК- 3, ПК-4, ПК-5, ПК- 6 )
Тема 4 ( ОК-1,
ОК-6, ОК- 8, ОК-12, ПК-2, ПК- 3, ПК-4, ПК-5, ПК- 6 )
Тема 5 ( ОК-1,
ОК-6, ОК- 8, ОК-12, ПК-2, ПК- 3, ПК-4, ПК-5, ПК- 6 )
№ занятия
1-3
4
5-8
|
Кол-во часов |
||
Содержание занятий и ссылки на рекомендуемую |
|
В |
|
|
интерак |
||
литературу |
всего |
||
тивной |
|||
|
|
||
|
|
форме |
|
Раздельная компиляция и пространства имен, |
|
|
|
Реализация и сдача программы задания № 1 |
|
|
|
|
6 |
3 |
Перегрузка функций, указатели на функции, перечисления, Реализация и сдача программы задания № 2
2 1
Классы. Реализация упрощенного григорианского календаря Реализация и сдача программы задания № 3
Классы. Перегрузка операций. Реализация матрицы и 8 4 вектора Реализация и сдача программы задания № 4
10