Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на экзамен.docx
Скачиваний:
103
Добавлен:
17.11.2019
Размер:
1.58 Mб
Скачать

30 (17). Категории программных ошибок.

Ответ: см. ответ на вопрос 23.

31. Стандартные и пользовательские библиотеки С++

Стандартная Библиотека – это коллекция классов и функций, написанных на базовом языке.

Стандартная Библиотека поддерживает несколько основных контейнеров, функций для работы с этими контейнерами, объектов-функции, основных типов строк и потоков (включая интерактивный и файловый ввод-вывод), поддержку некоторых языковых особенностей, и часто используемые функции для выполнения таких задач, как, например, нахождение квадратного корня числа. Стандартная Библиотека языка C++ также включает в себя спецификации стандарта ISO C90 стандартной библиотеки языка Си. Функциональные особенности Стандартной Библиотеки объявляются внутри пространства имен std.

Основные стандартные библиотеки:

  • fstream

  • iomanip

  • ios

  • iosfwd

  • iostream (ostream, istream)

  • sstream

  • streambuf

Пользовательские библиотеки – это библиотеки, написанные пользователем. Для создания пользовательской библиотеки сначала создается файл расширения .h с сигнатурами нужных функций (так же возможно подключение библиотек), после в файле с расширением .cpp подключается созданный файл .h и реализуются его функции. После в файл с функцией main подключается созданный файл с расширением .h.

МДК 04.01. Построение и безопасность распределенных информационных систем

1. Метод ветвей и границ для детерминированных задач теории принятия решений.

Ответ:

Детерминированные задачи – это задачи с детерминированными исходными данными. Детерминированными называются такие исходные данные, когда при составлении модели их точные значения известны.

Метод ветвей и границ – это комбинаторный метод, т.е. упорядоченный перебор вариантов и рассмотрение лишь тех из них, которые по некоторым признакам оказываются перспективными. Он имеет достаточно широкую сферу применения, поэтому рассмотрим его общую схему.

Формальное описание метода ветвей и границ (алгоритм Литтла) для задачи коммивояжера:

  1. В каждой строке матрицы расстояний находится min элемент и вычитается из всех элементов соответствующей строки. Получается матрица, приведенная по строкам.

  2. Аналогично приводится матрица по столбцам. Получается матрица, приведенная по строкам и столбцам.

  3. Суммируя при приведении минимальные элементы, получим константу приведения, которая будет нижней границей множества всех допустимых гамильтоновых контуров.

  4. После находятся степени нулей для приведенной матрицы (сумма min элементов строки и столбца, соответствующих этому 0) и выбирается дуга (i0, j0), для которой степень нулевого элемента достигает максимального значения.

  5. Множество всех гамильтоновых контуров разбивается на 2 подмножества, одно из которых содержит дугу (i0, j0) 2-ое эту дугу не содержит.

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

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