ФОНД ОЦЕНОЧНЫХ СРЕДСТВ ДЛЯ ПРОВЕДЕНИЯ ТЕКУЩЕГО КОНТРОЛЯ УСПЕВАЕМОСТИ, ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ ПО ИТОГАМ ОСВОЕНИЯ ДИСЦИПЛИНЫ



СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

Наименование тем, их содержание и объем

Курс 2  Семестр 4

№ п/п

Наименование раздела

(краткое содержание)

Объем на тематический раздел по видам учебной нагрузки, час

Лекции Практические занятия Лабораторные занятия Самостоятельная работа

1. Общие сведения о программировании на C++

  Понятие алгоритма. Его свойства и виды. Базовые алгоритмические конструкции. Основыне этапы разработки программы. Основы программной инженерии. Тестирование и отладка. Языки программирования. История создания и развития языка C++. Стандарты на C++. Знакомство с IDE Microsoft Visual Studio 2015. Структура программы. Основная функция main. Алфавит языка C++. Переменные и константы. Пространство имен. Основные типы данных. Спецификаторы типов. Константы и литералы. Ввод/вывод данных. Особенности архитектуры x86 и машинное представление чисел различных типов. 2   1 2

2. Выражения в C++

  Построение выражений в C++. Унарные и бинарные операции: арифметические, логические, сравнения, побитовые и др. Префиксная и постфиксная формы инкремента и декремента. Тернарная условная операция. Приоритет операций. Перечисляемые типы данных. Явное и неявное преобразование типов. 2   1 2

3. Условные операторы в C++

  Понятие составного оператора. Условный оператор. Оператор множественного выбора. Использование оператора break в переключателях. Применение операторов ветвления в прикладном программировании. Вложенные условия. 2   3 4

4. Циклы в C++

  Циклы с параметром for. Циклы с предусловием while. Циклы с постусловием do while. Безусловные циклы. Совместные циклы. Использование операторов break и continue в циклах. Вложенные циклы. Применение циклов для итерационных вычислений. 2   3 4

5. Функции в C++

  Объявление функций. Прототипы функций. Вызов функций и возврат значений. Отличия от макросов. Передача параметров в функции. Формальные и фактические параметры. Глобальные и локальные переменные. Понятие области видимости и времени жизни переменной. Передача параметров по значению и по ссылке. Определение аргументов функции по умолчанию. Перегрузка функций. Встраивание функций как эффективный метод оптимизации программ. Рекурсия. Примерение процедурного программирования для расчета и анализа различных электрических цепей. 2     2

6. Одномерные массивы в C++

  Объявление и инициализация. Доступ к элементам массива. Работа с массивами данных: удаление, вставка и перестановка элементов массива. Передача массивов в функции. Применение массивов для анализа и моделирования электрических цепей. 2   4 5

7. Двумерные и многомерные массивы в C++

  Объявление и инициализация. Передача массивов в функции. Работа с массивами данных: удаление, вставка и перестановка элементов массива. Многомерные массивы. Применение массивов для представления графов электрических схем.   2   4 5

8. Динамически распределяемая память

  Понятие указателя. Размещение и удаление указателя. Ссылки. Связь между массивами и указателями. Передача указателей в функции. Размещение и освобождение динамических массивов данных. Многомерные динамические массивы. Указатели на функции. Динамические строки с завершающим нулем. Применение динамических массивов для реализации промышленных протоколов взаимодействия с типовым периферийным оборудованием в супервизорных системах управления распределенными энергетическими системами. 2   4 5

9. Файловая организация программ на C++

  Понятие заголовочного файла. Макрокоманда include. Создание и использование пользовательских библиотек функций. Стандартные библиотеки C++. 2     1

10. Численное решение систем линейных алгебраических уравнений

  Математическое моделирование и вычислительный эксперимент. Численные методы как раздел современной математики. Роль компьютерно-ориентированных численных методов в исследовании сложных математических моделей, моделировании и анализе электрических цепей. Постановка задачи. Точные методы решения систем линейных алгебраических уравнений: метод Гаусса, метод Гаусса с выбором главного элемента, метод Гаусса-Жордана. Вычисление определителя матрицы. Вычисление обратной матрицы. Понятие нормы вектора и матрицы. Итерационные методы решения систем линейных алгебраических уравнений: метод Якоби (простых итераций), метод Зейделя. Сходимость итерационных методов. 2     2

