Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

П.2.2. Способы представления алгоритмов



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

1. Словесное описание.

2. Описание на алгоритмическом языке.

3. Структурная схема.

Рассмотрим особенности каждого из этих способов.

Словесное описание представляет собой текст, в котором на некотором разговорном языке, например, русском, по пунктам записана последовательность действий. Строгие требования к форме такой записи не предъявляются, однако существуют определенные рекомендации, выполнение которых облегчает понимание алгоритма. В качестве простых примеров рассмотрим словесные описания алгоритмов решения уравнения х+2=3х-4 и неравенства х>1/.х. Исключительно в целях удобства будем нумеровать действия, чтобы было удобно ссылаться на каждое отдельное действие по номеру пункта. Для наглядности каждый пункт снабдим записью результата.

Алгоритм 1. Решения уравнения х+2=3х-4:

1. Начало.

2. Перенести слагаемое 3х в левую часть с обратным знаком. х-3х+2=-4

3. Перенести константу 2 в правую часть с обратным знаком. х-3х=-2-4

4. Привести подобные слагаемые в левой части. –2х=-2-4

5. Привести подобные слагаемые в правой части. –2х=-6

6. Разделить обе части уравнения на –2. х=3

7. Записать результат. Ответ: х=3

8. Конец.

Пункты 1 и 8 не обозначают какие-либо действия, так принято отмечать границы алгоритма. Можно указывать в отдельном пункте не одно действие, а группу простых действий:

Алгоритм 1а. Решения уравнения х+2=3х-4:

1. Начало.

2. Перенести слагаемые, содержащие х, в левую часть, а не содержащие х – в правую часть, с обратным знаком и выполнить сложение в обеих частях. –2х=-6

3. Разделить обе части уравнения на –2. х=3

4. Записать результат. Ответ: х=3

5. Конец.

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

Алгоритм 1б. Решения уравнения х+2=3х-4:

1. Начало.

2. Перенести все слагаемые в левую часть с обратным знаком и привести подобные члены. –2х+6=0

3. Решить линейное уравнение. х=3

4. Записать результат. Ответ: х=3

5. Конец.

Решение неравенства основано на применении известного метода интервалов.

Алгоритм 2. Решения неравенства х>1/.х.

1. Начало.

2. Перенести 1/х в левую часть с обратным знаком. х-1/х>0

3. Привести левую часть к общему знаменателю. (х2-1)/х>0

4. Решить неравенство методом интервалов. хÌ(-1,0) È(1, ¥)

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

Алгоритм 3: Решение уравнения aх2+bх+с=0 при любых значениях a,b.c.

1. Начало.

2. Ввод значений a,b.c.

3. Если а=0

Тогда

3а. Если b=0

Тогда

3б. Если с=0 Тогда

3в. Записать: Ответ: хÌ(-¥,¥)

Иначе

3г. Записать: Ответ: хÌÆ

Иначе

3д. Вычислить значение (-с/b) и записать: Ответ: х= значение(-с/b)

Иначе

3е. Вычислить дискриминант d=b2-4ac

3ж. Если d<0

Тогда

3з. Записать: Ответ: хÌÆ

Иначе

3и. Вычислить и записать: Ответ: х1= значение((–b+ )/2/a)

3к. Вычислить и записать: Ответ: х2= значение((–b- )/2/a)

4. Конец.

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

Алгоритм 3а: Решение уравнения aх2+bх+с=0 при a,b.c – любые числа.

1. Начало.

2. Ввод значений a,b.c.

3. Если а=0 Тогда

Если b=0 Тогда

Если с=0 Тогда Записать: Ответ: хÌ(-¥,¥)

Иначе Записать: Ответ: хÌÆ

Иначе Вычислить значение (-с/b) и записать: Ответ: х= значение(-с/b)

Иначе Вычислить дискриминант d=b2-4ac

Если d<0 Тогда Записать: Ответ: хÌÆ

Иначе Вычислить и записать: Ответ: х1= значение((–b+ )/2/a)

Вычислить и записать: Ответ: х2= значение((–b- )/2/a)

4. Конец.

В каком из алгоритмов (3 или 3а) легче разобраться? Ответ оставляем на усмотрение читателя. Однако следует иметь в виду, что для облегчения понимания алгоритма, представленного в виде текста, считается общепринятым показывать отступами вложенность действий друг в друга. Напоследок приведем запись алгоритма для решения этой же задачи с применением подпрограмм:

Алгоритм 3в: Решение уравнения aх2+bх+с=0 при a,b.c – любые числа.

1. Подпрограмма 1. Решение уравнения с=0 для переменной х.

1.1. Начало подпрограммы

1.2. Если с=0 Тогда Записать: Ответ: хÌ(-¥,¥)

Иначе Записать: Ответ: хÌÆ

1.3. Конец подпрограммы.

2. Подпрограмма 2. Решение линейного уравнения.

2.1. Начало подпрограммы.

2.2. Вычислить значение (-с/b) и записать: Ответ: х= значение(-с/b)

2.3. Конец подпрограммы.

3. Подпрограмма 3. Решение квадратного уравнения.

3.1. Начало подпрограммы.

3.2. Вычислить дискриминант d=b2-4ac

3.3. Если d<0 Тогда Записать: Ответ: хÌÆ

Иначе

Вычислить и записать: Ответ: х1= значение((–b+ )/2/a)

Вычислить и записать: Ответ: х2= значение((–b- )/2/a)

3.4. Конец подпрограммы.

4. Начало.

5. Ввод значений a,b.c.

6. Если а=0

Тогда

. Если b=0

Тогда Выполнить подпрограмму 1

Иначе Выполнить подпрограмму 2

Иначе Выполнить подпрограмму 3

7. Конец.

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

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

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

Ввод х
Начало
Овал означает начало или конец, что именно – пишется внутри него.

Параллелограмм означает ввод или вывод данных, что именно – пишется внутри него.

X:=a+b
Прямоугольник означает простое действие или группу простых действий. Название действий пишется внутри.

Ромб означает развилку с одним входом и двумя выходами, помеченными «Да» и «Нет». Активен тот выход, который соответствует ответу на вопрос, поставленный внутри ромба и на который можно ответить только «Да» и «Нет».

Прямоугольник с двойными боковыми сторонами означает подпрограмму. Внутри пишется назначение или название подпрограммы.

Элементы структурной схемы связываются отрезками прямых линий, указывающими связи между элементами. Элементы «Начало» и «Конец» имеют по одной связи, вниз и вверх соответственно, элементы «Ввод», «Вывод», «Простые действия» имеют по две связи: сверху и снизу. Элемент «Развилка» имеет одну связь вверху (вход) и обязательно две выходные связи, расположенные в любых двух из трех остальных вершин. Элементы располагаются так, что последовательность выполнения элементов соответствует преимущественному перемещению по схеме сверху вниз и дополнительному перемещению слева направо. В больших структурных схемах элементы размещают в ячейках таблицы. Ячейки имеют двойную индексацию – по горизонтали и вертикали – для удобства ссылок на каждую из них и друг на друга.





Дата публикования: 2014-12-10; Прочитано: 193 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...