Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_Programmirovanie_1_Kurs_1_Sem_Anosov_Yu...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.2 Mб
Скачать

Var a,b,X : real;

Begin

Readln(a);

Readln(b);

if a>b then X:=b/a + 2

else if a=b then X:=-57

else X:=(a-b) / b;8

Writeln(X);

End.

Это вполне рабочая программа, выполнение которой на компьютере выдаст следующий результат:

Этап пятый. Структуризация и комментирование кода программы и сообщений пользователю.

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

Var a,b,X : real;

Begin

// Ввод исходных данных.

Writeln('Введите исходные данные');

Write('a='); Readln(a);

Write('b='); Readln(b);

// Расчетная часть.

if a>b then X:=b/a + 2

else if a=b then X:=-57

else X:=(a-b) / b;

// Вывод результатов.

Writeln('Результат:');

Writeln('X=',X);

End.

Результат работы этого варианта программы буде выглядеть гораздо нагляднее:

Этап шестой. Тестирование программы и определение её применимости для вычислений при различных значениях исходных данных.

Тестирование разработанной нами программы показывает, что, в ряде случаев программа может выдавать сообщения об ошибке.

Т ак же как и в работе № 1, при разработке данной программы мы не провели анализ предметной области, и не определили области допустимых значений исходных данных.

Так, при вводе таких данных, как: a=0, b=-1, программа выдаст сообщение о неверной операции. При таких исходных данных в программе будет выполнено первое условие «a>b» и вычисление пойдёт по первой ветви, в которой рассчитывается значение по формуле: «b/a + 2». В результате возникнет ситуация деления на ноль, так как переменная равна «a» нулю.

В случае же ввода таких данных, как: a=-5, b=0, ситуация деления на ноль возникнет в третье ветви вычислений, по условию «a<b», в которой рассчитывается значение формулы: и вычисление пойдёт по первой ветви, в которой рассчитывается значение по формуле «(a-b) / b».

Этап седьмой. Доработка программы по результатам тестирования.

Одной из основных трудностей при разработке реальных программ является выявление и «нейтрализация» всех возможных критических ситуаций, которые могут возникнуть в процессе работы программы.

В нашем примере нам удалось выявить две таких ситуации:

  • Деление на ноль при вычислении по первой ветви, когда переменная «a>b» и, при этом, «a=0».

  • Деление на ноль при вычислении по третьей ветви, когда переменная «a<b» и, при этом, «b=0».

Для нейтрализации этих ситуаций нам необходимо добавить в код программы две дополнительных проверки:

В первой ветви вычислений необходимо добавить проверку равенства «a=0».

В третьей ветви – проверку равенства «b=0».

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

В результате доработки код программы примет следующий вид: