русс | укр

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

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

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

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


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

Основные идеи структурного программирования

К основным идеям структурного программирования относятся:

- отказ от бессистемного использования оператора goto;

- структуризация алгоритма;

- пошаговая детализация.

При разработке алгоритма нужно руководствоваться следующими рекомендациями:

- алгоритм необходимо составлять поэтапно;

- сложная задача должна разбиваться на простые, легко воспринимаемые части, имеющие один вход и один выход;

- логика алгоритма должна опираться на достаточное число простых управляющих структур.

Использование этих положений позволяет внести определенную систему в труд программиста и составлять алгоритмы, которые легко читать и проверять.

Фундаментом структурного программирования является теорема о структурировании. Эта теорема устанавливает, что, как бы ни была сложна задача, схема соответствующей программы всегда может быть представлена с использованием весьма ограниченного числа элементарных структур, которые могут соединяться между собой, образуя более сложные структуры, но по тем же самым элементарным схемам.

В структурном программировании существует несколько базовых управляющих структур. Рассмотрим их.

Структура Следование, где каждое действие выполняется после того, как закончится предыдущее (рис. 1.3).

Рисунок 1.3 – Структура Следование

Структура Разветвление – выполнение действий, определяемых признаком P. В зависимости от него для передачи информации выбирается либо ветвь «Да», либо ветвь «Нет» (рис. 1.4).

Рисунок 1.4 – Структура Разветвление

Структура Повторение реализована как цикл с предусловием – пока условие истинно, тело цикла выполняется; выход из цикла осуществится тогда, когда условие станет ложным (рис. 1.5).

Если при входе в данную структуру условие ложно, то вход в цикл не происходит, и управление передается следующему за ней структурному элементу.

Изображенные выше базовые элементарные конструкции обладают функциональной полнотой, т.е. любой алгоритм может быть реализован в виде композиции этих трех конструкций.

Рисунок 1.5 – Структура Повторение

Алгоритмический язык C# с самого начала был задуман и разработан как структурированный язык. В нем помимо уже перечисленных структур существует еще несколько.

Коррекция– действия выполняются только в ветви «Да» (рис. 1.6).

Рисунок 1.6 – Структура Коррекция

Выбор – осуществляет выбор ветви по вычисляемому значению некоторого управляющего выражения-селектора; после чего управление передается первому оператору из альтернативного списка, помеченному константным выражением, значение которого совпало со значением селектора; если выражение имеет значение, совпадающее со значением костантного выражения1, то выполнится оператор Оп1, если селектор имеет значение, совпадающее со значением костантного выражения2, то выполнится оператор Оп2, и т.д., если же селектор имеет значение, отличное от указанных, то выполнится оператор Оп (рис. 1.7).

Рисунок 1.7 – Структура Выбор

Цикл с постусловием (рис. 1.8)

Рисунок 1.8 – Структура Цикл с постусловием

Цикл с параметром (рис. 1.9).

Рисунок 1.9 – Структура Цикл с параметром

Все эти структуры, определяемые как управляющие, имеют одну общую черту: один вход и один выход. Из них, как из кирпичиков, не используя оператор goto, можно составить более укрупненную схему, вид которой будет совпадать с видом одной из этих структур.

Ликвидация операторов goto – лишь побочный эффект выражения логики программ с помощью перечисленных выше структур. СП – это не просто программирование без goto.Это дисциплина программирования, которая объединяет несколько способов создания ясной, легкой для понимания программы. Вполне возможно писать неструктурированные программы, не содержащие ни одногоgoto.

Начинать процесс программирования нужно с того, чтобы определить всю задачу как один блок (рис. 1.10).

Рисунок 1.10 – Начальный этап проектирования алгоритма

Затем, используя метод пошаговой детализации, на каждом этапе уточнять эту схему, следуя правилу: каждый блок разбивается на два блока. Сложное действие, изображенное в виде функционального блока, может быть представлено как последовательность более простых действий, т.е. как следование. При этом развитие алгоритма идет вширь. Справедливо и обратное: последовательность блоков может быть заменена одним укрупненным блоком.

Развитие алгоритма идет вглубь, если используется структура развилки или повторения. В этом случае получаются вложенные конструкции. Так продолжается последовательная детализация до тех пор, пока не получится конструкция, имеющая аналоги в системе программирования, предполагаемой для использования.

В качестве примера структурного подхода к проектированию схемы алгоритма рассмотрим задачу табулирования функции, т.е. вычисление некоторой функцииy=f(x) одной переменной x, изменяющейся от начального значения x0 с постоянным шагом h до конечного значения xn – сокращенно обозначается x=x0 (h) xn. Пусть функция f(x) имеет вид:

x0=-3; h=1; xn=10; a=0; b=3,85.

 
 

Процесс нисходящего проектирования алгоритма табулирования функции y=f(x) показан на рис. 1.11.

Рисунок 1.11 – Нисходящий процесс проектирования алгоритма

На первом уровне детализации схема отражает процесс табулирования функции в наиболее общем виде (схема а). Для этого используются структуры типов последовательность и цикл с постусловием. Далее осуществляется детализация блока «Вычисление и вывод у» (схема b), который представляется в виде последовательности блоков второго уровня. Так как функция z=z(x), входящая в качестве аргумента в определение функции y=f(x), является сложной, то она определяется разветвленной структурой, детализация которой осуществлена на 3 и 4-м уровнях (схема с).

Рисунок 1.12 – Схема алгоритма табулирования функции y=f(x)

Проведенную детализацию блоков, осуществляющих определение функции z=z(x), можно пояснить с помощью зависимостей:

которые реализуются применением структуры разветвления.

Подставляя вместо блоков, которые подлежат детализации, соответствующие структуры более низкого уровня, получаем окончательную схему алгоритма табулирования функции y=f(x) (рис. 1.12).

Просмотров: 2023


Вернуться в оглавление



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


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

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

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


 


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

 
 

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