Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика - ответы на билеты.doc
Скачиваний:
280
Добавлен:
11.09.2019
Размер:
945.15 Кб
Скачать

21. Понятие алгоритма. Свойства алгоритмов, испол­нители алгоритмов. Автоматическое исполнение алго­ритма. Способы описания алгоритмов.

Алгоритм – это точное предписание исполнителю, задающее вычислительный процесс, приводящее за конечное число шагов к искомому результату. Классы алгоритмов: 1) Вычислительные, работают со сравнительно простыми типами данных (числа, матрицы), но сам процесс вычисления может быть долгим и сложным. 2) Информационные, представляют собой набор сравнительно простых процедур, но работающих с большим объемом информации (алгоритмы баз данных). 3) Управляющие, характеризуются тем, что данные к ним поступают от внешних процессов, которыми они управляют.

Разработка алгоритма решения задачи называется алгоритмизацией (расчленение сложных действий на все более простые). Исполнитель алгоритма – это тот объект или субъект, для управления которым составлен алгоритм. Система команд исполнителя (ски) – это вся совокупность команд, которые исполнитель умеет выполнять (понимает).

Свойства алгоритма: 1) понятность (все указания понятны исполнителю); 2) определенность (каждое указание однозначно определяет действие); 3) массовость (применимость алгоритма к различным наборам исходных данных и аргументов); 4) выполнимость (результат достигается за конечное число шагов).

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

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

Методы разработки алгоритма:

Метод частных цепей (состоит в сведении трудной задачи к последовательности более простых задач),

Метод подъема (его суть: алгоритм начинается с принятия начального предположения или построения начального решения задачи. Затем начинается насколько возможно быстрое продвижение «вверх» от начального уровня по направлению к лучшим решениям. Когда алгоритм достигает точки, из которой больше невозможно двигаться «наверх», он останавливается),

Алгоритмы с отходом назад (алгоритм перебора вариантов, ищут решения не по заданным правилам, а методом проб и ошибок),

Алгоритмы ветвей и границ (они исследуют древовидную модель пространства решений и ориентированы на поиск в некотором смысле оптимального решения из конечного множества возможных решений-вариантов).

Алгоритм должен быть формализован по некоторым правилам посредством конкретных изобразительных средств. К ним относятся следующие способы записи алгоритмов: словесный, формульно-словесный, графический, язык операторных схем, алгоритмический язык. Наибольшее распространение благодаря своей наглядности получил графический (блок-схемный) способ записи алгоритмов.

Блок-схема - графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций. Перечень символов, их наименование, отображаемые ими функции, форма и размеры определяются ГОСТами.

При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:

линейный; ветвящийся; циклический.

Линейный алгоритм - вычислительный процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов.

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

Циклический - вычислительный процесс, содержащий один или несколько циклов. По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений. Количество повторений последних зависит от соблюдения некоторого условия, задающего необходимость выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет о цикле с предусловием, или в конце — тогда это цикл с постусловием.

Изображение алгоритма в виде блок-схемы

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

Блок начала-конца алгоритма (рис. 1.1). Надпись на блоке: "начало" ("конец").

Блок ввода-вывода данных (рис. 1.2). Надпись на блоке: слово "ввод" ("вывод" или "печать") и список вводимых (выводимых) переменных.

Рис. 1.1. Блок начала-конца алгоритма

Рис. 1.2. Блок ввода-вывода данных

Блок решения или арифметический (рис. 1.3). Надпись на блоке: операция или группа операций. Условный блок (рис. 1.4). Надпись на блоке: условие. В результате проверки условия осуществляется выбор одного из возможных путей (ветвей) вычислительного процесса. Если условие выполняется, то следующим выполняется этап по ветви "+", если условие не выполняется, то выполняется этап по ветви "–".

Рис. 1.3. Арифметический блок

Рис. 1.4. Условный блок