11. Численное решение нелинейных алгебраических уравнений и их систем

  Решение алгебраических уравнений. Постановка задачи. Этапы отделения и уточнения корней. Метод половинного деления. Метод Ньютона. Метод хорд. Комбинированный метод. Метод простых итераций. Решение систем нелинейных уравнений. Постановка задачи. Метод Ньютона. Метод простых итераций. Метод Зейделя. Сходимость итерационных методов. Применение численных методов в задачах энергетики. 2   10 11

12. Потоки и файлы в C++

  Файловый ввод/вывод с использованием потоков. Создание, удаление и модификация файлов. Открытие и закрытие файла. Функции для обмена данными с файлами. Чтение и запись данных в файл. Ввод/вывод массивов данных. Применение файловых операций для представления информации в требуемом формате. 2   4 5

13. Алгоритмы сортировки массивов и поиска данных

  Сортировка методом простого выбора, простого обмена, методом прямых вставок, методом слияния, сортировка Хоара. Алгоритмы поиска данных в упорядоченных и неупорядоченных массивах: линейный поиск, барьерный поиск, метод половинного деления, прямой поиск. Обход графов: поиск в ширину и глубину. Применение алгоритмов поиска для анализа топологии электрических цепей. 2     2

14. Динамические структуры данных

  Поля данных. Указатель на структуру. Создание динамических структур данных. Объединения и битовые поля. Реализация стека, очереди и деревьев в C++. Списки. Применение динамических структур данных в прикладном программировании. 2     2

15. Введение в объектно-ориентированное программирование

  Понятие классов, объектов, полей, методов и свойств. Абстракция данных. Наследование, инкапсуляция и полиморфизм. Доступ к членам класса. Конструкторы и деструкторы. Указатели на объекты. Использование классов. 2     2

16. Конструкторы классов и перегрузка операций в C++

  Объявление и определение класса. Инициализация класса. Виды конструкторов. Перегрузка конструкторов. Передача экземпляров класса в функции. Неявный указатель this. Преобразования, определяемые классом. Создание пользовательских типов данных. Дружественные функции. Перегрузка операторов new и delete. Перегрузка инкремента и декремента. Перегрузка бинароных и унарных операций. Создание типовых классов, описывающих объекты профессиональной деятельности. 2     2

17. Наследование и полиморфизм

  Построение иерархии наследования. Доступ к базовым классам. Статические члены данных. Раннее и позднее связывание. Виртуальные функции. Абстрактные классы и чисто виртуальные функции. Подходы к построению иерархии классов при моделировании электрических цепей и проектировании автоматизированных систем управления и контроля распределенных энергетических объектов. 2     2
  ВСЕГО 34   34 58

 


 

ФОНД ОЦЕНОЧНЫХ СРЕДСТВ ДЛЯ ПРОВЕДЕНИЯ ТЕКУЩЕГО КОНТРОЛЯ УСПЕВАЕМОСТИ, ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ ПО ИТОГАМ ОСВОЕНИЯ ДИСЦИПЛИНЫ

Перечень контрольных вопросов (типовых заданий)

