Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TRPO.doc
Скачиваний:
135
Добавлен:
21.02.2016
Размер:
218.11 Кб
Скачать

Циклы.Если какие-либо операторы необходимо выполнить несколько раз, то их не переписывают каждый раз заново, а организуют цикл.

Пример 1.Подсчитать количество нечетных цифр в записи натурального числаn.

Пример 2. Дана последовательность, общий член которой определяется формулой

Вычислить при n>2 сумму тех ее членов, которые больше заданного числа .

При решении задачи находится очередной член последовательно и, если он больше , добавляется к сумме.

1. Ввести 

2. S := 0

3. A := 1/4

4. n := 3

5. Сравнить А с . Если A>=, переход к п. 10

6. S := S + A

7. A := (n-1)/(n*n)

8. n := n + 1

9. Переход к п. 5

10. Вывод S

11. Конец

В рассмотренных выше примерах количество повторений заранее неизвестно. В первом оно зависит от количества цифр в записи натурального числа, во втором — от числа .

Вложенность базовых структур.

Логическая структура программы может быть выражена комбинацией трех базовых структур: СЛЕДОВАНИЕ, РАЗВЕТВЛЕНИЕ, ЦИКЛ.

Характерной особенностью этих структур является наличие в них одного входа и одного выхода.

Важнейшей базовой структурой, вытекающей из принципа обеспеченности переменной, является структура СЛЕДОВАНИЕ, означающая, что два действия должны быть выполнены друг за другом. Каждое действие может означать одно единственное действие или включать в себя несколько действий. Алгоритм, содержащий только структуры СЛЕДОВАНИЕ, называется линейным алгоритмом.

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

Рис. П.3.1. Структурограмма СЛЕДОВАНИЕ

Структура РАЗВЕТВЛЕНИЕ (рис. П.3.2) обеспечивает в зависимости от результата проверки условия выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма продолжается независимо от того, какой путь выбран.

Рис. П.3.2. Структурограмма РАЗВЕТВЛЕНИЕ

В символах псевдокодов структура РАЗВЕТВЛЕНИЕ соответствует структуре IF-THEN-ELSE или в частном случае – IF-THEN, когда для одного из путей никаких действий предпринимать не надо.

Алгоритм, соответствующий второй базовой структуре, называется разветвляющимся алгоритмом.

Структура ЦИКЛ обеспечивает повторное выполнение (циклическую работу) оператора или группы операторов, находящихся в теле цикла.

Различают две разновидности этой структуры: ЦИКЛ-ПОКА (рис. П.3.3,а) и ЦИКЛ-ДО (рис. П.3.3,б).

Рис. П.3.3. Структура ЦИКЛ: а – ПОКА, б – ДО

В псевдокодах это циклы WHILE-DO и REPEAT-UNTIL соответственно.

При входе в структуру ЦИКЛ-ПОКА проверяется условие. Если оно истинно, то выполняется действие «процесс», и снова проверяется условие. При ложности условия действие «процесс» не выполняется и происходит выход из структуры.

При входе в структуру ЦИКЛ-ДО сначала выполняется действие «процесс», а затем проверяется условие. Ложность условия обеспечивает возврат в тело цикла, истинность – выход из структуры.

Основное отличие структур в том, что в зависимости от условия тело цикла в структуре ЦИКЛ-ПОКА может не выполниться ни разу, а в структуре ЦИКЛ-ДО должно обязательно выполниться хотя бы один раз.

Для управления количеством повторений символ «процесс» должен включать действие, изменяющее значение условия.

Алгоритмы, имеющие в своем составе базовую структуру ЦИКЛ, называются циклическими.

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

Требования к структурным языкам.

Основное требование, предъявляемое в настоящее время к программе, — надежность. Под надежностью подразумевается способность программы работать в полном соответствии со спецификацией и адекватно реагировать на любые действия пользователя.

   Программа должна также обладать расширяемостью, то есть допускать оперативное внесение необходимых изменений и дополнений. Может показаться странным, зачем с самого начала думать о будущих изменениях программы, но ведь для любого сколько-нибудь удачного коммерческого продукта выход новых версий — единственный способ не потерять популярность среди пользователей.

   Кроме того, программа должна быть выпущена к заявленному сроку. Это значит, что весь процесс производства программы должен четко планироваться и контролироваться.

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

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

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

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