Алгоритм и его формальное исполнение. Свойства алгоритма и его исполнители.
Алгоритмы. Виды алгоритмов. Блок-схемы. Вопросы и задания.
Алгоритм Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика. Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
Существует несколько форм представления алгоритмов: На естественном языке (словесная форма)На естественном языке На языке блок-схем На алгоритмическом языке – программа
Алгоритм открывания двери 1. Достать ключ из кармана. 2. Вставить ключ в замочную скважину. 3. Повернуть ключ два раза против часовой стрелки. 4. Вынуть ключ
Свойства алгоритмов 1.Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке); 2.Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае); 3.Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения); 4.Массовость (один и тот же алгоритм можно использовать с разными исходными данными); 5.Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).
В алгоритме команды записаны одна за другой в определенном порядке. Исполняются они не обязательно в том же порядке. В зависимости от того, каков порядок исполнения команд, можно выделить виды алгоритмов: 1.линейный алгоритм; 2. разветвляющий алгоритм; 3. циклический алгоритм; 4. разветвляющий алгоритм.
1.Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке); 2.Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий 3.Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание); 4.Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя
Она составляется из стандартных графических объектов, внутри которых записываются шаги алгоритма. Шаги (блоки) алгоритма соединены стрелочками. Стрелки изображают последовательность вычислений. Блок – схема алгоритма наглядное графическое изображение структуры алгоритма.
Вид стандартного графического объекта Назначение Начало и конец алгоритма Ввод/вывод данных Выполняемое действие Условие выполнения действий Счетчик кол-во повторов Последовательность выполнения действий Счетчик
Вычислить площадь прямоугольника
Начало Ввод Х Х>=0 Y=x+1 Y=x 2 Конец да нет Х+1,если х>=0 X 2, если x
Стадии создания алгоритма 1.Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает. 2.Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.
Исполнители алгоритмов Объект, который будет выполнять алгоритм, обычно называют исполнителем. Исполнитель - объект, который выполняет алгоритм. Идеальными исполнителями являются машины, роботы, компьютеры... Компьютер – автоматический исполнитель алгоритмов. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.
Закрепление:
Алгоритмическая задача «Ханойская башня» Нужно за меньшее число шагов переставить пирамиду с одной площадки на другую, следуя определенным правилам. 12 3
Предоставить ход сопернику Взять столько фишек, чтобы в сумме с взятыми соперником получалось 5 Игра Баше Алгоритм выигрыша: Если осталась одна фишка, то – выиграл, иначе вернуться к выполнению команды 1
Д/з Ответить на вопросы кроссворда: collection.edu.ru/catalog/rubr/a30a9550-6a62-11da- 8cd c9a66/63387/?interface=pupil&class=51
Что такое алгоритм? Приведите примеры алгоритмов. Какие свойства алгоритмов вы знаете? Какие виды алгоритмов вы знаете? Какие способы записи алгоритмов вы знаете? Что такое исполнитель алгоритмов? Что такое программа?