КАТЕГОРИИ: Архитектура-(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) |
Циклы с постусловием
Циклы с предусловием Оператор цикла с предусловием while вызывает повторяющееся выполнение оператора до тех пор, пока некоторое условие принимает истинное значение. Записывается цикл while следующим образом: WHILE <логическое выражение> DO <оператор>; Пример: возводить x в квадрат, пока он не станет больше 1000. while x<=1000 do x:=sqr(x); Логическое выражение вычисляется до того, как Оператор будет выполнен. Если оно возвращает значение Истина, то выполняется Оператор и вновь вычисляется значение Логического выражения. Если Логическое выражение возвращает Ложь, то выполнение оператора while прекращается. Оператор выполняется повторно до тех пор, пока выражение принимает значение Тruе. Если выражение с самого начала принимает значение False, то оператор, содержащийся внутри оператора цикла с предусловием, не выполняется ни разу. Пример: что будет напечатано на экране после выполнения следующих операторов: s:=0; i:=1; while i<3 do begin s:=s+i; i:=i+1 end; writeln(s); Рассмотрим значения переменных на каждом шаге.
Далее результатом выражения цикла будет False, поэтому тело цикла более не выполняется, а управление передается следующему оператору – процедуре вывода на экран. Значение переменной s равно 3, следовательно, на экран выведется 3. Пример: вычислить сумму чисел от 1 до 100. i:=1; sum:=0; while i<=100 do begin sum:=sum+i; i:=i+1; { или inc(i); } end; Оператор цикла с постусловием repeat вызывает повторяющееся выполнение оператора до тех пор, пока некоторое условие не примет истинное значение. Записывается цикл repeat следующим образом: REPEAT <операторы> UNTIL <логическое выражение>; Пример: возводить x в квадрат, пока он не станет больше 1000. repeat x:=sqr(x) until x>1000; Между ключевыми словами repeat и until могут быть записаны сразу несколько операторов. Операторы выполняются последовательно до тех пор, пока Логическое выражение не примет значение Истина. Последовательность операторов выполняется, по крайней мере, один раз, т.к. логическое выражение вычисляется после выполнения операторов. Пример: что будет напечатано на экране после выполнения следующих операторов: s:=0; i:=1; repeat s:=s+i; i:=i+1 until i>=3; writeln(s); Рассмотрим значения переменных на каждом шаге.
После цикла управление передается следующему оператору – процедуре вывода на экран. Значение переменной s равно 3, следовательно, на экран выведется 3. Пример: вычислить сумму чисел от 1 до 100. i:=0; sum:=0; repeat inc(i); sum:=sum+i; until i=100; Имеется три основных различия между циклом while и циклом repeat. Во-первых, операторы в цикле repeat всегда выполняются хотя бы один раз, поскольку проверка выражения осуществляется не сразу после ключевого слова repeat. Наоборот, в цикл while, если выражение изначально имеет значение False, то пропускается все тело цикла. Во-вторых, цикл repeat выполняется до тех пор, пока выражение не примет значение Тrue; в отличие от него цикл while выполняется, пока выражение имеет значение Тrue. Это означает, что следует внимательно заменять один тип цикла на другой. В третьих, цикл repeat может содержать несколько операторов, не образующих составной оператор. Заметьте, что в последней программе не используется begin..end, в то время как в варианте с циклом while это имело место.
Дата добавления: 2014-01-06; Просмотров: 379; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |