русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Принципы структурного программирования


Дата добавления: 2015-06-12; просмотров: 2727; Нарушение авторских прав


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. В алгоритмических языках предусмотрен широкий набор типов данных.

При использовании алгоритмических языков мы идем на издержки. Во-первых, программа должна быть оттранслирована (переведена на язык машинных кодов программой-транслятором), на это требуется время. Во-вторых, полученная после трансляции программа может быть менее эффективной, чем составленная опытным программистом на языке низкого уровня с учетом специфики системы команд и организации памяти. Но эти недостатки окупаются удобствами для программиста.



<== предыдущая лекция | следующая лекция ==>
Псевдокод | Качество программ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.271 сек.