Технология решения задач

Кцикл

Все

Цикл

Нач

Кон

Окружность(100,100),20 окружность(100,100),50

Нач

Рамка(50,50)-(150,100) кон

Кон

Нач линия(150,50)-(100,100) линия(150,50)-(200,100) линия(100,100)-(200,100)

Нач

вывод («Список картинок:») вывод («1. треугольник») вывод («2. прямоугольник») вывод («3. кольцо») запрос («номер=», п)


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



графический_экран если п = 1 то

рисунок_треугольника инес п = 2 то

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

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

вывод («нет такого рисунка») все кон


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

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


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

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

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

Сценарий «Звездное небо»




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


Алгоритм

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

запрос(«звезд=», п) графический_экран от k = 1 до п цикл x: = случайное [0:200] у: = случайное [0:200] точка (х,у) кцикл кон


Программа ' звездное небо сls input «звезд=», n screen 2,0 for k = 1 to n х = rnd*200 у = rnd*200 pset (x,y),3 next k end


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


{


Сценарий «Угадай-ка» Угадай число от 0 до 100

число =? < х >

мало

много молодец, умница


^


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


Сравнение алгоритма со сценарием показывает их полное соответствие друг другу.

Алгоритм алг «угадай-ка» нач

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

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

z: = случайное [0:100]

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

при х = z вых

если х < z то вывод («мало»)

инеc х > z то вывод («много»)

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


Программа ' угадай-ка сls print «Угадай число» print «от 1 до 100» z = int (rnd* 100) do

input «число=», х if х = z then exit do if х < z then

print «мало» elseif х > z then print «много» end if loop

print «молодец, умница» end




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: