Техника - молодёжи 1985-06, страница 40

Техника - молодёжи 1985-06, страница 40

Х<с

Q

а

Ц

t м

■ t

1 ,

Ш

_

СО!

X2

7T

a

а

а

t±|

L±J

BElIlii

па

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

ИГОРЬ ДАНИЛОВ, кандидат технических наук

Что необходимо для составления программы? На вопрос этот можно ответить в двух словах, только для непосвященного каждое из них требует особого пояснения.

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

Рассмотрим конкретный пример. Как известно, корни квадратного уравнения ах2+Ьх+с=0 вычисляются по формулам:

Xl = Х2

—-b+ Yb2—4ас. 2а '

Где здесь исходные данные? Набор коэффициентов а, Ь, с. Чем определяется искомый результат? Двумя приведенными формулами. В чем заключается процесс переработки исходных данных? В вычислениях по этим формулам.

Чцтатель, научившийся приводить расчетные формулы к «машинному» виду, легко сделает это и на сей раз:

Xi=-

_b 2

—B + d

В= i ; d=KB2

a

x2*

-ac; —B-d

^НАЧАЛО

/вводаДс/

—b— Y b2—4ac 2a

Эта последовательность формул и будет уточненным Алгоритмом.

Второе слово блок-схема. Так программисты называют своеобразный «графический портрет» алгоритма, согласно которому будет решаться задача. Блок-схема является незаменимым подспорьем при разработке программы. Даже опытные программисты, как правило, начинают работу над программой с наброска блок-схемы. При дальнейшей детализации она уточняется настолько, что перевод ее на язык команд почти не требует напряжения мысли.

Чтобы нарисовать блок-схему, особых дарований не требуется. Для обозначения блоков, составных элементов блок-схемы, достаточно четырех фигур: это круг, прямоугольник, параллелограмм и ромб. В верхней части блок-схемы находится кружок с надписью «Начало», в нижней — со словом «Конец». Все остальные блоки располагаются между этими двумя.

Параллелограммы со словами «Ввод» и «Вывод» указывают, в каких местах программы нужно вводить исходные данные или выводить на индикатор результаты вычислений. Сами же вычисления — формулами либо словами— описываются в прямоугольниках. Последовательно нарисованные прямоугольники можно объединять. К примеру, в нашей блок-схеме вычисления по всем формулам можно описать единым блоком (намечено пунктиром).

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

Наша блок-схема проста, но «работает» она не при всех значениях а, Ь, с. Что будет, например, если а=0? Уравнение при этом отнюдь не усложняется — наоборот, превращается в более простое, линейное, с

с ту

единственным корнем х=—— . Человек-вычислитель реагирует на подобные обстоятельства автоматиче-

р_ в р- т

I

~1

I

о1 = \/в1-ас

ч, _ -B+d

a

l

x = 4

B-ol

a

- - —

— — .

/ВыводХ„Ха/

КОНЕЦ

ски: в его памяти есть для этого необходимая информация. А в памяти машины имеется лишь то, что туда заложит человек — разработчик или программист. Разработчики ПМК вложили в него предостережение: делить на ноль нельзя. А в наших формулах для корней квадратного уравнения есть деление на а. На а, которое равно нулю. И машина не сможет справиться с задачей, хотя та и стала проще. Произойдет аварийный останов, и на индикаторе загорится: ЕГГОГ.

Значит, нужно научить нашего электронного помощника, как поступать в столь каверзных ситуациях! Иначе говоря, предусмотреть в алгоритме все мыслимые варианты исходных данных.

Ясно, что раз при $=0 расчеты следует производить по другим формулам, значит, нужно вставить в программу блок, где машина бы проверяла коэффициент а на равенство нулю и в зависимости от результатов проверки выбирала путь решения. Может далее статься, что и а=0 и Ь=0. Тогда из уравнения выпадает неизвестная величина х, и решать его вообще не имеет смысла. Нужно научить машину реагировать и на такое сочетание коэффициентов.

38