58
З а д а ч и
1. Постройте вспомогательные алгоритмы и подпрограммы с выделением параметров для рисования следую-
щих блоков:
а) крыша;
б) дерево;
в) стена с окном;
г) столб.
2. Предложите рисунки и составьте алгоритмы рисования, используя вспомогательные алгоритмы из преды-
дущего задания, для следующих строений:
а) домика с окном и деревом;
б) домика с двумя окнами;
в) домика с собачьей будкой;
г) двухэтажного домика,
3. Составьте алгоритм вывода на экран полной таблицы умножения.
4. Составьте, используя вспомогательные алгоритмы из предыдущих задач, алгоритмы изображения на экра-
не:
а) многосекционных домов с различным числом секций;
б) многоэтажных домов с различным числом этажей и секций.
4.4. Основы безошибочного программирования
Основной недостаток традиционной практики составления программ для ЭВМ заключа-
ется в том, что при таком подходе никто не может гарантировать отсутствие в них ошибок. Осо-
бенностью традиционной практики является поиск ошибок в программах при их отладке на ЭВМ.
Однако, так как число ошибок в программах заранее неизвестно, то неизвестна заранее и
продолжительность отладки программ на ЭВМ. Более того даже после «завершения» отладки ни-
кто не может гарантировать отсутствие ошибок. Естественно, что использование таких программ,
приводит к возникновению отказов, сбоев и получению неверных результатов.
Структурный подход снижает количество ошибок в алгоритмах и программах. Однако и
при этом подходе число ошибок также заранее неизвестно. Хотя структурная форма записи и уп-
рощает поиск и исправление ошибок в текстах программ, гарантии отсутствия ошибок структур-
ный подход не дает.
Однозначные суждения об отсутствии или наличии ошибок в алгоритмах и программах
возможны только при наличии описаний конечных результатов их выполнения. Такие описания
принято называть спецификациями.
Спецификации программ - это точные, математически строгие описания результатов вы-
полнения алгоритмов и программ. Только при наличии спецификаций возможно создание алго-
ритмов и программ, в которых можно гарантировать отсутствие ошибок.
Более того, при систематическом использовании спецификаций возможен не только ана-
лиз правильности алгоритмов и программ, но и становится возможным составление программ с
одновременным доказательством правильности.
Безошибочное программирование - это составление алгоритмов и программ с гарантиями
отсутствия в них ошибок. А составление алгоритмов и программ с одновременным доказательст-
вом правильности называется доказательным программированием. И в том и другом подходе не-
обходимо составление спецификаций.
Для составления программ на любом языке программирования весьма полезно предва-
рительное составление реализуемых в них алгоритмов. Эти описания алгоритмов вместе со спе-
цификациями позволяют в полной мере оценить правильность составленных программ. Пример
составления алгоритмов с использованием в качестве иллюстрации спецификаций сценария диа-
лога с ЭВМ:
|