Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика(1 группа) 16.09.DOC
Скачиваний:
3
Добавлен:
04.06.2015
Размер:
217.09 Кб
Скачать

П.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)

  1. Конец.

Нумерация действий в этом примере условная. В состав действия п.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)

  1. Конец.

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

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

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

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

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

ИначеЗаписать: Ответ: х

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

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

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

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

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

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

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

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

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

Иначе

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

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

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

  1. Начало.

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

  3. Если а=0

Тогда

. Еслиb=0

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

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

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

  1. Конец.

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

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

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

О

Начало

Ввод х

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

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

П

X:=a+b

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

Р

y>0?

Да

Нет

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

П

Вычисление

модуля

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

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