Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отвкты на ГОСЫ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4.89 Mб
Скачать

50. Понятие математического (программного) обеспечения эвм. Инструментальное математическое обеспечение. Примеры.

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

Математическое обеспечение – это набор программ, позволяющих решать на ЭВМ пользовательские задачи. Применяется для решения конкретных практических задач.

Использует:

  • программы

  • программные системы – набор программ, работающих с одной обл. данных

  • программные комплексы – набор программ, работающих с общими данными под общим управлением.

Разновидности мат.обеспечения:

прикладное – непосредственно обеспечивает решение конкретных прикладных задач, выполнение необходимых пользователям работ: редактирование текстов, рисование картинок, обработку информационных массивов и т.д.;

системное – разработка, поддержка и модификация уже существующих программ (операционные системы, драйверы и программы, выполняющие различные вспомогательные функции, например создание копий используемой информации, проверку работоспособности устройств компьютера и т.д.);

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

Грани между указанными тремя классами программ весьма условны, например в состав программы системного характера может входить редактор текстов, т.е. программа прикладного характера.

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

Библиотечные программы характеризуются:

  • Скорость выполнения расчетов

  • Разнообразие ресурсов

  • Простота и дружелюбность интерфейса

  • Работоспособность – на неверный вопрос не дают неверных ответов

  • Мобильность, портабельность – работают с различными архитектурами

Пример:

  • Библиотека *.lib;

  • Пакеты программ, реализующих решение СЛАУ,СЛУ, СОДУ численными приближенными методами.

51. Поняття обчислювальної складності алгоритму. Параметри аналізу обчислювальної складності. Поняття обчислювальної складності

   Основними мірами обчислювальною складності алгоритмів є:

  • часова складність, яка характеризує час, необхідний для виконання алгоритму на даній машині; цей час, як правило, визначається кількістю операцій, які потрібно виконати для реалізації алгоритму;

  • ємнісна складність, яка характеризує пам'ять, необхідну для виконання алгоритму.Часова та ємнісна складність тісно пов'язані між собою. Обидві є функціями від розміру вхідних даних. Надалі обмежимося тільки аналізом часової складності.

   Складність алгоритму описується функцією f(n), де n - розмір вхідних даних. Важливе теоретичне і практичне значення має класифікація алгоритмів, яка бере до увагу швидкість зростання цієї функції.    Визначення. Кажуть, що f(n) = O (g(n)), якщо існує така константа с > 0, що для будь-якого n виконується нерівність: |f(n)| Ј с |g(n)|.Оскільки і розмір вхідних даних, і кількість операцій є величинами невід'ємними (а фактично - додатніми), модулі можна опустити.

   Виділяють такі основні класи алгоритмів:

  • логарифмічні: f(n) = O (log2n);

  • лінійні: f(n) = O (n);

  • поліноміальні: f(n) = O (nm); тут m - натуральне число, більше від одиниці; при m = 1 алгоритм є лінійним;

  • експоненційні: f(n) = O (an); a - натуральне число, більше від одиниці.

   Для однієї й тієї ж задачі можуть існувати алгоритми різної складності. Часто буває і так, що більш повільний алгоритм працює завжди, а більш швидкий - лише за певних умов.

   Приклад. Часто зустрічається задача пошуку в масиві, яка неформально формулюється таким чином: в заданій послідовності чисел знайти елемент з певним значенням.    В загальному випадку застосовується алгоритм послідовного пошуку, який полягає в послідовному перегляді всіх елементів і порівнянні їх з потрібним значенням. Легко бачити, що цей алгоритм має лінійну часову складність.    Але, якщо заздалегідь відомо, що послідовність упорядкована за зростанням або за спаданням, можна застосувати інший алгоритм - алгоритм половинного ділення. Послідовність ділиться на дві рівні частини. Оскільки послідовність упорядкована, можна визначити, в якій частині знаходиться потрібний елемент. Після цього процедура повторюється: потрібна частина знову ділиться навпіл і т.п. Цей алгоритм є логарифмічним.    Будемо називати часовою складністю задачі часову складність найбільш ефективного алгоритму для її вирішення.