Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по информатике.doc
Скачиваний:
89
Добавлен:
10.05.2014
Размер:
594.94 Кб
Скачать

Оператор выбора

Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора -выражение любого порядкового типа (любого из рассмотренных, кроме типов REAL и STRING)

Структура оператора выбора такова:

CASE <ключ_выбора> OF <список_выбора> [ELSE <операторы>] END

Здесь CASE, OF, ELSE, END - зарезервированные слова (случай, из, иначе, конец);

<ключ_выбора> - ключ выбора или селектор;

<список_выбора> - одна или более конструкций вида:

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

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

<операторы> - произвольные операторы Турбо Паскаля.

case ch of

'A'..'Z', 'a'..'z' : WriteLn('Буква');

'0'..'9' : WriteLn('Цифра');

'+', '-', '*', '/' : WriteLn('Оператор');

else WriteLn('Специальный символ')

end;

Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.

16 Метки и оператор перехода.

Помимо операторов условного перехода существует также оператор безусловного перехода goto. Формат:

GOTO <метка>.

Здесь GOTO- зарезервированное слово (перейти [на метку]); <метка> - метка.

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

Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием. Перед тем как появиться в программе (процедуре или функции), в которой она используется, метка должна быть описана. Описание меток состоит из зарезервированного слова LABEL(метка), за которым следует список меток.

label 1;

begin

...

goto 1;

...

1: WriteLn('Переход к метке 1');

end.

Действие оператора GOTO состоит в передаче управления соответствующему меченному оператору.

При использовании меток необходимо руководствоваться следующими правилами:

метка, на которую ссылается оператор GOTO, должна быть описана в разделе описаний и она обязательно должна встретиться где-нибудь в теле программы;

метки, описанные в процедуре (функции), локализуются в ней, поэтому передача управления извне процедуры (функции) на метку внутри нее невозможна.

17 Операторы циклов с предусловием, постусловием и с параметром вTurbo Pascal`е

Операторы циклов с предусловием, постусловием и с параметром в Turbo Pascal`е

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

Оператор цикла с предусловием организует выполнение одного (воз-

можно составного) оператора неизвестное чило раз. Выход из цикла осу-

ществляется, если некоторое логическое выражение окажется ложным. Так

как истинность логического выражения проверяется вначале, тело цикла

может не выполнится ни разу.

Структура оператора.

WHILE <условие> DO <оператор>;

В этой структуре:

<условие> - логическое выражение, истинность которого проверяется

вначале выполнения циклического оператора;

<оператор> - любой выполняемый оператор языка (в том числе и сос-

тавной, т. е. последовательность операторов, заключённая в операторные

скобки BEGIN - END).

Порядок выполнения оператора.

Пока условие истинно выполняется оператор, следующий за служебным

словом DO. Как только условие становится ложно выпонение оператора

цикла прекращается.

Оператор цикла с постусловием организует выполнение цикла, состо-

ящего из любого количества операторов неизвестное заранее количество

раз. Выход из цикла осуществляется, если некоторое логическое выраже-

ние окажется истинным. Так как истинность логического оператора прове-

ряется в конце, тело цикла выполняется хотя бы один раз.

Структура оператора:

REPEAT

<Оператор 1>;

<Оператор 2>;

. . .

<Оператор N>;

UNTIL <условие>;

В этой структуре:

<Оператор 1>; <Оператор 2>; . . . <Оператор N>; - тело цикла.

<условие> - логическое выражение, ложность которого проверяется

после выполнения тела цикла.

Порядок выполнения оператора:

Выполняются операторы, следующие за служебным словом REPEAT. Пос-

ле этого проверяется условие. Если условие ложно, то происходит возв-

рат к выполнению операторов, следующих за служебным словом REPEAT и

снова проверяется условие. Если условие истинно, то выполнение тела

цикла прекращается.

В "жаргонном" переводе на русский язык, оператор цикла с постус-

ловием "звучит" так:

Повторять тело цикла пока не выполнится условие.

В цикле REPEAT тело цикла выполняется по крайней мере один раз.

Оператор цикла с параметром организует выполнение одного операто-

ра заранее известное количество раз.

Структура оператора

Существует два варианта оператора.

Вариант первый:

FOR i := start TO finish DO <оператор>

Вариант второй:

FOR i := start DOWNTO finish DO <оператор>

В этих структурах:

i - параметр цикла;

start - начальное значение параметра;

finish - конечное значение параметра;

<оператор> - тело цикла.

Тип переменной цикла i и значений start и finish должен быть по-

рядковым !

Порядок выполнения оператора:

1. Вычисляются и запоминаются начальное - start, и конечное - finish,

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

виде конкретного значения (в этом случае нет необходимости в вычис-

лениях) или в виде выражения, значение которого вычисляется в нача-

ле выполнения цикла.

2. Параметру цикла i присваивается значение start.

3. Значение параметра цикла i сравнивается со значением finish. Опера-

тор "тело цикла" будет выполнен при выполнении следующего условия:

первый вариант оператора: i <= finish;

второй вариант опеартора: i >= finish.

В противном случае происходит прекращение выполнения циклического

оператора.

4. Параметру цикла присваивается:

первый выриант оператора: следующее большее значение;

второй вариант оператора: следующее меньшее значение.

5. Выполняется пункт 3 данной схемы.

Часто говорят, что первый вариант оператора цикла с параметром, -

цикл с возрастающим параметром; второй вариант, - с убывающим параметром.

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

Телом цикла может быть только один оператор. Для того, чтобы в

теле цикла с параметром выполнить несколько операторов, их необходимо

объединить операторными скобками BEGIN END.

После прекращения выполнения оператора, значение параметра цикла

не определено, за исключением случаев, когда выход из оператора был

осуществлён с помощью GOTO или стандартной процедуры Break.

Соседние файлы в предмете Информатика