Структурный подход к разработке алгоритмов Презентация разработана преподавателем Шутилиной Л.А.
Задачи, решаемые на занятии 1.Вспомнив определение алгоритма и его свойств, аргументировать выбор исполнителя алгоритма 2.Средства представления алгоритма, от чего зависит выбор средства представления алгоритма 3.Используя основные знания по алгоритмизации, выделить алгоритмические блоки или конструкции
Алгоритм Алгоритм - это конечная последовательность однозначных предписаний, исполнение которых позволяет с помощью конечного числа шагов получить решение задачи, однозначно определяемое исходными данными. Алгоритм можно представить как некоторые жесткие структуры, состоящие из отдельных базовых элементов. Основные структуры алгоритмов - это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последователей действий..
Простые команды Элементарной структурой алгоритма является простая команда, обозначающая один элементарный шаг переработки или отображения информации. При исполнении алгоритма переработка информации состоит в изменении значений некоторых величин, с которыми работает алгоритм. Величины можно разбить на постоянные, которые остаются неизменными в процессе исполнения алгоритма, и переменные. С величиной помимо значения связано также имя, используемое для её обозначения. В качестве имени используется идентификатор, т.е. последовательность букв и цифр, используемых в имени переменной.
Значения переменной величины может быть изменено с помощью команды присваивания, имеющей общий вид : := Знак присваивания (:=) обозначает указание исполнителю выполнить действие, состоящее в том, чтобы, во-первых, вычислить значение выражения, стоящего в правой части команды присваивания, и, во-вторых, присвоить это значение переменной, имя которой стоит в левой части команды. Простая команда на языке блок-схем алгоритма изображается в виде функционального блока, имеющего один вход и один выход.
Структурный подход к разработке алгоритмов Структурный подход предполагает использование только нескольких основных структур, комбинация которых дает все многообразие алгоритмов и программ.
1. Следования Последовательное размещение блоков и групп блоков. В программе реализуется последовательным размещением операторов
2. Ветвление Это алгоритмическая альтернатива. По этой команде исполнитель выбирает один из путей исполнения алгоритма с непременным выходом на общее продолжение. Выбор происходит по какому- либо условию и может в свою очередь содержать несколько этапов.
На естественном языке ветвлению соответствует последовательность операторов: ИСТИНО Если «выполняется или ИСТИНО » тогда иначе Конец ветвления
Рассмотренный вариант команды ветвления называется полным ветвлением. Условие (в виде вопроса) Действие 1 Действие 2 ДаНет
НЕТ» обход Если же на ветви «НЕТ» отсутствует последовательность команд, то такое ветвление называется неполным или обход Условие (в виде вопроса) Действие 1 ДаНет
М н о ж е с т в е н н ы й в ы б о р. Является обобщением разветвления, когда в зависимости от значения переменной ( I ) выполняется одно из нескольких действий. При I = 1 выполняется действие S1, при I = 2 - действие S2 и т.д. Проверка номера ветвления I Действие 1 Действие 2 Действие n
Если на ветвях развилки в свою очередь находятся ветвления, то говорят, что такой алгоритм имеет структуру Вложенных ветвлений В языках программирования высокого уровня ветвление реализуется с помощью условного оператора. Условие (в виде вопроса) Действие ДаНет Условие (в виде вопроса) Действие 1 Действие 2 ДаНет
3. Циклы Способы решения многих сложных задач часто основаны на повторении одних и тех же действий вплоть до достижения некоторой цели. Организация повторений в алгоритмах называется циклом. Однако организация циклов, никогда не приводящих к остановке в выполнении алгоритма, является нарушением требования его результативности. Рассмотрим графическое представление циклического алгоритма. В него входят в качестве базовых элементов следующие структуры: логический элемент с проверкой условия и блок, называемый телом цикла. Рассмотрим основные разновидности циклических алгоритмов
Параметрический цикл Когда известно сколь раз необходимо повторить часть операторов, называемых телом цикла, тогда применяют цикл с параметром. Параметром в данном случае является переменная цикла I, которая изменяется от А до В с определенным шагом. В TP7.0 шаг может принимать только два значения +1 или -1 Для I от А до В выполнять Тело цикла
Цикл ДО Ц и к л До или его ещё называют Цикл с постусловием. Применяется при необходимости выполнить какие-либо вычисления несколько раз до выполнения некоторого условия. Особенность этого цикла в том, что он всегда выполняется хотя бы один раз, так как первая проверка условия выхода из цикла происходит после того, как тело цикла выполнено. Тело цикла - та последовательность действий, которая выполняется многократно (в цикле). Начальные присвоения - задание начальных значений тем переменным, которые используются в теле цикла
циклу До На естественном языке циклу До соответствует последовательность операторов: 1.Операторы начальных присвоении. 2.Операторы тела цикла. 3. Если условие истинно идти к п.2. Начальные присвоения Тело цикла Условие Да Нет
Цикл ПОКА Ц и к л Пока или Ц и к л с предусловием. Цикл Пока отличается от цикла До тем, что проверка условия проводится до выполнения тела цикла, и если при первой проверке условие выхода из цикла выполняется, то тело цикла не выполняется ни разу.
На естественном языке циклу Пока соответствует последовательность операторов: 1.Операторы начальных присвоений. 2. Если условие истинно идти к Операторы тела цикла 4. Идти к 2. Начальные присвоения Тело цикла Условие Да Нет
Итог Особенностью всех приведенных структур является то, что они имеют один вход и один выход, и их можно соединять друг с другом в любой последовательности. В частности, каждая структура может содержать любую другую структуру в качестве одного из блоков. Обычно при составлении схемы блоки размещаются друг под другом в порядке их выполнения. Возврат назад осуществляется только на циклах. Это дает простую и наглядную структуру алгоритма, по которой далее легко составить программу
Таким образом, для построения любого алгоритма необходимо «собрать» его из имеющегося набора базовых конструкций подобно тому, как конструктор собирает механизм из конечного набора имеющихся в его распоряжении деталей. «Сборка» алгоритма происходит двумя путями. Во- первых, базовые элементы могут соединяться в последовательность, образуя конструкции следования. Во-вторых, одна базовая конструкция может вкладываться в другую конструкцию, образуя вложенные конструкции.
Проверь себя сам….. 1. ???? - это конечная последовательность однозначных предписаний, исполнение которых позволяет с помощью конечного числа шагов получить решение задачи, однозначно определяемое исходными данными(вместо вопросов впиши термин, исправь ошибки) 2. Перечислите основные алгоритмические конструкции 3. В чем разница между циклом «ДО» и циклом «ПОКА» 4. Какие из перечисленных свойств относятся к свойствам алгоритма (выпиши):актуальный, массовый, понятный, своевременный, результативный, конечный, полный и эффективный. Каждому свойству нужно дать краткую характеристику. Можно ли считать алгоритм информационной моделью задачи
Литература 1.Светозарова Г.И. и др. « Практикум по программированию», М., Наука, 1988 г 2.Абрамов С.А., Гнездилова Г.Г. Капустина Е.Н. «Задачи по программированию», М., Наука, Турбо Паскаль 7.0, М., BHV, 2002