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

90
Однако так как число ошибок в программах заранее неизвестно, то неизвестна заранее и
продолжительность отладки программ на ЭВМ. Более того, даже после «завершения» отладки никто не
может гарантировать отсутствие ошибок. Естественно, что использование таких программ приводит к
возникновению отказов, сбоев и получению неверных результатов.
Структурный подход снижает количество ошибок в алгоритмах и программах. Однако и при этом
подходе число ошибок также заранее неизвестно. Хотя структурная форма записи и упрощает поиск и
исправление ошибок в текстах программ, гарантии отсутствия ошибок структурный подход не дает.
Однозначные суждения об отсутствии или наличии ошибок в алгоритмах и программах возможны
только при наличии описаний конечных результатов их выполнения. Такие описания принято называть
спецификациями.
Спецификации программ это точные, математически строгие описания результатов выполнения
алгоритмов и программ. Только при наличии спецификаций возможно создание алгоритмов и
программ, в которых можно гарантировать отсутствие ошибок.
Более того, при систематическом использовании спецификаций возможен не только анализ
правильности алгоритмов и программ, но и становится возможным составление программ с
одновременным доказательством правильности.
Безошибочное программирование
— это составление алгоритмов и программ с гарантиями
отсутствия в них ошибок. А составление алгоритмов и программ с одновременным доказательством
правильности называется доказательным программированием. И в том и другом подходе необходимо
составление спецификаций.
Для составления программ на любом языке программирования весьма полезно предварительное
составление реализуемых в них алгоритмов. Эти описания алгоритмов вместе со спецификациями
позволяют в полной мере оценить правильность составленных программ.
Пример составления алгоритмов с использованием в качестве иллюстрации спецификаций сценария
диалога с ЭВМ:
В соответствии с этими четырьмя картинками построим три вспомогательных алгоритма рисования
отдельных картинок из «Галереи» и общий алгоритм выбора картинок в соответствии с принятым
сценарием:
алг «Галерея картинок»
нач                             
алг «рисунок_треугольника» 
вывод («Список картинок:»)     
нач 
вывод («1. треугольник»)          
линия(150,50)-(100,100) 
вывод («2. прямоугольник»)        
линия(150,50)-(200,100) 
вывод («З. кольцо»)               
линия(100,100)-(200,100) 
запрос («номер=», п)            
кон
графический_экран 
если п = 1 то                 
алг «рисунок_прямоугольника»
рисунок_треугольника          
нач 
инес п = 2 то                    
рамка(50,50)-(150,100)
Сайт создан в системе uCoz