Техника - молодёжи 1985-06, страница 40
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
/ВыводХ„Ха/ КОНЕЦ ски: в его памяти есть для этого необходимая информация. А в памяти машины имеется лишь то, что туда заложит человек — разработчик или программист. Разработчики ПМК вложили в него предостережение: делить на ноль нельзя. А в наших формулах для корней квадратного уравнения есть деление на а. На а, которое равно нулю. И машина не сможет справиться с задачей, хотя та и стала проще. Произойдет аварийный останов, и на индикаторе загорится: ЕГГОГ. Значит, нужно научить нашего электронного помощника, как поступать в столь каверзных ситуациях! Иначе говоря, предусмотреть в алгоритме все мыслимые варианты исходных данных. Ясно, что раз при $=0 расчеты следует производить по другим формулам, значит, нужно вставить в программу блок, где машина бы проверяла коэффициент а на равенство нулю и в зависимости от результатов проверки выбирала путь решения. Может далее статься, что и а=0 и Ь=0. Тогда из уравнения выпадает неизвестная величина х, и решать его вообще не имеет смысла. Нужно научить машину реагировать и на такое сочетание коэффициентов. 38 |