№ п/п Наименование раздела дисциплины Содержание вопросов (типовых заданий)
1. Общие сведения о программировании на C++ 1. История развития языка программирования C++. Стандарты на C++. 2. Основные этапы сборки программы в среде Microsoft Visual Studio (C++). 3. Правила, предъявляемые к идентификаторам в программе на языке C++. Венгерская нотация. 4. Понятие переменной в C++. Основные типы данных. 5. Алфавит языка, литераты, константы и зарезервированные слова в C++. 6. Структура программы на C++. Применение комментариев в программе. 7. Ввод информации в C++ с применением оператора cin (iostream). 8. Вывод информации в C++ с применением оператора cout (iostream). 9. Форматный ввод информации в C++. Назначение флагов строки формата ввода/вывода. 10. Форматный вывод информации в C++. Назначение флагов строки формата ввода/вывода. 11. Машинное представление чисел различных типов в ЭВМ.
2. Выражения в C++ 12. Понятие выражения в C++. Операции, операнды и операторы. Постфиксная и префиксная формы записи операций. 13. Арифметические операции в C++. 14. Операции инкремента и декремента в префиксной и постфиксной формах записи. 15. Логические операции в C++. 16. Побитовые опреации в C++. 17. Особенности операций присваивания и деления в C++. 18. Приоритет операций в C++. 19. Тернарный арифметический условный оператор в C++. 20. Перечисляемый тип данных в C++. 21. Явное и неявное приведение типов в C++.
3. Условные операторы в C++ 22. Условный оператор в C++. Полная и сокращенная запись. 23. Оператор множественного выбора в C++. 24. Вложенные условия в C++. Замена оператора множественного выбора вложенными условными операторами. 25. Блок-схемы фрагментов с ветвлениями и вложенными операторами множественного выбора. 26. Применение оператора break в операторе множественного выбора.
4. Циклы в C++ 27. Цикл с предусловием while в C++. 28. Цикл с постусловием do … while в C++. 29. Цикл с параметром в C++. 30. Вложенные циклы в C++. 31. Применение оператора continue в циклах. 32. Применение оператора break в циклах.
5. Функции в C++ 33. Понятие функции в C++. Объявление прототипа и определение функции. Вызов функции и возврат значений. 34. Понятие локальных и глобальных переменных. Область видимости. 35. Передача параметров в функцию и возврат значений из функции. 36. Функции с параметрами по умолчанию в C++. 37. Перегрузка функций в C++. 38. Применение встраиваемых функций в C++. 39. Макросы в C++ и их отличие от функций. 40. Понятие рекурсии в C++. Примеры рекурсивных функций.
6. Одномерные массивы в C++ 41. Объявление и инициализация одномерного массива в C++. 42. Работа с одномерными массивами в C++. Ввод и вывод значений элементов массивов. 43. Вставка в одномерный массив заданного элемента. 44. Удаление из одномерного массива заданного элемента. 45. Поиск в одномерном массиве заданного элемента. 46. Передача одномерных массивов в функции в C++.
7. Двумерные и многомерные массивы в C++ 47. Объявление и инициализация двумерного массива в C++. 48. Работа с двумерными массивами в C++. Ввод и вывод значений элементов массива. 49. Вставка в двумерный массив заданной строки. 50. Удаление из двумерного массива заданного столбца. 51. Поиск в двумерном массиве заданного элемента. 52. Передача двумерных массивов в функции в C++.
8. Динамически распределяемая память 53. Понятие указателя в C++. Размещение и удаление указателя. Ссылки. 54. Связь между массивами и указателями в C++. Вычисление адреса элемента массива. 55. Передача указателей в функции. Ссылочные параметры. 56. Размещение и освобождение одномерных динамических массивов данных в языке C++. 57. Многомерные динамические массивы в C++. Размещение и освобождение памяти. 58. Динамические строки с завершающим нулем в C++. 59. Стандартные функции для работы со строками с завершающим нулем в C++.
9. Файловая организация программ на C++ 60. Файловая организация программ на C++. Понятие заголовочного файла. Макрокоманда include. 61. Создание и использования пользовательской библиотеки функций для определения частотных характеристик электрической цепи.
10. Численное решение систем линейных алгебраических уравнений 62. Понятие математического моделирования и вычислительного эксперимента. 63. Точные методы решения систем линейных алгебраических уравнений: метод Гаусса. 64. Точные методы решения систем линейных алгебраических уравнений: метод Гаусса с выбором главного элемента. 65. Точные методы решения систем линейных алгебраических уравнений: метод Гаусса-Жордана. 66. Вычисление определителя матрицы. 67. Вычисление обратной матрицы. 68. Понятие нормы вектора и матрицы. Способы вычисления. 69. Итерационные методы решения систем линейных алгебраических уравнений: метод Якоби (простых итераций). 70. Итерационные методы решения систем линейных алгебраических уравнений: метод Зейделя.
11. Численное решение нелинейных алгебраических уравнений и их систем 71. Решение алгебраических уравнений. Постановка задачи. Этапы отделения и уточнения корней. 72. Решение алгебраических уравнений. Метод половинного деления. 73. Решение алгебраических уравнений. Метод Ньютона. 74. Решение алгебраических уравнений. Метод хорд. 75. Решение алгебраических уравнений. Комбинированный метод. 76. Решение алгебраических уравнений. Метод простых итераций. 77. Решение систем нелинейных уравнений. Метод Ньютона. 78. Решение систем нелинейных уравнений. Метод Зейделя.
12. Потоки и файлы в C++ 79. Файловый ввод с использованием потоков в C++. 80. Файловый вывод с использованием потоков в C++. 81. Создание и удаление файла в C++. 82. Открытие и закрытие файла в C++. Работа с файлом. 83. Чтение и запись данных в файл в C++. 84. Манипуляторы потоков в C++. 85. Работа с текстовыми файлами в C++.
13. Динамические структуры данных 86. Структура в C++. Размещение в памяти и освобождение памяти. 87. Объединения в C++. 88. Битовые поля в C++. 89. Понятие стека. Пример реализации стека в C++. 90. Понятие очереди. Пример реализации очереди в C++. 91. Понятие дерева. Виды деревьев. Пример реализации дерева в C++. 92. Однонаправленные списки в C++. 93. Двунаправленные списки в C++.
14. Алгоритмы сортировки массивов и поиска данных 94. Сортировка массива методом простого выбора. 95. Сортировка массива методом простого обмена. 96. Сортировка массива методом прямых вставок. 97. Сортировка массива методом слияния. 98. Сортировка массива методом Хоара. 99. Линейный и барьерный поиск данных в массиве. 100.Поиск в массиве методом половинного деления.
15. Введение в объектно-ориентированное программирование 101.Абстракция данных в объектно-ориентированном программировании. 102.Понятие наследования, инкапсуляции и полиморфизма. 103.Создание класса в C++. Методы поля и свойства класса. 104.Открытые и закрытые элементы класса. Уровни доступа. 105.Конструкторы и деструкторы в C++.
16. Конструкторы классов и перегрузка операций в C++ 106.Виды конструкторов в C++. 107.Объявление и определение экземпляра класса в C++. 108.Передача экземпляров класса в функции в C++. 109.Указатели на экземпляры классов в C++. Особенности классов с динамически распределяемой памятью. 110.Перегрузка конструкторов классов в C++. 111.Перегрузка унарных операций в C++. 112.Перегрузка бинарных операций в C++. 113.Перегрузка операторов new и delete в C++. 114.Перегрузка инкремента и декремента в C++. 115.Применение дружественных функций при перегрузке операций в C++.
17. Наследование и полиморфизм 116.Применение механизма наследования при построении иерархии классов в C++. Доступ к базовым классам. 117.Статические члены данных классов в C++. 118.Механизм раннего и позднего связывания в C++. 119.Виртуальные функции классов в C++. Пример применения. 120.Виртуальные деструкторы классов в C++. 121.Абстрактные классы в C++. Пример использования.

 


 

