Слайд 1Алгоритмы и способы их описания
Подготовил преподаватель
Бурняшева Ю.В.
Государственное бюджетное профессиональное образовательное учреждение
Краснодарского края «Краснодарский монтажный техникум»
Слайд 2Понятие алгоритма
Определение 1:
Алгоритм - это система точных и понятных предписаний о
содержании и последовательности выполнения конечного числа действий, необходимых для решения любой задачи данного типа.
Определение 2:
Алгоритм - это правило, предписывающее последовательность действий над входной информацией и приводящее к результату.
Слайд 3Понятие алгоритма
Формальный характер предписаний (команд алгоритма), т.е. их независимость от содержания,
вкладываемого в используемые в операциях числа, дает возможность их применения для любых исходных данных.
Ключевые понятия.
Команда – это указание исполнителю совершить некоторое действие.
Исполнитель (вычислитель) – устройство или живой существо, которое выполняет по определенным правилам составленный алгоритм. Исполнитель, который не понимает цели алгоритма, называется формальным исполнителем.
Слайд 4Свойства алгоритма.
1. Универсальность (массовость) - применимость алгоритма к различным наборам исходных
данных.
2. Дискретность - процесс решения задачи по алгоритму разбит на отдельные действия.
3. Конечность - каждое из действий и весь алгоритм в целом обязательно завершаются.
4. Результативность - по завершении выполнения алгоритма обязательно получается конечный результат.
5. Выполнимость (эффективность) - результата алгоритма достигается за конечное число шагов.
6. Детерминированность (определенность) - алгоритм не должен содержать предписаний, смысл которых может восприниматься неоднозначно. Т.е. одно и то же предписание после исполнения должно давать один и тот же результат.
7. Последовательность – порядок исполнения команд должен быть понятен исполнителю и не должен допускать неоднозначности.
Слайд 5Классы алгоритмов
- вычислительные алгоритмы, работающие со сравнительно простыми видами данных, такими
как числа и матрицы, хотя сам процесс вычисления может быть долгим и сложным;
- информационные алгоритмы, представляющие собой набор сравнительно простых процедур, работающих с большими объемами информации (алгоритмы баз данных);
- управляющие алгоритмы, генерирующие различные управляющие воздействия на основе данных, полученных от внешних процессов, которыми алгоритмы управляют.
Классификация алгоритмов по типу передачи управления:
Основные (главные выполняемые программы) и вспомогательные (подпрограммы). Вспомогательный алгоритм должен быть снабжен таким заголовком, который позволяет вызывать этот алгоритм из других алгоритмов (например, основных).
Слайд 6Задание алгоритма
Для задания алгоритма необходимо описать следующие его элементы:
набор объектов, составляющих
совокупность возможных исходных данных, промежуточных и конечных результатов;
правило начала;
правило непосредственной переработки информации (описание последовательности действий);
правило окончания;
правило извлечения результатов.
Слайд 7Способы описания алгоритмов
Вербальный (словесный), когда алгоритм описывается на человеческом языке;
Графический,
когда алгоритм описывается с помощью набора графических изображений.
Символьный, когда алгоритм описывается с помощью специального набора символов (специального языка);
Слайд 8Словесная форма записи алгоритмов обычно используется для алгоритмов, ориентированных на исполнителя-человека.
Команды такого алгоритма выполняются в естественной последовательности, если не оговорено противного.
Графическая запись с помощью блок-схем осуществляется рисованием последовательности геометрических фигур, каждая из которых подразумевает выполнение определенного действия алгоритма. Порядок выполнения действий указывается стрелками. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом.
Слайд 9Блок-схемы
Преимущества:
наглядность: каждая операция вычислительного процесса изображается отдельной геометрической фигурой.
графическое изображение
алгоритма наглядно показывает разветвления путей решения задачи в зависимости от различных условий, повторение отдельных этапов вычислительного процесса и Другие детали.
Слайд 11Пример блок-схемы
Алгоритм нахождения суммы 10-ти чисел
Слайд 12Правила создания блок-схем
Линии, соединяющие блоки и указывающие последовательность связей между ними,
должны проводится параллельно линиям рамки.
Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз.
В блок может входить несколько линий, то есть блок может являться преемником любого числа блоков.
Из блока (кроме логического) может выходить только одна линия.
Логический блок может иметь в качестве продолжения один из двух блоков, и из него выходят две линии.
Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, когда одна линия подходит к другой и слияние их явно выражено, точку можно не ставить.
Схему алгоритма следует выполнять как единое целое, однако в случае необходимости допускается обрывать линии, соединяющие блоки.
Слайд 13Структурные схемы алгоритмов
Последовательность двух или более операций;
выбор направления;
повторение.
Любой вычислительный
процесс может быть представлен как комбинация этих элементарных алгоритмических структур.
Слайд 14Виды алгоритмов
линейные;
ветвящиеся;
циклические.
Слайд 15Линейные алгоритмы
В линейном алгоритме операции выполняются последовательно, в порядке их записи.
Каждая операция является самостоятельной, независимой от каких-либо условий. На схеме блоки, отображающие эти операции, располагаются в линейной последовательности.
Слайд 16Пример линейного алгоритма
Составить блок-схему алгоритма вычисления арифметического выражения
у=(b2-ас)/(а+с)
Слайд 17Алгоритм с ветвлением
Алгоритм называется ветвящимся, если для его реализации предусмотрено несколько
направлений (ветвей). Каждое отдельное направление алгоритма обработки данных является отдельной ветвью вычислений.
Ветвление в программе — это выбор одной из нескольких последовательностей команд при выполнении программы. Выбор направления зависит от заранее определенного признака, который может относиться к исходным данным, к промежуточным или конечным результатам. Признак характеризует свойство данных и имеет два или более значений.
Слайд 18Ветвящийся процесс, включающий в себя две ветви, называется простым, более двух
ветвей — сложным.
Сложный ветвящийся процесс можно представить с помощью простых ветвящихся процессов.
Слайд 19Алгоритм с ветвлением
Направление ветвления выбирается логической проверкой, в результате которой возможны
два ответа:
«да» — условие выполнено
«нет» — условие не выполнено.
Следует иметь в виду, что, хотя на схеме алгоритма должны быть показаны все возможные направления вычислений в зависимости от выполнения определенного условия (или условий), при однократном прохождении программы процесс реализуется только по одной ветви, а остальные исключаются.
Важно! Любая ветвь, по которой осуществляются вычисления, должна приводить к завершению вычислительного процесса.
Слайд 20Пример алгоритма с ветвлением
Составить блок-схему алгоритма с ветвлением для вычисления следующего
выражения:
Y = (а+b), если Х <0;
с/b, если Х>0.
Слайд 21Циклические алгоритмы
Алгоритмы циклической структуры: в зависимости от выполнения или невыполнения какого-либо
условия выполняется повторяющаяся последовательность действий, называющаяся телом цикла. Различают циклы с предусловием и постусловием:
Этапы организации цикла
подготовка (инициализация) цикла (И);
выполнение вычислений цикла (тело цикла) (Т);
модификация параметров (М);
проверка условия окончания цикла (У).
Слайд 22Языки программирования содержат операторы цикла со счетчиком. Они используются, когда изначально
известно, сколько итераций (проходов) цикла необходимо выполнить. Модель цикла со счетчиком может быть описана с помощью классического цикла с предусловием.
Инициализация переменной счетчика
Тело цикла
Изменение счетчика
Условие на значение счетчика
да
нет
Продолжение выполнения АЛГОРИТМА
Слайд 24Виды циклов
Цикл называется детерминированным, если число повторений тела цикла заранее известно
или определено.
Цикл называется итерационным, если число повторений тела цикла заранее неизвестно, а зависит от значений параметров (некоторых переменных), участвующих в вычислениях.
Слайд 25Пример циклического алгоритма
Алгоритм нахождения суммы 10-ти чисел
Слайд 26Этапы подготовки и решения задач на ЭВМ
На ЭВМ могут решаться задачи
различного характера, например:
научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д.
В процессе подготовки и решения на ЭВМ научно -инженерных задач можно выделить следующие этапы:
постановка задачи;
математическое описание задачи;
выбор и обоснование метода решения;
алгоритмизация вычислительного процесса;
составление программы;
отладка программы;
решение задачи на ЭВМ и анализ результатов.
В задачах другого класса некоторые этапы могут отсутствовать, например, в задачах разработки системного программного обеспечения отсутствует математическое описание.