Алгоритмы Алгоритм – описание последовательности действий (план), исполнение которых приводит к решению поставленной задачи за конечное число шагов. Алгоритмизация – процесс разработки алгоритма (плана действий ) для решения задачи. Само слово «алгоритм» происходит от «algorithmi» — латинской формы написания имени выдающегося математика IX века Аль-Хорезми, который сформулировал правила выполнения арифметических операций. Довольно интересным фактом является и то, что, несмотря на древние корни, само понятие было точно сформулировано лишь в начале ХХ века. Ныне алгоритм является основной составляющей современного бизнеса, любого учебного процесса или же исследования. Именно поэтому каждому современному человеку просто необходимо точно знать, что означает алгоритм. Исполнитель алгоритма Исполнитель алгоритма – это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. Исполнителя характеризуют: • Среда • Элементарные действия • Система команд • Отказы Среда – это «место обитания исполнителя». Система команд . Каждый исполнитель может выполнять команды только из некоторого строго заданного списка – системы команд исполнителя. После вызова команды исполнитель совершает соответствующее элементарное действие (если среда позволяет). Отказы исполнителя возникают, если команда вызывается при недопустимом для нее состоянии среды. Обычно исполнитель ничего не знает о цели алгоритма. Он выполняет все полученные команды, не задавая вопросов «почему» и «зачем». Наличие алгоритма дает возможность решать задачу формально, механически исполняя команды алгоритма в указанной последовательности. Исполнители: человек, робот, ЭВМ. Построение алгоритма для решения из какой-либо области требует от человека глубоких знаний в этой области, бывает связано с тщательным анализом поставленной задачи сложными, иногда очень громоздкими рассуждениями. На поиски алгоритма решения некоторых задач ученые затрачивают многие годы. Но когда алгоритм создан, решение задачи по готовому алгоритму уже не требует каких-либо рассуждений и сводится только к строгому выполнению команд алгоритма. Указание выполнить конкретное действие называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем называется системой команд. Но стоит помнить, что не каждую последовательность действий можно назвать алгоритмом. Последовательность является алгоритмом, только если она обладает определенными свойствами. Перечислим их: Свойства алгоритма Дискретность (прерывность) Детерминированность (понятность) Алгоритм Массовость Результативность (конечность) Определенность Дискретность - Часто дискретность заменяют таким термином, как прерывность и раздельность алгоритма. По сути все три термина обозначают одно и то же, а именно – последовательное (поочередное) выполнение всех команд алгоритма. При соблюдении дискретности каждое действие выполняется только после завершения предыдущего, а выполнение всех поставленных пунктов приводит к ранее указанному конечному результату (к полному решению задачи). Составить алгоритм «Разжигания костра в лесу при хорошей погоде». Детерминированность - не менее важной является определенность. Согласно данному свойству каждая команда должна быть однозначной и наводить исполнителя на конкретное действие. Составить алгоритм «Приготовления гречневой каши». Понятность – исполнитель алгоритма должен знать, как его выполнить. Массовость - Также любой алгоритм должен обязательно обладать и таким свойством, как массовость. Если алгоритм обеспечивает выполнение всех задач определенного типа, то он обладает свойством массовости. Свойство массовости подразумевает использование переменных в качестве исходных данных алгоритма. Результативность. Важным свойством является и (также часто называют конечностью) алгоритма. Свойство «результативность» указывает на то, что в алгоритме имеется определенное, ранее указанное число шагов, выполнение которых приведет к выполнению поставленной задачи. Формы представления алгоритма Словесное или словесноформульное Рисунки, пиктограммы Графическое представление Графы, схемы Программа Блок-схемы Табличное представление Блочные символы Название символа Обозначения и пример заполнения Процесс Решение Вычислительные действия или последовательность действий X=A+B да Пояснения нет Проверка условия A<B Предопределенный процесс Расчет параметров Ввод-вывод Вычисление по подпрограмме, стандартной подпрограмме Ввод-вывод в общем виде Ввод а, в Модификация Пуск-останов Начало цикла i=1, 50,2 Начало-конец Начало, конец алгоритма, вход выход в подпрограммы Базовые алгоритмические структуры Следования (линейный) Ветвления (разветвляющийся) Цикл Линейный алгоритм – алгоритм, в котором действия выполняются последовательно одно за другим. Действие 1 Действие 2 Действие n Разветвляющийся алгоритм - алгоритм, содержащий структуру ветвления. Структура ветвления обеспечивает в зависимости от результата проверки условия (да или нет выбор одного из альтернативных путей алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь выбран. Структура ветвления существует в четырех основных вариантах: • • • • Если – то Если –то – иначе Выбор Выбор – иначе Если – то да условие действие Если – то иначе нет да условие действие 1 нет действие 2 Циклический алгоритм – алгоритм, содержащий типовую конструкцию «ЦИКЛ». Цикл – многократно повторяющиеся действия. Тело цикла- описание действий, повторяющихся в цикле. Типы циклов Цикл Цикл с известным числом повторений Цикл с неизвестным числом повторений Цикл с постусловием Цикл с предусловием Цикл с известным числом повторений ДЛЯ i=н.з.п.; к.з.п. шаг Тело цикла Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне Цикл с постусловием типа ПРИ тело цикла услови условие е да нет Предписывает выполнять тело цикла до тех пор, пока выполняется условие , записанное после слова ПРИ. Цикл с предусловием типа ПОКА условие нет да тело цикла Предписывает выполнять тело цикла до тех пор, пока выполняется условие , записанное после слова ПОКА.