106
г) самого старшего из своих родных и друзей.
5.2. Анализ правильности алгоритмов
На практике часто приходится встречаться с программами, содержащими ошибки. Например, в сети
Интернет можно указать много зарубежных и отечественных сайтов, которые время от времени дают
сбои.
Программа содержит ошибки, если ее выполнение на ЭВМ приводит к получению сбоев, отказов
или неправильных результатов. Программу в таком состоянии нельзя использовать для решения
практических задач.
Проявления ошибок:
Программа
данные
ЭВМ
{ отказ | сбой | ошибка }
Отказ - это ситуация, когда выполнение программы прекращается вообще. Программы, содержащие
такого рода ошибки считаются неработоспособными, и от их использования следует отказываться.
Сбой - это потеря части данных либо получение непредусмотренных данных. Такого рода ошибки
говорят о их частичной неработоспособности программ либо об их недостаточной надежности.
Результат неправильный, если он не соответствует требованиям, предъявляемым к работе
программ. Программы, содержащие такие ошибки, считаются работоспособными, но их применение
может приводить к получению ошибочных результатов, сбоев или отказов.
Оценка программ:
Задача
исходное требуемое
данные
программа
результаты
О правильности программ нельзя утверждать ничего если неизвестны предъявляемые к ним
требования. Только при наличии строгих, четких спецификаций можно судить о правильности работы
программ.
В качестве примера рассмотрим решение квадратного уравнения:
х² + 3
х + 2 = 0.
Исходные данные - коэффициенты а
= 1, b =
3,
с
=
2. Требуемые результаты - пара чисел х1 и x2,
являющихся корнями уравнения. Посмотрим, будут ли корнями уравнения пары чисел:
а) х1 = 2, x2 = 3; б) x1 = -2, x2 = -3.
Решением уравнений являются числа, подстановка которых превращает уравнение в тождество. В
первом случае подстановка чисел х1 = 2, х2 = 3 в уравнение дает:
2² + 3
2 + 2 = 12
0 - неправильно,
3² +3
3+2 = 20
0 - неправильно.
Следовательно, числа х1 = 2, х2 = 3 не являются правильными результатами.
Подстановка в уравнение чисел х1 = -2, х2 = -3:
(-2)² + 3
(-2) +2 = 0- правильно;
(-3)² + 3
(-3) +2 = 0- правильно.
|