Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Принципы структурного программированияСодержание книги
Поиск на нашем сайте 1. Разработка алгоритма «сверху вниз» (метод пошаговой детализации). Начиная со спецификации, полученной в результате анализа задачи, выделяют небольшое число достаточно самостоятельных подзадач и описывают спецификации для каждой. Это будет первый шаг детализации. С каждой из выделенных подзадач поступают так же (второй шаг детализации) и т.д. Таким образом получается последовательность все более детальных спецификаций, приближающаяся к окончательной версии программы. 2. Модульность. Метод пошаговой детализации дает возможность разбить алгоритм на части (модули), каждая из которых решает самостоятельную подзадачу. Размеры модулей должны быть небольшими, а инструкции, входящие в состав модуля, должны давать исчерпывающее представление о действиях, выполняемых модулем. Связи по управлению между модулями осуществляются посредством обращений к ним, а обмен информацией - через параметры и глобальные переменные. 3. Каждый модуль должен иметь один вход и один выход. Это позволяет упростить стыковку модулей в сложной программе. 4. Логика алгоритма должна опираться на небольшое число достаточно простых базовых управляющих структур:
3. Цикл: а) цикл с предусловием б) цикл с постусловием
4. Выбор из нескольких альтернатив (переключатель)
Фундаментом структурного программирования является теорема о структурировании. Она утверждает, что как бы ни сложна была задача, схема алгоритма может быть представлена с использованием ограниченного числа элементарных управляющих структур. Теорема о полноте. Базовые элементарные структуры: следование, разветвление и цикл - обладают функциональной полнотой, то есть любой алгоритм может быть реализован в виде композиции этих конструкций. Пример. Применим принципы структурного программирования для разработки и описания алгоритма решения следующей небольшой задачи. Требуется определить, пройдет ли кирпич с ребрами a, b и c в прямоугольное окно со сторонами х, у. Грани кирпича должны быть параллельны или перпендикулярны сторонам окна. Если бы стороны окна и ребра кирпича были упорядочены, то для решения задачи достаточно сравнить меньшую сторону с меньшим ребром и большую сторону со средним ребром. Выделяем подзадачи: 1. Упорядочение пары чисел по неубыванию. 2. Упорядочение тройки чисел по неубыванию. 3. Определение, пройдет ли кирпич с ребрами a£b£c в прямоугольное окно со сторонами х £ у. Алгоритмы решения задач 1 и 2 опишем, как алгоритмы для подпрограмм, в дальнейшем на них можно ссылаться в предопределенных блоках.
Спецификация алгоритма Sort2. Sort2(а, b) сортирует пару вещественных чисел a и b по неубыванию. Входные параметры: a, b -вещественные числа. Выходные параметры: a, b, удовлетворяющие условию a £ b. Аналогично описывается спецификация алгоритма Sort3. Решение задачи сортировки пары заключается в обмене значениями переменных a и b,если a > b. Обмен значениями пары переменных - еще одна подзадача (подзадача подзадачи). Назовем эту подзадачу Swap.
4. ЯЗЫКИ ПРОГРАММИРОВАНИЯ Язык программирования - это строгий набор правил, символов и конструкций, которые позволяют в формульно-словесной форме описывать алгоритмы для обработки данных на ЭВМ. Каждая ЭВМ имеет свою систему команд, и программа в машинных кодах может быть выполнена сразу. Вначале язык машинных кодов был единственным языком программирования. Но использование этого языка - очень трудоемкий процесс, программы получаются громоздкими, их трудно отлаживать, модифицировать, практически невозможно перенести на другую ЭВМ. Возникла необходимость создания новых способов и средств записи программ. Стали появляться новые языки программирования. Их создание шло по двум направлениям: машинно ориентированные и машинно независимые (алгоритмические) языки. Машинно ориентированные языки (ассемблер, автокод) - языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Алгоритмических языков - языков высокого уровня - в настоящее время более 500. Каждый язык имеет свои особенности, но есть ряд общих черт, отличающих алгоритмические языки от языков низкого уровня: 1. Алгоритмические языки обладают большими выразительными возможностями, имея широкий алфавит, что повышает наглядность текста программ. 2. Набор операций не зависит от машинных операций, а выбирается для удовлетворения потребностей конкретной прикладной области. 3. Операции задаются в удобном виде. 4. Одним предложением можно задать значительный этап обработки данных. 5. Программным объектам, над которыми выполняются действия, присваиваются имена, и обращение к ним происходит по имени. 6. В алгоритмических языках предусмотрен широкий набор типов данных. При использовании алгоритмических языков мы идем на издержки. Во-первых, программа должна быть оттранслирована (переведена на язык машинных кодов программой-транслятором), на это требуется время. Во-вторых, полученная после трансляции программа может быть менее эффективной, чем составленная опытным программистом на языке низкого уровня с учетом специфики системы команд и организации памяти. Но эти недостатки окупаются удобствами для программиста.
|
|||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 303; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.3 (0.01 с.) |