Графический_экран

если п = 1 то алг «рисунок_прямоугольника»

рисунок_треугольника нач

инес п = 2 то рамка(50,50)-(150,100)

рисунок_прямоугольника кон

инес п = 3 то

рисунок_кольца алг «рисунок_кольца»

иначе нач

вывод («нет такого рисунка») окружность(100,100),20

все окружность(100,100),50

кон кон

 

Правильность каждого из вспомогательных алгоритмов и подпрограмм определяется сравнением с соответствующими фрагментами сценария, а правильность всего алгоритма и соответствующей программы — со сценарием в целом.

Данный подход к составлению алгоритмов и программ с использованием спецификаций позволяет реализовать основную идею безошибочного программирования — создание алгоритмов и программ, правильных по построению. Такой подход может применяться к составлению алгоритмов и программ для любых современных языков программирования — Паскаль, Си, Ада, Модула, Бейсик и т.д.

Приведем примеры составления сложных алгоритмов и программ с циклами с использованием спецификаций. Первый пример — построение алгоритма и программы изображения на экране картинки «Звездное небо» из n случайных точек:

 

 

В приводимом ниже алгоритме для формирования и вывода последовательности случайных точек на экране используется цикл со счетчиком и датчик случайных чисел для генерации координат «звезд».

АлгоритмПрограмма

алг «звездное небо» ' звездное небо

нач cls

запрос(«звезд=», п) input «звсзд=», n

графический _экран screen 2,0

от k = 1 до п цикл for k = 1 to п

x: = случайное [0:200] х = rnd*200

у: = случайное [0:200] у = rnd*200

точка (х,у) pset (x,y),3

кцикл next k

кон end

 

Второй пример — составление с использованием спецификаций алгоритма и программы игры «Угадай-ка». В этой игре ЭВМ «загадывает» число от 0 до 100, а человек должен его отгадать, вводя пробные числа с клавиатуры. Для составления алгоритма и программы примем следующий сценарий:

 

 

Для реализации этого сценария воспользуемся циклом с выходом, в котором задается вопросчисло=? и проверяются числа, вводимые человеком. Выход из цикла происходит после совпадения ответа с числом, задуманным ЭВМ.

АлгоритмПрограмма

алг «угадай-ка» ' угадай-ка

нач cls

вывод («Угадай число») print «Угадай число»

вывод («от 1 до 100») print «от 1 до 100»

z: = случайное [0:100] z = int (rnd*100)

цикл do

запрос(«число=», х) input «число=», х

при х = z вых if х = z then exit do

если х < z то if х < z then

вывод («мало») print «мало»

инеc х > z то elseif х > z then

вывод («много») print «много»

все end if

кцикл loop

вывод («молодец, умница») print «молодец, умница»