Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Принципы структурного программированияСодержание книги
Поиск на нашем сайте
1. Разработка алгоритма «сверху вниз» (метод пошаговой детализации). Начиная со спецификации, полученной в результате анализа задачи, выделяют небольшое число достаточно самостоятельных подзадач и описывают спецификации для каждой. Это будет первый шаг детализации. С каждой из выделенных подзадач поступают так же (второй шаг детализации) и т.д. Таким образом получается последовательность все более детальных спецификаций, приближающаяся к окончательной версии программы. 2. Модульность. Метод пошаговой детализации дает возможность разбить алгоритм на части (модули), каждая из которых решает самостоятельную подзадачу. Размеры модулей должны быть небольшими, а инструкции, входящие в состав модуля, должны давать исчерпывающее представление о действиях, выполняемых модулем. Связи по управлению между модулями осуществляются посредством обращений к ним, а обмен информацией - через параметры и глобальные переменные. 3. Каждый модуль должен иметь один вход и один выход. Это позволяет упростить стыковку модулей в сложной программе. 4. Логика алгоритма должна опираться на небольшое число достаточно простых базовых управляющих структур:
1. Следование
2 Развилка
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; просмотров: 244; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.142.42 (0.007 с.) |