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