Технологии программирования | страница 127



Рис. 5.16. Макет изображения экрана монитора


>ClrScr; {Очистка экрана}

>{Вывод информации о назначении программы}

>WriteLn ('Программа решения квадратного уравнения');

>WriteLn ('вида а*x*x + b*x + с = 0 с произвольны',>'ми значениями');

>WriteLn ('коэффициентов a, b, c типа вещественный');

>WriteLn;

>{Ввод значений коэффициентов a, b, c}

>Write ('Укажите значение коэффициента а = ');

>ReadLn (a); {Ввод а}

>Write ('Укажите значение коэффициента b = ');

>ReadLn (b); {Ввод b}

>Write ('Укажите значение коэффициента с = ');

>ReadLn (с); {Ввод с}

>{ Вывод проверочно-протокольной информации >о введенных значениях коэффициентов a, b, c}

>WriteLn;

>WriteLn ('Решается квадратное уравнение');

>WriteLn (а:10:4, '*x*x + ', b:10:4, '* x + ', >с:10:4, ' = 0:'); { Само решение квадратного уравнения }

>WriteLn;

>Write ('Для завершения программы нажмите');

>WriteLn (' любую клавишу…');

>Repeat until KeyPressed; { Цикл ожидания нажатия >любой клавиши }

Действие "Очистка экрана" — артефакт реализации, а не задачи, но насколько приятнее обозревать экран без "лишней информации". Также артефактом реализации явились два последних оператора, которые обеспечивают удобство просмотра результатов работы программы. При отсутствии этих операторов и нахождении в оболочке Turbo Pascal для просмотра результатов работы программы пришлось бы вручную переключиться в окно результатов.

Написание операторов WriteLn, Write, ReadLn не вызвало затруднений благодаря заранее подготовленному макету изображения экрана монитора.

Действие "Само решение квадратного уравнения" представлено комментарием и пустой строкой, отмечающей факт добавления действий в будущем. Это объясняется тем, что решение и вывод результатов решения многовариантны, а, следовательно, действие "Само решение квадратного уравнения" нельзя представить ЦЕПОЧКОЙ СЛЕДОВАНИЙ. Многовариантность предполагает управляющие структуры.

Уточняем комментарии, операторы вывода Write и WriteLn.

Проводим проверку информационной согласованности СЛЕДОВАНИЙ в цепочке. Убеждаемся, что все последующие действия обеспечены информацией, определенной предшествующими действиями, в конкретном случае — операторами ReadLn. Особое внимание обращаем на действия, использующие ранее определенную информацию. Это оператор

>WriteLn (a:10:4, '*x*x + ', b:10:4, '*x + ', c: 10:4, ' = 0: ');

и будущее действие

>{ Само решение квадратного уравнения }.

Убеждаемся, что к моменту их выполнения значения коэффициентов a, b, c уже определены. Теперь можно собрать реализованную часть программы и путем ее выполнения на тестах убедиться, что действия ввода и вывода введенной информации программы исполняются корректно.