КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Графический_экранесли п = 1 то алг «рисунок_прямоугольника» рисунок_треугольника нач инес п = 2 то рамка(50,50)-(150,100) рисунок_прямоугольника кон инес п = 3 то рисунок_кольиа алг «рисунок_кольца» иначе нач вывод («нет такого рисунка») окружность( 100,100),20 все окружность(100,100),50 кон кон Правильность каждого из вспомогательных алгоритмов и подпрограмм определяется сравнением с соответствующими фрагментами сценария, а правильность всего алгоритма и соответствующей программы - со сценарием в целом. Данный подход к составлению алгоритмов и программ с использованием спецификаций - позволяет реализовать основную идею безошибочного программирования - создание алгоритмов и программ,правильных по построению. Такой подход может применяться к составлению алгоритмов и программ для любых современных языков программирования - Паскаль, Си, Ада, Модула, Бейсик и т. д. Приведем примеры составления сложных алгоритмов и программ с циклами с использованием спецификаций. Первый пример - построение алгоритма и программы изображения на экране картинки «Звездное небо» из n случайных точек: В приводимом ниже алгоритме для формирования и вывода последовательности случайных точек на экране используется цикл со счетчиком и датчик случайных чисел для генерации координат «звезд».
Алгоритм Программа алг «звездное небо» ' звездное небо нач сls запрос(«звезд=», п) input «звезд=», n графический_экран screen 2,0 от k = 1 до п цикл for k = 1 to n x: = случайное [0:200] х = rnd*200 у: = случайное [0:200] у = rnd*200 точка (х,у) pset (x,y),3 кцикл next k кон end
Второй пример - составление с использованием спецификаций алгоритма и программы игры «Угадай-ка». В этой игре ЭВМ «загадывает» число от 0 до 100, а человек должен его отгадать, вводя пробные числа с клавиатуры. Для составления алгоритма и программы примем следующий сценарий:
Сценарий«Угадай-ка»
Для реализации этого сценария воспользуемся циклом с выходом, в котором задается вопросчисло=? и проверяются числа, вводимые человеком. Выход из цикла происходит после совпадения ответа с числом, задуманным ЭВМ:
АлгоритмПрограмма алг «угадай-ка» ' угадай-ка нач сls вывод («Угадай число») 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 «молодец, умница» кон end
Сравнение алгоритма со сценарием показывает их полное соответствие друг другу.
|