Студопедия

КАТЕГОРИИ:


Архитектура-(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)

План заняття. 1. Характеристика поняття структурований оператор




1. Характеристика поняття структурований оператор

2. Огляд поняття составний оператор

3. Характеристика та формат запису оператора if

4. Характеристика та формат запису оператора case

Структурированные операторы включают в себя последова­тельность из нескольких других (простых и структурированных) операторов. К структурированным операторам относятся:

■ составной оператор;

■ условный оператор if;

■ условный оператор case;

■ оператор цикла repeat;

■ оператор цикла while;

■ оператор цикла for;

■ оператор над записями with.

Составной оператор представляет собой последовательность операторов, заключенных между двумя зарезервированными сло­вами begin и end. Эти ключевые слова называются оператор­ными скобками. Между последним оператором и словом end раз­решается не ставить точку с запятой. Однако ее необходимо ста вить после end. Из описанных выше простых операторов можно составить составной оператор, например:

Составной оператор обычно используется в том случае, если синтаксис языка требует в определенной ситуации применения только одного оператора. В таком случае этим единственным опе­ратором и будет составной оператор. По сути дела, тело програм­мы или процедуры тоже являются составными операторами, так как они заключены в операторные скобки begin и end.

Условный оператор if предназначен для выбора к выполне­нию одного из двух действий, в зависимости от некоторого усло­вия. Структура условного оператора имеет вид:

Условием выбора является логическое выражение (как прави­ло, использующее операторы сравнения). Алгоритм работы опе­ратора if имеет следующий вид. Сначала вычисляется выраже­ние условие. Результат вычисления должен иметь логический тип. Если результат True (истина), то выполняется действие1, а действие2 пропускается. В противном случае, если результат False (ложь), то выполняется действие2, а действие! игно­рируется. Ниже приведен пример условного оператора if.

Следует отметить тот факт, что одно из действий условного оператора может быть пустым (отсутствовать). Как правило, та­ким является действие, находящееся после слова else. В подоб­ной ситуации управление немедленно передается оператору, сле­дующему за условным Еще одним важным моментом, на который нужно обратить внимание, является то, что перед словом else никогда не ставит­ся точка с запятой.

Если в операторе необходимо предусмотреть несколько усло­вий, то они объединяются путем организации вложения условных операторов либо при помощи использования логических операций and, or, xor, not.

Так как приоритет у логических операций выше, чем у опера­ций сравнения, то отдельные части сложного логического выра­жения следует заключають в скобки:

Запись без скобок будет некорректной. Если предыдущий опе­ратор записать в таком виде:

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

Операторы действие! и действие2 могут быть любого ти­па, в частности, являться условными. В свою очередь, каждый из вложенных может содержать в себе еще условные операторы if. Довольно часто возникает ситуация, когда не все вложенные ус­ловные операторы имеют часть else действие!. Это означает, что возникает двусмысленность трактовки else соответствую­щему if. Такая неоднозначность в Object Pascal решается очень просто - зарезервированное слово else всегда ассоциируется с ближайшим к нему (сверху по тексту) зарезервированным словом if, которое еще не связано с else:

В комментарии написано, к какому if относится else. К написанию вложенных друг в друга условных операторов следует подходить с особой тщательностью.

Условный оператор case позволяет осуществлять выбор из любого количества вариантов. В этом и заключается его главное отличие от оператора if. Структура оператора case в Object Pas­cal имеет вид:

case ключ_выбора of

константа_выбора: оператор;

константа_выбора: оператор;

константа_выбора: оператор; else

операторы end;

Здесь case, of, else и end - зарезервированные слова;

ключ_выбора - выражение любого простого или строкового типа;

константа_выбора - набор констант того же типа, что ивыражение ключ_выбора, оператор - любые операторы.

Условный оператор case работает следующим образом. Вна­чале вычисляется выражение ключ__выбора. Затем просматрива­ется последовательность констант выбора, с которыми сравнива­ется полученное значение. Если находится константа, равная выражению ключ_выбора, то выполняется оператор, находя­щийся за этой константой. После этого оператор case завершает свою работу. Если же значение выражения ключ_выбора не совпадает ни с одной из констант, то выполняется оператор, рас­положенный после else. Ветвь оператора else является необя­зательной. При отсутствии оператора else, когда ключу выбора нет соответствия, оператор case просто завершает свою работу и выполняется следующий за ним оператор.

