Кон кон

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

Иначе нач

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

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

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

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

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

инес п = 3 то

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

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

 

Реализация данного алгоритма в виде структурированной программы:

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

алг «Галерея картинок» ' Галерея картинок

нач сls

вывод («Список картинок:») print «Список картинок:»

вывод («1. треугольник») print «1. треугольник»

вывод («2. прямоугольник») print «2. прямоугольник»

вывод («З. кольцо») print «3. кольцо»

запрос(«номер =», п) input «номер =», n

если п = 1 то if n = 1 then

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

инеc п =2 то if n = 2 then

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

инеc п = 3 то if n = 3 then

рисунок_кольца gosub ring

инеc п < 1 или п > 3 то if n < 1 or n >3 then

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

все 'все

кон end

алг «рисунок треугольника» treug: 'рисунок треугольника

нач cls

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

линия (150,50)-(100,100) line (150,50)-(100,100),3

линия (150,50)-(200,100) line (150,50)-(200,100),3

линия (100,100)-(200,100) line (100,100)-(200,100),3

кон return

алг «рисунок прямоугольника» box: 'рисунок прямоугольника

нач cls

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

рамка (50,50)-(150,100) line (50,50)-(150,100),3,b

кон return

алг «рисунок кольца» ring: 'рисунок кольца

нач els

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

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

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

кон return

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

На практике используетсяболее широкий набор правил структурной композиции алгоритмов и программ, принятых в современных языках программирования, — правила альтернативного выбора, а также циклы с выходами и со счетчиками.

 

1. Условные действия:

если у < 0 то if у < 0 then

вывод («недопустим») print «недопустим»

кесли end if

 

2. Многоальтернативный выбор:

если х > 1 то if х > 1 then

y: = 1 у = 1

инеc х < —1 то elseif х < —1 then

у: = -1 у = -1

иначе else

у: = х у = х

кесли end if

 

3. Циклы со счетчиком:

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

вывод (k ∙ k) print k*k

кцикл next k

 

4. Циклы с выходами:

цикл do

s: = s + х s = s + х

при х < 1 выход if x < 1 then exit do

х: = x/2 x = x/2

кцикл loop

 

В циклах в общем случае возможны несколько выходов. Дополнительные выходы считаются допустимыми даже для циклов со счетчиками. Приведем примеры решения задач с использованием дополнительных правил структурирования алгоритмов и программ.

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

 

АлгоритмПрограмма
алг «звездное небо» ' звездное небо»

нач cls

цикл do

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

при п <= 0 выход if n <= 0 then exit do

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

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

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

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

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

кцикл next k

кцикл end do

кон end

Пример структурированного алгоритма и программы с применением многоальтернативного выбора и циклов с несколькими выходами:

 

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

нач 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

кцикл end do

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

кон end