Navigation bar
  Print document Start Previous page
 124 of 179 
Next page End  

124
алг «у = тах(а, b,с)»        
Результаты 
нач 
если а > b то        
при а > b
у := а                
у = а
инес b > с то           
при b > с
у := b                
у = b
инес с > а то           
при с > а
у := с                  
у = с
кесли                
при не (b > с) 
кон
Справа от алгоритма приведены результаты вычислений с указанием условий, при которых они
получаются. На основании этих фактов можно заключить, что конечные результаты вычисления имеют
три варианта:
а, при а > b, 
у =   
b, при b > с и b
а, 
с, при с > а и с
b.
В то же время значение максимума должно быть равно:
а, при а
b и а
с, 
mах =  b, при b
с и b
а,
с, при с
а и с
b.
Во всех трех случаях видны различия в условиях получения и определения максимальных значений.
Покажем, что эти различия существенны и утверждение о том, что алгоритм дает правильные
результаты для всех данных, неверно.
Для опровержения общего утверждения достаточно указать хотя бы один контрпример. В данном
случае утверждение о правильности алгоритма гласило бы: для любых значений переменных а, b, с
конечным было бы значение mах (а, b, с).
Контрпримером в данном случае будут значения: а = 2, b = 1, с = 3. Для этих данных по
определению mах = 3, а по результатам выполнения алгоритма у = 2. Следовательно, в алгоритме
содержится ошибка.
Однако оказывается, что это не единственная ошибка. Более тонкие ошибки вскрывает второй
контрпример: а = 1, b = 1, c = 1. Для этих данных в алгоритме вовсе не определен результат вычислений
у = ? и конечный результат выполнения программы будет непредсказуем!?
Правильное решение этой задачи можно получить применением систематических методов, составив
постановку и описание метода решения.
Постановка задачи            Метод решения 
Вычисление mах (а, b, с).
Дано: а, b, с - три числа.      mх = mах(mах(а,b),с) 
Треб.: mх – максимум.         mах(х,у) =   х, при х
у 
Где: mх = mах (а, b, с).                   
        у, при у
х
Данный метод решения непосредственно состоит из формул определения максимумов из трех и двух
чисел. Реализация этого метода в форме алгоритма может быть такой:
алг «тх = тах(а,b,с)»
Результаты
нач
если а
b то
при а
b
тх := а
mx = a
иначе
при b > а
Сайт создан в системе uCoz