Декомпозируем действие "Расчет двух различных корней". Это действие представляет цепочку из трех элементарных операторов. Выполним проверку информационной согласованности действий:
Входная информация: a, b, c, d
{ Расчет двух различных корней }
x1:= ((-b) — Sqrt (d))/(2.0*a);
x2:= ((-b) + Sqrt (d))/(2.0*а);
Write ('два
различных корня x1 = ', x1:10:4);
WriteLn (' x2 = ', х2:10:4);
Здесь вывод одной строки осуществлен двумя операторами. Осуществим сборку всей программы, удалив избыточные комментарии и избыточные операторные скобки begin — end, охватывающие лишь один оператор. Испытаем полученную программу на всех заранее подготовленных тестах. Собранный вариант программы:
Program Kvadrat;
{ Программа решения квадратного уравнения
вида a*x*x + b*x + c = 0 с произвольными значениями
коэффициентов a, b, c типа вещественный }
Uses
Crt, Dos;
Var
a, b, c: Real; {Коэффициенты квадратного уравнения}
xl, x2: Real; {Корни квадратного уравнения}
dl: Real; {Значение дискриминанта}
begin
ClrScr; { Очистка экрана }
{Вывод информации о назначении программы}
WriteLn ('Программа решения квадратного уравнения');
WriteLn (
'вида a*x*x + b*x + c = 0 с произвольными', 'значениями');
WriteLn ('коэффициентов a, b, c типа ', 'вещественный');
WriteLn ('два равных корня х = ', (-b)/(2.0*a):10:4);
if d < -1e-6 then
WriteLn ('уравнение не имеет решения');
end;
if ((Abs(a) <= 1e-6) and (Abs(b) > 1e-6))
then
begin
{ Решение линейного уравнения }
x1:= — c/b;
WriteLn ('уравнение линейное х = ', x1:10:4);
end;
if ((Abs(a) <= 1e-6) and (Abs(b) <= 1e-6 and
(Abs(c) > 1e-6))
then
WriteLn ('Нет решения');
if ((Abs(a) <= 1e-6 and (Abs(b) <= 1e-6 and
(Abs(c) <= 1e-6))
then
begin
Write ('Бесчисленное множество решений',
'уравне');
WriteLn ('ния (корни — любые числа)');
end;
WriteLn;
Write ('Для завершения программы нажмите');
WriteLn ('любую клавишу…');
repeat until KeyPressed; { Цикл ожидания
нажатия любой клавиши }
end.
5.10. ПРИМЕР ВЫПОЛНЕНИЯ УЧЕБНОЙ РАБОТЫ "РАЗРАБОТКА АЛГОРИТМА УМНОЖЕНИЯ"
В качестве примера приводится учебная работа, выполненная одним из обучаемых. Работа была оформлена на отдельных листах формата A4. Курсивом выделены пояснения авторов учебника, которые были дополнительно ими внесены в текст работы.
Страница 1(без нумерации) представляет собой титульный лист с наименованием: "ЗАДАНИЕ НА СОСТАВЛЕНИЕ СТРУКТУРИРОВАННОГО АЛГОРИТМА".