Если для нескольких констант необходимо выполнять один и тот же оператор, то эти константы можно перечислить через запятую, а также можно задавать диапазон. В следующем примере используется условный оператор case. В строке ввода задается номер этажа. За­тем, в зависимости от введенного номера, либо выдается соответст­вующее сообщение, либо (если значение равно нулю) по оператору безусловного перехода производится выход из оператора case.

 

 

В практике программирования важную роль играют циклы. Циклы обеспечивают возможность многократного выполнения группы одних и тех же простых или составных операторов. В Object Pascal существует три стандартных оператора цикла.

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

 

 

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

Следующая процедура заполняет массив типа Integer зна­чениями от 1 до 10 с использованием цикла repeat. В теле цикла содержатся операторы, обеспечивающие заполнение массива, вы­вод в текстовый редактор значений из массива и инкремент (по­следовательное наращивание) индекса массива. Условие оконча­ния цикла - проверка выхода значения индекса за границы масси­ва: i = 11.

 

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

Оператор цикла while организует выполнение цикла с пред­условием. Другими словами, сначала проверяется условие, и лишь после подтверждения его истинности выполняется тело цикла. Цикл прекращает работу, если условие ложно. А это озна­чает, что при определенном стечении обстоятельств тело цикла может ни разу не выполниться. Оператор цикла while записы­вается так:

 

Цикл выполняется, пока условие не примет значение False. Решить предыдущий пример (т.е. заполнить массив числами от 1 до 10) с помощью цикла while можно следующим образом.

Оператор цикла for организует выполнение оператора строго заданное количество раз. Существует два варианта оператора for:

 

Следует отметить тот факт, что начальное и конечное значения должны быть того же типа, что и параметр цикла. Действует цикл for следующим образом. Сначала вычисляются и запоминаются начальное и конечное значения. Затем параметру цикла присваивает­ся начальное значение, после чего параметр цикла сравнивается с конечным значением. Далее, пока параметр цикла меньше или равен конечному значению (при использовании первого варианта) либо больше или равен (во втором варианте), последовательно выполня­ются итерации цикла. Как только параметр выходит за пределы, ус­тановленные конечным значением, цикл завершается. Итерация включает в себя выполнение оператора, расположенного за словом do, и увеличение (в первом варианте) или уменьшение (во втором варианте) параметра цикла на единицу. Изменение параметра цикла происходит автоматически при каждой итерации.

Необходимо иметь в виду, что при применении цикла со сло­вом to начальное значение не должно превышать конечное. Ана­логично при использовании слова downto начальное значение не должно быть меньше конечного. Если эти условия не являются истинными, то цикл ни разу не выполнится.

Процедура заполнения двух массивов числами от 1 до 10 и от 10 до 1 соответственно с помощью цикла for будет выглядеть так:

 

 

Массив a [i] заполнится числами от 1 до 10, а массив b [i] -от 10 до 1.

В Object Pascal существуют две стандартные процедуры - break и continue, предназначенные специально для использо­вания в операторах цикла. Процедура break позволяет досрочно выйти из цикла, даже если не выполнилось условие выхода. Если, например, в любой из циклов заполнения массивов, рассмотрен­ных в примерах, добавить условный оператор следующего вида:

то это приведет к выходу из цикла при достижении параметром значения i = 7.

В свою очередь, применение процедуры continue позволит начать новую итерацию цикла, даже если не завершена предыду­щая.

Оператор над записями with был рассмотрен выше при опи­сании типа запись.

Контрольні питання

1. Надати характеристику поняття структурований оператор

2. Виконати огляд поняття составний оператор

3. Навести характеристику та формат запису оператора if

4. Навести характеристику та формат запису оператора case


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

 

Самостійне заняття №13 – Тип дата-час




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


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


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



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




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