ОСНОВНАЯ И ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА

Перечень основной литературы

1. Конова, Е.А. Алгоритмы и программы. Язык С++. [Электронный ресурс] / Е.А. Конова, Г.А. Поллак. – Электрон. дан. – СПб.: Лань, 2016. – 384 с. – Режим доступа: http://e.lanbook.com/book/72986 – Загл. с экрана.

2. Программирование на языке высокого уровня С/С++ [Электронный ресурс]: конспект лекций/ – Электрон. текстовые данные. – М.: Московский государственный строительный университет, Ай Пи Эр Медиа, ЭБС АСВ, 2016.– 140 c. – Режим доступа: http://www.iprbookshop.ru/48037. – ЭБС «IPRbooks», по паролю

3. Рубанов, В. Г. Численные методы и оптимизация : учеб. пособие / В. Г. Рубанов, Д. В. Величко. – 2-е изд. стер. – Белгород : Изд-во БГТУ им. В. Г. Шухова, 2008.– 160 с.

4. Киреев, В.И. Численные методы в примерах и задачах. [Электронный ресурс] / В.И. Киреев, А.В. Пантелеев. – Электрон. дан. – СПб.: Лань, 2015. – 448 с. – Режим доступа: http://e.lanbook.com/book/65043 – Загл. с экрана.

 


Дата добавления: 2019-07-15; просмотров: 121; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!