Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основы структурного программированияСодержание книги
Поиск на нашем сайте
Алгоритмизация — это составление алгоритмов для последующей реализации в виде программ для ЭВМ. Знание и использование систематических методов превращают алгоритмизацию в строгую дисциплину, позволяющую составлять программы на ЭВМ без ошибок. Порядок составления программ:
На практике широко используются два подхода к алгоритмизации: 1) традиционный подход (с использованием блок-схем); 2) структурный подход (с использованием структурной записи). Традиционный подход к составлению алгоритмов с применением блок-схем грешит большим числом ошибок в программах из-за их громоздкости и запутанности. Из-за этого традиционный подход к составлению программ чреват большим числом ошибок в создаваемых программах. Структурный подход к программированию заключается в обязательном предварительном составлении структурированных алгоритмов с записью их на псевдокоде. Простота чтения, понимания и исправления структурированных описаний позволяет существенно уменьшить количество ошибок в алгоритмах и программах и сократить время их отладки на ЭВМ.
При структурном подходе к составлению алгоритмов и программ используются три основных правила композиции:
1) альтернативный выбор; 2) циклический повтор; 3) вспомогательные алгоритмы (подпрограммы). Структурированными считаются алгоритмы и программы, составленные только с использованием указанных трех правил структурной композиции. Неструктурированными считаются алгоритмы и программы, в которых используются операторы goto... или отсутствует ступенчатая запись циклов и альтернатив. Основные правила структурной композиции алгоритмов с примерами записи их на языке структурированного Бейсика: 1. Альтернативный выбор: АлгоритмЗапись если х > 0 то if х > 0 then у:= х у = х иначе else у:= -х у = -х кесли end if 2. Циклический повтор:
АлгоритмЗапись пока х > 1 цикл do while х > 1 х: = х/2 х = х/2 кцикл loop 3. Вспомогательные алгоритмы (подпрограммы): АлгоритмПодпрограмма алг «у = |х|» mod: 'у = |х| нач ' если х > 0 то if х > 0 then у: = х у = х иначе else у:= -х у = -х все end if кон return Обращение к алгоритмуОбращение к подпрограмме «у = |х|» gosub mod
В качестве иллюстрации приведем пример структурированного алгоритма «Галерея картинок» и соответствующей структурированной программы:
В соответствии с этими четырьмя картинками построим три вспомогательных алгоритма рисования отдельных картинок из «Галереи» и общий алгоритм выбора картинок в соответствии с приведенным выше сценарием: Алг «Галерея картинок» нач алг «рисунок_треугольника» Вывод («Список картинок:») нач Вывод («1. треугольник») линия (150,50)-(100,100) Вывод («2. прямоугольник») линия (150,50)-(200,100) Вывод («З. кольцо») линия (100,100)-(200,100) запрос(«номер =», п) кон графический_экран если п = 1 то алг «рисунок_прямоугольника» рисунок_треугольника нач инес п = 2 то рамка (50,50)-(150, 100) рисунок_прямоугольника кон инес п = 3 то рисунок_кольца алг «рисунок_кольца» Иначе нач Вывод («нет такого рисунка») окружность (100,100),20 Все окружность (100,100), 50 Кон кон
Реализация данного алгоритма в виде структурированной программы: Алгоритмы: Программа: алг «Галерея картинок» ' Галерея картинок нач с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
Вопросы
1. Что такое алгоритмизация? 2. Что такое структурированные алгоритмы? 3. Что такое неструктурированные алгоритмы? 4. В чем достоинства структурированных программ? 5. В чем недостатки неструктурированных программ? 6. Можно ли гарантировать отсутствие ошибок в программах? Задания
1. Постройте вспомогательные алгоритмы и подпрограммы с выделением параметров для рисования следующих блоков: а) крыша; б) дерево; в) стена с окном; г) столб. 2. Предложите рисунки и составьте алгоритмы рисования, используя вспомогательные алгоритмы из предыдущего задания, для следующих строений: а) домика с окном и деревом; б) домика с двумя окнами; в) домика с собачьей будкой; г) двухэтажного домика. 3. Составьте алгоритм вывода на экран полной таблицы умножения. 4. Составьте, используя вспомогательные алгоритмы из предыдущих задач, алгоритмы изображения на экране: а) многосекционных домов с различным числом секций; б) многоэтажных домов с различным числом этажей и секций.
|
||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 1629; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.192.174 (0.006 с.) |