Понятие алгоритма Слово «алгоритм» происходит от латинского написания имени арабского математика аль- Хорезми (Algorithmi), впервые описавший правила выполнения четырёх арифметических действий). 9 век н.э.
Алгоритм – это точное и понятное предписание исполнителю совершить последовательность действий над заданными объектами, приводящее исполнителя после конечного числа шагов к достижению указанной цели или решению поставленной задачи.
Исполнитель алгоритма – человек или устройство (в частности, процессор ЭВМ), умеющий выполнять определённый набор действий. Исполнитель является средством реализации алгоритма.
Исполнитель ФормальныйНеформальный
Исполнителя характеризуют: Среда – это обстановка, в которой работает исполнитель.
Исполнителя характеризуют: Система команд исполнителя – набор понятных исполнителю команд.
Исполнителя характеризуют: Элементарное действие После вызова команды исполнитель совершает элементарное действие Отказы Возникают при вызове команды В недопустимом для данной команды состоянии среды.
Свойства алгоритма: 1 ) дискретность (прерывность) 2) определённость (детерминированность) 3) массовость 4) результативность 5) конечность 6) правильность
Критерии качества алгоритма Связанность – определяется количеством промежуточных результатов, подлежащих запоминанию. Объем алгоритма – количество операций (шагов), которые необходимо выполнить для достижения конечного результата. Длительность решения – определяется как количеством, так и сложностью шагов. Разветвленность алгоритма – характеризует логическую сложность и определяется количеством путей, по которым может реализовываться алгоритм. Цикличность алгоритма – заключается в том, что фактическое количество операций, которые должны быть выполнены, превышает количество операций, содержащихся в записи алгоритма.
Способы записи алгоритмов Словесно-формульный (естественный язык) – используется на начальных этапах изучения алгоритмов и предназначен для исполнения алгоритма человеком. Форма записи команд – произвольная. Пример. алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида). Алгоритм может быть следующим: задать два числа; если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма; определить большее из чисел; заменить большее из чисел разностью большего и меньшего из чисел; повторить алгоритм с шага 2. Словесный способ не имеет широкого распространения, так как такие описания: строго не формализуемы; страдают многословностью записей; допускают неоднозначность толкования отдельных предписаний.
Способы записи алгоритмов Графический – это способ представления алгоритма с помощью геометрических фигур (блок – схема) г. – А.А. Ляпунов, Ю.Н. Янов – первое понятие о языке блок – схем алгоритмов. ГОСТ
Блочные символы (блоки). Название блока Вид блока и пример заполнения Что обозначает Процесс у=х/2 Вычислительное действие Решение да a
Алгоритмический язык Псевдокод -представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Пример. школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. "Основы информатики и вычислительной техники", Этот язык в дальнейшем мы будем называть просто "алгоритмический язык".школьный АЯ
Алгоритмический язык Основные служебные слова алг (алгоритм) сим (символьный) дано для да арг (аргумент) лит (литерный) надо от нет рез (результат) лог (логический) если до при нач (начало) таб(таблица) то знач выбор кон (конец) нц (начало цикла) иначе и ввод цел (целый) кц (конец цикла) все или вывод вещ (вещественный) длин (длина) пока не утв
Алгоритмический язык Общий вид алгоритма: алг название алгоритма (аргументы и результаты) дано условия применимости алгоритма надо цель выполнения алгоритма нач описание промежуточных величин | последовательность команд (тело алгоритма) кон
Программный способ Язык для записи алгоритма формализован и называется языком программирования. Запись на этом языке называется программой. Числа, символы, буквы, над которыми производятся те или иные действия называют операндами, а указания, предписания, правила преобразования операндов – операторами. Примеры. СИ, Паскаль, Бейсик и др.
Табличный способ Наиболее часто используется в экономических расчетах, при выполнении курсовых и лабораторных работ. Пример. ФамилияЗарплатаПремияВсего Матроскин Печкин
Базовые алгоритмические структуры Основные (базовые) структуры алгоритмов – это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий. Структурный подход к разработке алгоритмов предполагает использование только нескольких основных структур, комбинация которых дает все многообразие алгоритмов и программ.
Структура СЛЕДОВАНИЕ Школьный алгоритмический язык Действие 1 Действие 2 …………. Действие N Язык блок-схем
Структура ВЕТВЛЕНИЕ если – то Если условие то действие Все
Структура ВЕТВЛЕНИЕ если – то - иначе Если условие то действие 1 иначе действие 2 Все
Структура ВЕТВЛЕНИЕ выбор выбор при условие 1: действия 1 при условие 2: действия при условие N: действия N иначе действия N+1 все
Структура ВЕТВЛЕНИЕ выбор - иначе выбор при условие 1: действия 1 при условие 2: действия при условие N: действия N все
Структура ЦИКЛ Цикл типа ПОКА (с предусловием) нц пока условие тело цикла (последовательность действий) кц
Структура ЦИКЛ Цикл типа ДО Тело цикла условие нет да
Структура ЦИКЛ Цикл типа ДЛЯ (с параметром) нц для i от i1 до i2 тело цикла (последовательность действий) кц
Итерационный цикл Особенностью итерационного цикла является то, что число повторений операторов тела цикла заранее неизвестно. Для его организации используется цикл типа пока. Выход из итерационного цикла осуществляется в случае выполнения заданного условия.пока В итерационных алгоритмах необходимо обеспечить обязательное достижение условия выхода из цикла (сходимость итерационного процесса). В противном случае произойдет "зацикливание" алгоритма, т.е. не будет выполняться основное свойство алгоритма результативность. результативность
Вложенный цикл Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (то есть количество вложенных друг в друга циклов) может быть различной.цикла в цикле S := 0; нц для i от 1 до 5 нц для j от 1 до 3 S:=S+A[i,j] кц
Примеры алгоритмических матрешек