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

0 голосов
67 просмотров

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


Информатика (12 баллов) | 67 просмотров
Дан 1 ответ
0 голосов

Совершенно нет, рассмотрим такую вот программу:К примеру программа должна определять, является ли число положительным, предположим что имеется такая функция:

boolian isNumberMoreThenZero(integer num)   //функция булевая, т.е.
//возращает одно из значений - true/false, принемает на вход число
{
    boolian result;     //есть переменная хранящая результат,
                                //или ответ если пожелаете

    result = false;     //по умолчанию он равен false

        if (num <= 0)    //тут к примеру <strong>ОШИБКА,
                                //проверяем является ли число больше либо равно 0
                                //(мы допустили ошибку и указали меньше)

        {
            result = true;      //если да, то число положительное и ответ true
        }
    return result;     //вернуть значение
}

Если на входных данных будет 0 - он является положительным числом, программа выведет true - что является правильным ответом.Но если мы введем любое отрицательное число, то ответ так же будет true - что является ошибкой.Подай на вход мы положительное число, то программа выведет false - и это ошибка.
Вывод такой:Функция функционирует правильно в часных случаях, к примеру как с 0, однако в других случаях она не способна вывести правельный ответ.Проще говоря, просто подтверждаем ответ на ваш вопрос - "НЕТ, программа не будет правильно функционировать в целом, а лишь в частных случаях".Производный вопрос - а как этого избежать? Ответ: покрыть код программы и все её логические блоки - тестами.

(1.4k баллов)
0

Спасибо за отметку "Лучшый ответ" и нажатую кнопочку "Спасибо" (: