Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Разработка и кодирование алгоритма с ветвлением



Для того чтобы обеспечить возможность контроля ошибок в алгоритме, необходимо использовать определённую технологию.

Во-первых, необходимо использовать средства записи алгоритма, которые упрощают отслеживание ошибок. Наиболее подходящим для этой цели являются средства языка схем. Особенно тех языков, которые используют графику для обозначения вида действий. Язык псевдокода для этой цели не приспособлен, поскольку разработка напоминает запись на языке программирования. Поэтому псевдокод используется как некоторое промежуточное средство для небольших алгоритмов.

Во-вторых, чтобы обеспечить возможность контроля, алгоритм нужно разрабатывать по методике нисходящего проектирования, которая также называется методом сверху-вниз. Ее суть состоит в том, что начинают разработку с последовательной реализации идей. Если идеи и их последовательность правильные, то для каждой идеи разрабатывается детализация в виде отдельного алгоритма. Следовательно, в начальной последовательности идей каждая из них определяет лишь позицию в которую будет вставлен алгоритм детализации. Поэтому метод сверху вниз это последовательная разработка от общей идеи к частности. В нашем случае идея указывается уточняемым блоком.

При разработке алгоритма обязательно нужно удовлетворять все свойства алгоритма. Их всего 5: дискретность, определенность, результативность, массовость, инвариантность.

Дискретность означает, что алгоритм разбирается на отдельные достаточно простые шаги. Очередной шаг начинает выполнятся только по завершении предыдущего шага. В нашем случае шаг указывается базовой управляющей структурой. Ничего в алгоритме не может быть кроме последовательности базовых управляющих структур.

Определенность означает, что каждый шаг не должен допускать неопределенной трактовки. Не допускается также неопределенность трактовки последовательности шагов. Это свойство реализуется однозначно трактуемой последовательностью базовых управляющих структур.

Результативность предполагает, что любой алгоритм должен иметь конечное число шагов. Это означает, что отсутствует бесконечно повторение и указано конечное число структур.

Массовость предполагает, что алгоритм пригоден для выполнения действий при любых исходных данных для данного класса задач. Это свойство реализуется в разработке математической модели, которая указывает ограничения для обрабатываемых данных и какие итоги при этом должны отображаться.

Инвариантность предполагает, что алгоритм может быть выполнен в разных средах разными вычислительными системами и тому подобное. Это предполагает, что в алгоритме нельзя использовать конструкции конкретного языка.

Разработка алгоритма по методу сверху-вниз предполагает, что используется шаблон базовых управляющих структур которые разработаны для конкретного языка алгоритмизации, в нашем языке схем каждое действие указывается диаметрической фигурой, а переходы от одного действия к другому реализуются базовыми управляющими структурами. Одна из таких структур называется выбор. Она предполагает анализ условия и выбор только одного из доступных путей продолжения обработки данных. В этом случае различают две разновидности структур: двоичный и множественный выбор. Каждый из этих видов имеет собственные шаблоны.

Двоичное ветвление

В этом случае после анализа условия можно выбрать только один из двух возможных путей. Различают два варианта структуры двоичного ветвления. Стандартного названия варианты не имеют. В некоторой литературе они называются ветвлением первого и второго рода, но чаще всего они называются ЕСЛИ-ТО и ЕСЛИ-ТО-ИНАЧЕ.

Структура ЕСЛИ-ТО

B – проверяемое условие

Р1 – действие или группа действий, которые нужно выполнить при истинности условия.

После выполнения действий нужно переходить на очередную структуру. При ложности условия ничего не выполняем, просто переходим на очередное действие. Если истина то выполняем условие, если не истина то переходим на следующее.

Необходимо помнить что если Р1 это некоторый сложный алгоритм, то его здесь не указывают. Вместо него записывают уточняемый блок. В языках программирования этот шаблон реализуется определенными средствами. В Python такими средствами являются операторы if и частный случай elif. Оператор if в многострочном варианте имеет шаблон:

if b:

P 1

Кроме того при реализации шаблона можно указывать однострочный или многострочный вариант elif вида

Elif b: P1

Или

elif b:

P 1

Эти варианты анализируют дополнительные условия которые не указаны в заголовке if.

В операторе b это логическое выражение любой степени сложности. P1 одиночный оператор или блок. При многострочной записи P1 записывается со сдвигом на 4 позиции вправо относительно позиции букв if. Блок это выровненное по одной вертикале любое количество любых операторов.

Структура ЕСЛИ-ТО-ИНАЧЕ

 

В программе шаблон воспроизводится оператором if следующего вида.

If B:

P1

Else

P2

или

P1 if B else P2

P1 и P2 не операторы, а выражения. Какое средство использовать решает разработчик.

 

Примеры разработки алгоритмов:

Пример 1

Записать фрагмент кода в котором определяется меньший из двух разных значений a и b

If a < b:

c = a

else:

c = b

или c = a If (a < b) else c = b

 

Вариантом, когда не надо использовать структуру выбор, является использование того факта, что в некоторых языках, в том числе и в Python, логические данные это подмножество целых.

с = (a< b)*a + (a> =b)*b

false и true можно использовать в арифметических операциях.

 

 


Поделиться:



Последнее изменение этой страницы: 2019-05-04; Просмотров: 211; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь