Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Управление программным потоком, операторы



Структуризованная программа (или подпрограмма) - это программа, составленная из фиксированного множества базовых конструкций. Рассмотрим основные определения и способы образования этих конструкций в схемах алгоритмов. Из операций, развилок и слияний строятся базовые конструкции: следование, ветвление, цикл. Применяя только эти три конструкции, можно реализовать алгоритм решения любой задачи. Конструкция, представляющая собой последовательное выполнение двух или более операций, называется следованием. Конструкция, состоящая из развилки, двух операций и слияния, называется ветвлением. Одна из операций может отсутствовать. Конструкция, имеющая линии управления, ведущие к предидущим операциям или развилкам, называется циклом. Конструкции следование, ветвление и цикл можно представить как операции, так как они имеют единственный вход и единственный выход. Произвольную последовательность операций можно представить как одну операцию. Операция может быть реализована любым оператором языка (простым или составным), либо группой операторов, за исключением оператора перехода GOTO. В алгоритмическом языке высокого уровня количество базовых конструкций определяется следующими -следование; -ветвление; -цикл с предусловием; -цикл с постусловием; -цикл с параметром; -вариант. У словный оператор: Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор - это средство ветвления вычислительного процесса. Структура условного оператора имеет следующий вид: IF <условие> THEN <оператор1> ELSE <оператор2>, где IF, THEN, ELSE - зарезервированные слова (если, то, иначе); <условие> - произвольное выражение логического типа; <оператор1>, <оператор2> - любые операторы языка Турбо Паскаль. Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2 Часть ELSE <оператор2> условного оператора может быть опущена. Тогда при значении TRUE условного выражения выполняется <оператор1>, в противном случае этот оператор. Операторы повторений имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ. Счетный оператор цикла FOR имеет такую структуру: FOR <пар_цик>:= <нач_знач> ТО <кон_знач> DO <оператор>. Здесь FOR, TO, DO - зарезервированные слова (для, до, выполнить); <пар_цик> - параметр цикла - переменная типа INTEGER (точнее, любого порядкового типа, см. гл.4); <нач_знач> - начальное значение - выражение того же типа; <кон_знач> - конечное значение - выражение того же типа; <оператор> - произвольный оператор Турбо Паскаля. При выполнении оператора FOR вначале вычисляется выражение <нач_знач> и осуществляется присваивание <пар_цик>: = <нач_знач>. После этого циклически повторяется: проверка условия <пар_цик> <= <кон_знач>; если условие не выполнено, оператор FOR завершает свою работу; выполнение оператора <оператор>; наращивание переменной <пар_цик> на единицу. Два других оператора повторений лишь проверяют условие выполнения или повторения цикла, но не связаны с изменением счетчика цикла. Оператор цикла WHILE с предпроверкой условия: WHILE <условие> DO <оператор>. Здесь WHILE, DO - зарезервированные слова (пока [выполняется условие], делать); <условие> - выражение логического типа; <оператор> - произвольный оператор Турбо Паскаля. Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE, оператор WHILE прекращает свою работу. Оператор цикла REPEAT... UNTIL с постпроверкой условия: REPEAT <тело_цикла> UNTIL <условие>. Здесь REPEAT, UNTIL- зарезервированные слова (повторять до тех пор, пока не будет выполнено условие); <тело_цикла> - произвольная последовательность операторов Турбо Паскаля; <условие> - выражение логического типа. Операторы <тело_цикла> выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT... UNTIL завершает свою работу. Обратите внимание: пара REPEAT... UNTIL подобна операторным скобкам begin... end, поэтому перед UNTIL ставить точку с запятой необязательно. Для гибкого управления циклическими операторами FOR, WHILE и REPEAT в состав Турбо Паскаля включены две процедуры: BREAK - реализует немедленный выход из цикла; действие процедуры заключается в передаче управления оператору, стоящему сразу за концом циклического оператора; CONTINUE - обеспечивает досрочное завершение очередного прохода цикла; эквивалент передачи управления в самый конец циклического оператора. Введение в язык этих процедур практически исключает необходимость использования операторов безусловного перехода GOTO. Оператор выбора: Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора -выражение любого порядкового типа (любого из рассмотренных, кроме типов REAL и STRING). Структура оператора выбора такова: CASE <ключ_выбора> OF <список_выбора> [ELSE <операторы>] END Здесь CASE, OF, ELSE, END - зарезервированные слова (случай, из, иначе, конец); <ключ_выбора> - ключ выбора; <список_выбора> - одна или более конструкций вида: <константа_выбора>: <оператор>; <константа_выбора> - константа того же типа, что и выражение<ключ_выбopa>; <операторы> - произвольные операторы Турбо Паскаля. Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу. Метки и операторы перехода: Можно теоретически показать, что рассмотренных операторов вполне достаточно для написания программ любой сложности. В этом отношении наличие в языке операторов перехода кажется излишним. Более того, современная технология структурного программирования основана на принципе «программировать без GOTO»: считается, что злоупотребление операторами перехода затрудняет понимание программы, делает ее запутанной и сложной в отладке. Тем не менее, в некоторых случаях использование операторов перехода может упростить программу. Оператор перехода имеет вид: GOTO <метка>.




Дата публикования: 2015-02-03; Прочитано: 764 | Нарушение авторского права страницы



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...