Понятие алгоритма Слово «алгоритм» происходит от латинского написания имени величайшего ученого Средней Азии и средневекового Востока Мухамада ибн Мусы аль- Хорезми (Algorithmi) (впервые описавшего правила выполнения четырёх арифметических действий). 9 век н.э.
Основные понятия Алгоритм – это описание последовательности действий, строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов. Алгоритм состоит из законченных действий, называемых командами.
Исполнитель алгоритма Исполнитель алгоритма – человек или устройство (в частности, процессор компьютера), умеющий выполнять определённый набор действий (алгоритм). Исполнитель является средством реализации алгоритма.
Основные характеристики исполнителя СКИ (система команд исполнителя): набор команд, которые исполнитель понимает и может выполнить Среда: условия, в которых исполнитель может выполнять команды
Свойства алгоритмов 1.Дискретность 2.Понятность 3.Массовость 4.Детерминированность 5.Результативность 6.Конечность
Дискретность (пошаговость) – свойство алгоритма, заключающиеся в том, что алгоритм должен состоять из конкретных действий (шагов), следующих в определенном порядке. Понятность – каждая команда должна входить в СКИ, т.е. алгоритм должен быть записан на понятном для исполнителя языке. Массовость – свойство алгоритма, заключающееся в том, что один и тот же алгоритм можно использовать с разными исходными данными.
Детерминированность ( точность, определенность) – свойство алгоритма, заключающееся в том, что любое действие должно быть строго и недвусмысленно определено в каждом случае. Результативность – свойство алгоритма, заключающееся в том, что при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов, приведя к определенному результату. Конечность – свойство алгоритма, заключающиеся в том, что каждое действие и алгоритм в целом должны иметь возможность завершения.
Блок – схема Блок-схема – это наглядный, графический способ представления алгоритма. Каждая команда записывается с использованием графических символов
Условные обозначения указывают порядок действий начало, конец алгоритма простое действие, вычисление задание исходных данных, вывод результата проверка условия
Виды алгоритмов Линейные алгоритмы Линейные алгоритмы (алгоритмическая конструкция следование): Все команды алгоритма следуют последовательно друг за другом действие
Условные алгоритмы (алгоритмическая конструкция ветвление): Выбор действия зависит от выполнения некоторого условия. Условие – выражение, которое может принимать значение либо истина, либо ложь. Ветвления бывают полные и неполные условие действие 1 действие 2 истиналожь условие действие истиналожь
( алгоритмическая конструкция повторение ): В алгоритме есть повторяющиеся действия. Циклы бывают с предусловием с постусловием (условие стоит перед (условие стоит после повторением действий) повторения действий) условие действие истина ложь условие действие истина ложь Циклические алгоритмы
Простейшие примеры Задача 1: приготовить яичницу. положить на сковороду масло начало взять сковороду включить газ поставить сковороду на газ взять яйцо разбить яйцо на сковороду посолить жарить 5 минут конец Это линейный тип алгоритма (следование)
Простейшие примеры Задача 2: покупка билетов в кино. начало подойти к кассе билеты есть назвать сеанс подать деньги взять билет и сдачу конец данет Это условный тип алгоритма (ветвление) Это линейный тип алгоритма (следование) Получилось сочетание условного и линейного типов алгоритмов
Простейшие примеры Задача 3: забить гвоздь. начало взять гвоздь взять молоток установить острие гвоздя в нужное место ударить молотком по шляпке гвоздя гвоздь торчит конец да нет Это линейный тип алгоритма (следование) Это циклический тип алгоритма (повторение) Получилось сочетание линейного и циклического типов алгоритмов
Простейшие примеры Задача 4: собрать гербарий. начало пойди в лес или парк собери листья принеси домой возьми один лист тщательно осмотри его лист хороший выбросизасуши его остались листья конец да нет Это линейный тип алгоритма (следование) Это условный тип алгоритма (ветвление) Это циклический тип алгоритма (повторение) Получилось сочетание линейного алгоритма и условия в цикле