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

17) Составной оператор. Операторные скобки

Определение: составным оператором называется пара операторов begin и end и все операторы между ними. В языке pascal существуют так называемые операторные скобки, начало и конец составного оператора - один из видов таких скобок. Операторной скобкой называется парный структурирующий оператор: один оператор открывает часть программы, другой её закрывает, подобно тому, как математические скобки открывают и закрывают математические подвыражения (части математических выражений). Как и математические, операторные скобки строго парные, то есть после каждой открывающей скобки должна быть своя закрывающая скобка. Точно также, как и в математических выражениях со скобками, допускается вложение операторных скобок, как одного, так и разных видов, причём, внутренние скобки должны и открыться, и закрыться между внешними, но на языке pascal все операторные - это не символы, а слова. Закрывающая операторная скобка на pascal - всегда оператор end, не зависимо от вида открывающей. Оператор begin - всегда начало составного оператора.

18) Оператор выбора в полной и сокращённой форме Операторы выбора/ if...Else

К операторам выбора относят: условный оператор (if...else) и переключатель (switch). Синтаксис условного оператора:  if(condition) statement 1 else statement 2

Условие condition может быть любым выражением. Если оно истинно, то выполняется оператор statement 1. В противном случае выполняется оператор statement 2. Допустима сокращенная форма записи условного оператора, в которой отсутствуют else и оператор statement 2.

В свою очередь, операторы statement 1 и statement 2 могут быть условными, что позволяет организовывать цепочки проверок любой глубины вложенности. И в этих цепочках каждый условный оператор может быть как полным, так и сокращенным. В связи с этим возможны ошибки неоднозначного сопоставления if и else.

Синтаксис языка предполагает, что при вложенных условных операторах каждое else соответствует ближайшему if. В качестве такого ошибочного примера можно привести следующую конструкцию [Подбельский В.В. Язык С++. М.:Финансы и статистика, 2001]:

19) Оператор цикла с предусловием

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

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

While B do S,

где while (пока), do (делать, выполнять) – служебные слова, В – логическое выражение, S – оператор. Здесь оператор S выполняется ноль или более раз, но перед каждым очередным его выполнением вычисляется значение выражения В, и оператор S выполняется только в том случае, когда значение выражения В true. Выполнение оператора цикла завершается, когда выражение В впервые принимает значение false. Если это значение выражение В принимает при первом же его вычислении, то оператор S не выполнится ни разу.

В рассматриваемой нами задаче правильное значение k при любом значении М может быть получено следующим образом:

Пример кода оператора цикла Паскаля с предусловием

y:=1; k:=0;  While y<=M do  Begin     y:=y*3;     k:=k+1;  End;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]