9. Зачет - методика его проведения, теоретический минимум и типовые задания. (972465)
Текст из файла
Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрЯзык программирования Си++Иванов А.П., Князева О.С.Семинар 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. Создайте класс рациональных чисел.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.