Рефераты. Информатика и компьютерная техника

вычисляем значение дискриминанта, ;

сравниваем значения дискриминанта с нулем;

если , то вычисляем x1, x2 по формулам

; ,

печатаем полученные значения, и останавливаем процесс решения;

4) если , то выводим фразу «Действительных корней нет» и останавливаем процесс решения.

Запишем теперь операторную схему,

Обозначим:

B1 - оператор ввода значений a, b, c;

A1 - оператор вычисляющий дискриминант D;

P1 - оператор проверяющий условие D<0;

A2 - оператор вычисляющий значение x1;

A3 - оператор вычисляющий значение x2;

B2 - оператор вывода значений x1, x2;

B3 - оператор вывода фразы «Действительных корней нет»;

O1, O2 - операторы остановки.

Тогда операторную схему алгоритма вычисляющего значение корней уравнения можно записать следующим образом:

A2A3B2O1

B1A1P1

B3O2

Циклические алгоритмы

Как было указано выше, циклическим алгоритмом является тот, у которого имеется хотя бы одна группа указаний, которая повторяется в процессе решения. Такая группа указаний называется циклическим оператором.

Различают два вида циклических операторов:

1) Циклический оператор с заданным количеством повторений;

2) Итерационный циклический оператор.

Схематически оба эти операторы имеют одинаковую структуру, которую можно изобразить следующим образом:

A0 A1 P1 (продолжение)

A0 - оператор или операторы подготовки цикла.

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

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

Управление повторением оператора цикла осуществляется с помощью некоторой переменной, которую называют параметром цикла.

В циклическом операторе первого вида параметр цикла изменяется от одной границы L1 до второй границы L2 с некоторым постоянным интервалом (шагом) h за каждым повторением. В этом случае легко вычислить количество повторений k:

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

В операторе A0 осуществляется подготовка цикла, т.е. параметр цикла и величины, которые изменяются в цикле, этими операторами приводятся в исходные значения.

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

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

Относительно расположения вложенных циклов существуют такие правила:

1. Внутренний цикл должен быть строго внутренним.

2. Не допускается пересечений циклов.

Для передач управления из цикла в цикл приняты следующие правила:

1. Передача управления в цикл может быть осуществлена только через его начало;

2. Выход из цикла может быть осуществлен до окончания цикла;

Передачи управления внутри цикла допускаются.

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

Блок-схема алгоритма

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

При построении блок-схемы алгоритма принята стандартная система геометрических фигур, применяемых для различных видов операторов. В таблице 1 приведены основные операторы и их геометрическое представление, соответствующее принятому стандарту.

Таблица 1. Основные операторы и их геометрическое представление, соответствующее принятому стандарту.

Приведем пример блок-схемы алгоритма начисления заработной платы по заданной ставке с учетом вычета подоходного налога, величина которого определяется по тарифной сетке (заметим, что пример является условным, и поэтому цифры и сама тарифная сетка не соответствуют реальности).

Пример 5. Условие задачи опишем следующим образом:

Пусть х - величина произвольной ставки. В зависимости от конкретного значения х, начисляется подоходный налог у, по следующему правилу (тарифной сетке):

Если х меньше или равен а, то подоходный налог не начисляется, т.е. у=0.

Если х больше а, но меньше или равен b, то подоходный налог равен 10% от х.

Если х больше b, но меньше или равен c, то подоходный налог равен 15% от х.

Если х больше c, то подоходный налог равен 20% от х.

Значение заработной платы, с учетом вычитаемого подоходного налога, будет z = x - y. Если описанный процесс обозначить математическими формулами, то будем иметь следующую запись:

,

.

Исходными данными для рассматриваемой задачи являются значения x, a, b, c. Результатом будет значение z . Заметим, что в зависимости от требуемого, результатом может быть величина подоходного налога у и заработная плата z. Выводить на печать можно также вместе с результатами и значение х.

Блок схема алгоритма решения данной задачи представлена на рис. 4.

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

Рис. 4. Блок-схема задачи начисления подоходного налога.

Наиболее часто используемым методом построения блок-схем алгоритмов является метод последовательной декомпозиции. Суть его заключается в том, что вначале строят укрупненную схему алгоритма, каждый блок которой может представлять решение довольно сложной задачи. Затем последовательно, шаг за шагом, производят разукрупнение блоков до последовательности указаний (операторов), которые легко можно перевести в программу на алгоритмическом языке.

Пример 6. Проиллюстрируем метод декомпозиции на составлении блок-схемы алгоритма решения квадратного уравнения:

Укрупненная схема алгоритма следующая:

Исходными данными для задачи являются значения коэффициентов уравнения a, b, c. Разукрупнять блок «Ввод исходных данных» не надо, т.к. этот ввод можно осуществить одним оператором.

Блок «Нахождение решения уравнения». Для определения решения уравнения надо вначале вычислить дискриминант . Затем проверить знак дискриминанта. Если дискриминант больше нуля, то уравнение имеет два корня, которые вычисляются по формулам:

; .

В этом случае результатом будет значения этих корней.

Если дискриминант равен нулю, то уравнение имеет один корень, который вычисляется по формуле: . Это значение и будет результатом в этом случае.

Если дискриминант меньше нуля, то уравнение не имеет действительных корней. В этом случае результатом будет фраза «Уравнение не имеет действительных корней».

Декомпозиция этого блока следующая:

Блок «Вывод результатов». В зависимости от значения дискриминанта, мы можем получить три результата. Поэтому этот блок по сути состоит из трех разных операторов вывода:

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.