Кон кон
Все окружность (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