КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |