9. Зачет - методика его проведения, теоретический минимум и типовые задания. (Семинары)
Описание файла
Файл "9. Зачет - методика его проведения, теоретический минимум и типовые задания." внутри архива находится в папке "Семинары". PDF-файл из архива "Семинары", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрЯзык программирования Си++Иванов А.П., Князева О.С.Семинар 9. Зачет: методика его проведения,теоретический минимум и типовые задания.Зачет проводится в практикуме и состоит из двух частей: теоретической и практической.1. Теоретическая частьПроверка теоретических знаний производится в виде опроса по любым вопросам,входящим в программу второго семестра и теоретический минимум. Вопрос, как правило,формулируется в виде просьбы написать на листе бумаги короткий (2-5 строк) код,иллюстрирующий то или иное понятие языка программирования.
Обычно задается отдвух до пяти вопросов. Студенты, не сдавшие теоретическую часть, автоматически недопускаются к выполнению практической части зачета.Ниже приводится список вопросов теоретического минимума знаний, которые студентдолжен иметь для получения зачета:1. Что такое: инкапсуляция, наследование, полиморфизм? Пояснить механизм реализациикаждого из принципов объектно-ориентированного программирования в синтаксисе языкапрограммирования Си++.2.
Классы. Конструкторы, деструктор. (Определить класс, определить конструктор и деструкторв нем). Может ли в классе быть несколько деструкторов? Несколько конструкторов?3. Перегрузка операторов и функций. Особенности перегрузки и возврата значений в операторах«=» и «+». Перегрузка оператора «+=».4. Перегрузка операторов ввода и вывода, работающих с потоками Си++.5. Перегрузка оператора приведения типа.6. Оператор «::». Определение тела метода вне класса.7. Полиморфизм, виртуальные функции. Проиллюстрировать разницу в работе обычного ивиртуального методов.8.
Виртуальный деструктор. Зачем применяется?9. Динамическая память. Операторы new и delete. Выделить память под 100 вещественныхчисел, потом ее освободить.10. Дружественные классы и функции (friend). Зачем применяются?11. Значения аргументов функций по умолчанию.
Как задать? Всегда ли можно ли задать поумолчанию первый аргумент функции?12. Одиночное наследование. Проиллюстрировать работу унаследованного, переопределенного инового методов в производном классе.13. Инкапсуляция. Права доступа к членам класса: private, protected, public.Проиллюстрировать разницу.14. Права доступа при наследовании класса: private, protected, public.Проиллюстрировать разницу.08.11.20111Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр15. Множественное наследование.16.
Чисто виртуальные функции. Что такое? Зачем применяются?17. Абстрактные классы.18. Передача и возврат параметров в функции по значению, по ссылке, по указателю.19. Потоки ввода–вывода Си++ cin и cout и их использование. Манипуляторы потоков endl,flush. Смена формата вывода целых и вещественных чисел.20. Потоки ввода–вывода Си++, определяемые в заголовочных файлах: <iostream>,<fstream>, <sstream>. Назначение, особенности использования.21. Файловый ввод–вывод в Си++.
Открытие потока, связанного с файлом на чтение, запись.Закрытие потока.22. Ссылки. Чем отличаются от указателей? Нужно ли инициализировать ссылки при ихобъявлении? Работа оператора присваивания со ссылкой. Можно ли вернуть ссылку изфункции на переменную, объявленную в этой функции?23. Статические методы и поля класса.24. Указатели. Операторы взятия адреса и взятия значения по адресу.25. Пространства имен (namespace, using).
Пространство имен std.26. Обобщенное программирование. Шаблоны функций.27. Обобщенное программирование. Шаблоны классов.28. Строковые классы Си++ (string) и их использование. Инициализация значения, определениедлины строки, поиск символа, поиск подстроки. Присваивание строк.29. Библиотека стандартных шаблонов (STL): контейнер vector. Инициализация, определениеразмера, считывание значения элемента, изменение значения элемента.30. Библиотека стандартных шаблонов (STL): контейнер list. Инициализация, определениеразмера, считывание значения элемента, изменение значения элемента.31. Библиотека стандартных шаблонов (STL): контейнер set. Инициализация, определениеразмера, считывание значения элемента, изменение значения элемента.32. Библиотека стандартных шаблонов (STL): контейнер map.
Инициализация, определениеразмера, считывание значения элемента, изменение значения элемента.33. Библиотека стандартных шаблонов (STL): поиск элемента в контейнере и сортировкаэлементов контейнера.34. Explicit-конструкторы. В каких ситуациях применяются?35. Обработка исключений Си++.
Ключевые слова try, throw, catch, и их использование.08.11.20112Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр2. Практические заданияПрактические навыки программирования проверяются на одной типовой задаче, подобнойтем, что выполнялись в течение семестра. Студент должен ее выполнить в течение однойпары (два академических часа) от начала до конца.Рекомендуется основную массу заданий выдавать по образцу семинаров 1, 3, 6, 7: Создание класса, перегрузка арифметических операторов, ввод-вывод. Взаимодействие классов: матрицы и вектора. Динамическая память. Наследование, виртуальные функции. Создание шаблонного класса. Контейнеры библиотеки стандартных шаблонов. Работа с файлами.3.
Примеры практических заданий1. Создайте класс систем из трех линейных уравнений с тремя неизвестными вида Ax=B(где A – квадратная матрица nxn, x – столбец из x1, x2 ... xn, B – это столбецb1... bn) . Реализуйте в нем метод решения данной системы методом Гаусса. МетодГаусса состоит в приведении с помощью элементарных операций (умножение строкина число, сложение, вычитание перестановка строк) системы уравнений к системе стреугольной матрицей, т.е. к системе видакоторая уже решается тривиально.2. Создать функцию обрабатывающую текстовый файл. В файле записаны выражениявида:sin’(2*x) =tg’(1/x) =Функция должна распознавать записанные тригонометрические функции, братьпроизводную и создать новый файл, вида:sin’(2*x) = 2*cos(2*x)tg(1/x) = -1/x^2*1/cos^2(1/x)В файле могут быть записаны только тригонометрические функции sin, cos, tg, ctgот выражений вида (a/x^b или a*x^b).
Функция принимает имена входного ивыходного файлов. Работа с файлом должна осуществляться с помощью функцийбиблиотеки <fstream>.3. Создайте класс, работающий с конфигурационными файлами вида:Temperature = 273.0Pressure = 1e+5N = 100kB = 1.38e-23Save result = trueРеализуйте в нем метод открытия файла. Создайте дружественную шаблоннуюфункцию, которая в качестве аргумента принимает строку – название параметра вконфигурационном файле, возвращает его значение (которое может быть, целым,вещественным или булевским типом). Работа с файлом должна осуществляться спомощью функций библиотеки <fstream>.08.11.20113Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр4. Создать функцию обрабатывающую текстовый файл.
В файле записаны выражениявида:sin(3.5) =сtg(1.2) =Функция должна вычислить результат каждого выражения и создать новый файл вида:sin(3.5) = -0.3508сtg(1.2) = 0.3888В файле могут быть записаны только тригонометрические функции sin, cos, tg, ctg.Функция принимает имена входного и выходного файлов. Работа с файлом должнаосуществляться с помощью функций библиотеки <fstream>.5.
Создать функцию обрабатывающую текстовый файл. В файле записана таблица(произвольной размерности) пар значений (хi и yi) некоторой физической величины,при этом значения хi – упорядочены по возрастанию. Пользователь вводит некотороезначение х, функция должна вернуть соответствующий этому значению y, которыйдолжен быть получен методом линейной интерполяции табличных значений.Функция принимает имена входного файла и величину х. Работа с файлом должнаосуществляться с помощью функций библиотеки <fstream>.6. Создать класс матриц произвольного (но не изменяемого для непустой матрицы)размера, реализовать в нем методы транспонирования матрицы, считывания матрицыиз файла, записи матрицы в файл.7.
Создать калькулятор для класса матриц произвольного размера, записанных в файле.реализовать для матриц методы сложения, вычитания, умножения, присваивания,пользователь указывает два входных файла, знак операции и выходной файл.8. Создать классы: трехмерный вектор и матрица 3х3. Определить операции сложения,вычитания, умножения на число, скалярного произведения и произведения матрицы навектор и вектора на матрицу.9. Создать классы: 6-мерный вектор и производный от него класс: симметричная матрица3х3. Определить для них операции присваивания, сложения, вычитания, умножения начисло, умножения, при этом методы матрицы должны максимально использоватьсоответствующие методы базового класса.10. Создать класс матриц произвольного размера.
Реализовать в нем методы удалениязаданной строки или столбца.11. Создайте класс n-мерных векторов. Определите в нем конструктор, деструктор,конструктор копирования. Перегрузите операции [] (получении i – координатывектора), = (присваивание). Перегрузите операции ввода и вывода. Сделайте методдополнения вектора новым элементом, записываемым в конец вектора.12. Создайте класс рациональных чисел.