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



>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

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

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

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

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

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

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

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

>{ Вывод проверочно-протокольной информации

>о введенных значениях коэффициентов a, b, c }

>WriteLn;

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

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

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

>if (Abs (a) > 1e-6)

>then

>begin

>{ Продолжение решения с вычислением дискриминанта }

>{ Вычисление дискриминанта квадратного уравнения }

>d:= Sqr(b) — 4.0*а*с;

>{ Решение уравнения }

>if d > 1e-6

>then

>begin

>{ Расчет двух различных корней }

>x1:= (-b) — Sqrt(d)/(2.0*a);

>х2:= (-b) + Sqrt(d)/(2.0*a);

>Write ('два различных корня x1 = ', >x1:10:4);

>WriteLn (' х2 = ', х2:10:4);

>end;

>if ((d >= -1e-6) and (d <= 1e-6))

>then

>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(без нумерации) представляет собой титульный лист с наименованием: "ЗАДАНИЕ НА СОСТАВЛЕНИЕ СТРУКТУРИРОВАННОГО АЛГОРИТМА".