Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Структурное программирование (без go to)




Структурное программирование – такой тип программирования при котором на каждом шаге детализации используется только стандартные управляющие структуры.

Простая программа – программа которую можно представить в виде блок-схемы со следующими св-вами: 1) имеется только одна входная и одна выходная ветвь 2) для каждого узла существует путь от входа к выходу проходящей через этот узел.

К таким структурам относятся 3 управляющие структуры:

1) следование: -императивные языки (Pascal, C, …)

декоративные языки (ненужно писать алгоритм, а только сформулировать задачу) (Prolog).

 

2) ветвление (if): 3) цикл с предусловием (do while):

Доказано, что достаточно иметь в языке эти 3 структуры чтобы реализовать любой алгоритм.

Примеры:

 

 

 

 

При структурном программировании процесс детализации структуры программы можно представить как:

Программа представлена одним блоком;

do while (проектирование не закончено)

заменить очередной блок простой программой;

end;

Такой подход исключает использование оператора “go to”. “go to” может использоваться только для реализации стандартных управляющих конструкций.

Пример (Fortran):

if (a. it. b) go to 100 //если то идти на метку 100

100 continue

c:=sqrt(b);

Пример программы с беспорядочной передачей управления:

if (a. it. b) go to 100

12 continue

go to 11

100 continue

c:=sqrt(b)

11:=1+sqrt(b)

go to 12

Указанные управляющие структуры позволяют создавать формальное описание программы.

Например, пусть некоторая программная ф-ция задана следующей управляющей структурой: f(x): if p(x) then g(x) else h(x);

Такую программную ф-цию можно формально представить в виде:

f(x) = [p(x) => g(x)]U[p(x) => h(x)]

Такого рода описания могут быть получены для любых управляющих структур или для всей программы. При таком способе ф-ции выражаются через ф-ции. Если используется goto, то такие формальные выражения записать невозможно, а они позволяют доказать правильность программы.

Все современные алгоритмические языки обязательно включают указанные управляющие структуры. Они являются min-ым набором. На их основе могут быть созданы более сложные специализированные управляющие структуры. Например, цикл с постусловием.

repeat

| набор операторов;

until (условие)

На основе стандартного набора:

набор операторов;

| do while (условие);

end do

Для замены goto для передачи управления вперёд в некоторых языках используется оператор leave – передать управление за пределы той управляющей конструкции, где он встретился (например, цикл).

| do while (условие)

| …

| if (ошибка) leave;

| end

leave применяется в ситуации ошибок ввода-вывода.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 455; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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