1-2_Основы алгоритмизации.ppt
- Количество слайдов: 29
Основы алгоритмизации 17. 02. 2018
1. Понятие и свойства алгоритма 17. 02. 2018
Определение • (1) Алгоритм - это определённая последовательность действий, которые необходимо выполнить, чтобы получить результат. • (2) Алгори тм — набор инструкций, описывающих порядок действий исполнителя достижения результата решения задачи за конечное число действий. 17. 02. 2018
История термина В 1983 году отмечалось 1200 -летие со дня рождения величайшего средневекового ученого Средней Азии Мухамеда ибн Мусы аль. Хорезми (полное имя – Мухаммед бен Муса ал-Хорезми). С именем этого ученого связано понятие алгоритма. Он описал десятичную систему счисления и впервые сформулировал правила выполнения арифметических действий над целыми числами и обыкновенными дробями. 17. 02. 2018
Исполнитель алгоритма — это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. Исполнителя хаpактеpизуют: • среда; • элементарные действия; • система команд; • отказы. 17. 02. 2018
Исполнитель алгоритма Среда (или обстановка) - это «место обитания» исполнителя. Система команд. Каждый исполнитель может выполнять команды только из некоторого строго заданного списка-системы команд исполнителя. Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды. После вызова команды исполнитель совершает соответствующее элементарное действие. 17. 02. 2018
Исполнитель алгоритма Отказы исполнителя возникают, если команда вызывается при недопустимом для нее состоянии среды. Исполнитель ничего не знает о цели алгоритма. Он выполняет все полученные команды, не задавая вопросов «почему» и «зачем» . 17. 02. 2018
Теория алгоритмов - это наука, изучающая общие свойства и закономерности алгоритмов, разнообразные формальные модели их представления. На основе формализации понятия алгоритма возможно сравнение алгоритмов по их эффективности, проверка их эквивалентности, определение областей применимости. 17. 02. 2018
Алгоритм может представлять собой некоторую последовательность вычислений, а может - последовательность действий нематического характера. Для любого алгоритма справедливы общие закономерности - свойства алгоритма. 17. 02. 2018
Свойства алгоритма 1. 2. 3. 4. 5. 17. 02. 2018 Дискретность. Понятность Детерминированность Массовость Результативность
Свойства алгоритма (1) 1. Дискретность - алгоритм разбивается на конечное число элементарных действий (шагов). 2. Детерминированность - каждое действие (операция. указание. шаг. требование) должно пониматься в строго определённом смысле, чтобы не оставалась места произвольному толкованию. чтобы каждый, прочитавший указание, понимал его однозначно. 3. Массовость - по данному алгоритму должна решаться не одна, а целый класс подобных задач. 17. 02. 2018
Свойства алгоритма (2) 4. Результативность –любой алгоритм в процессе выполнения должен приводить к определённому результату. Отрицательный результат также является результатом. 5. Конечность (финитность) алгоритма. Алгоритм должен приводить к решению задачи обязательно за конечное время. Последовательность правил, приведшая к бесконечному циклу, алгоритмом не является. 17. 02. 2018
Свойства алгоритма (3) 6. Эффективность алгоритма - такое его свойство (качество), которое позволяет решить задачу за приемлемое для разработчика время. К параметру, характеризующему эффективность алгоритма, следует отнести также объем памяти компьютера, необходимый для решения задачи. 7. Корректность - означает, что если алгоритм создан для решения определенной задачи, то для всех исходных данных он должен всегда давать правильный результат и ни для каких исходных данных не будет получен неправильный результат. Если хотя бы один из полученных результатов противоречит хотя бы одному из ранее установленных и получивших признание фактов, алгоритм нельзя признать корректным. 17. 02. 2018
2. Способы записи алгоритма 17. 02. 2018
Способы записи алгоритма 1. 2. 3. Словесная (вербальная) на неформальном языке (на естественном языке в виде описания); в виде графических блок-схем (блоксхемы и диаграммы Насси. Шнейдермана); на специальном алгоритмическом языке (программирования) 17. 02. 2018
Язык блок-схем 17. 02. 2018
Использование блок-схем дает возможность • наглядно отобразить базовые конструкции алгоритма; • сосредоточить внимание на структуре алгоритма, а не на синтаксисе языка; • анализировать логическую структуру алгоритма; • преобразовывать алгоритм методом укрупнения (сведения к единому блоку) или детализации – разбиения на ряд блоков; 17. 02. 2018
Использование блок-схем дает возможность • использовать принцип блочности при коллективном решении сложной задачи; • осуществить быструю проверку разработанного алгоритма (на уровне идеи); • разобрать большее число учебных задач. 17. 02. 2018
Диаграммы Насси - Шнейдермана САМОСТОЯТЕЛЬНО!!! 17. 02. 2018
3. Основные алгоритмические конструкции 17. 02. 2018
Основные алгоритмические конструкции 1. линейные алгоритмы; 2. алгоритмы ветвления; 3. циклические алгоритмы. В 1966 г Бом и Джакопини доказали, что для записи алгоритма любой сложности достаточно 3 -х основных структур. 17. 02. 2018
Основные алгоритмические конструкции 17. 02. 2018
Линейная Начало Ввод данных присваивание Вывод Стоп 17. 02. 2018
Ветвление Начало Ввод данных … 17. 02. 2018 Проверка условия
Цикл Начало Цикл Ввод данных … 17. 02. 2018
Пример 1 Алгоритм «Телефонный разговор» 17. 02. 2018
17. 02. 2018
Пример 2 Алгоритм поиска наибольшего общего делителя (алгоритм Евклида) 17. 02. 2018
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ 1. Что такое алгоритм? 2. Назовите основные свойства алгоритма. 3. Какие существуют формы представления алгоритма? Кратко охарактеризуйте их. 4. Чем отличается графическая форма представления алгоритма от других форм? 5. С помощью какой фигуры изображается этап вычисления? Проверка условия? Вывод данных? 6. Какие преимущества дает блок-схема? 7. Назовите три основных структуры алгоритмов. 17. 02. 2018