Здавалка
Главная | Обратная связь

Оператор условного перехода if.



Для реализации ветвления на Pascal используются условный оператор if и оператор множественного выбора case.

Условный оператор (оператор условия, ветвления, альтернативы) это структурированный оператор, предназначенный для выделения из составляющих его операторов одного, который и выполняется в дальнейшем.

Оператор if, как и остальные структурированные операторы, обычно включает в себя составные операторы.

Формат условного оператора (полная форма):

if <логическое выражение> then <оператор 1> else <оператор 2>;

где if означает если, thenто, elseиначе.

Принцип действия:

Вычисляется значение логического выражения (иначе говоря, проверяется условие). Если значением логического выражения является true (истина), то выполняется оператор, следующий после слова then (оператор 1). Если значением логического выражения является false (ложь), то выполняется оператор, следующий после слова else (оператор 2).

Можно использовать краткую форму условного оператора:

if <логическое выражение> then <оператор>;

Принцип действия:

Вычисляется значение логического выражения, т. е. проверяется условие. Если значением логического выражения является true (истина), то выполняется оператор, следующий после словаthen. Если значением логического выражения является false (ложь), то управление передается на оператор, следующий после условного.

Примечания.

1 Если в зависимости от условия предполагается выполнить несколько действий, то соответствующие операторы берутся в операторные скобки begin…end (используется составной оператор).

2 Перед зарезервированными словами then и else знак «;» никогда не ставится, т. к. конструкция if … then … else …; является единым оператором.

 

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

Формат оператора выбора:

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

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

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

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

[else <операторы>]

end;

Здесь

· case, of, else, end − зарезервированные слова (в переводе означающие соответственно выбор, из, иначе, конец),

· <ключ_выбора> − имя переменной или выражение порядкового типа (кроме longint);

· <список_выбора 1>, …, <список_выбора N> − константа или список констант того же типа, что и выражение <ключ_выбора>;

· <оператор 1>, …, <оператор N> − произвольные операторы языка Pascal, в том числе составной и структурированные.

Принцип действия оператора case:

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


39. Цикл с предусловием while…do

Цикл с предусловием реализуется на языке Pascal с помощью оператора while…do. Количество повторений такого цикла заранее не определено и зависит от входных данных задачи. В данной циклической конструкции перед выполнением следующего повторения цикла проверяется значение логического выражения. Формат записи:

while <условие> do <оператор>;

где

· while, do – служебные слова (пока [выполняется условие] делать);

· <условие> – выражение логического типа (например, b <= 5);

· <оператор> – произвольный оператор языка Pascal, называемый телом цикла. Оператор может быть простым, составным или структурированным.

Принцип действия оператора while…do:

1 Вычисляется значение логического выражения (проверяется условие).

2 Если результатом вычисления значения логического выражения (проверки условия) является ответ true (истина), то выполняется оператор, составляющий тело цикла и стоящий после служебного слова do. Происходит возврат к пункту 1.

3 Если результатом вычисления значения логического выражения (проверки условия) является ответ false (ложь), то оператор while…do заканчивает свою работу и управление передается на следующий оператор.

Исходя из описанного алгоритма, повторение действий 1 и 2 продолжается, пока результатом вычисления значения логического выражения (проверки условия) не станет ответ false (ложь). Вообще говоря, оператор цикла while…do может не выполниться ни разу (если значением логического выражения сразу является false).

Примечание − Тело цикла обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежна ситуация «зацикливания» − бесконечного повторения операторов тела цикла, приводящая зачастую к зависанию среды программирования.

40. Цикл с постусловием repeat…until

Цикл с постусловием, в котором сначала выполняется оператор или группа операторов, а затем проверяется условие, реализуется на языке Pascal с помощью структурированного оператораrepeat…until. Формат оператора:

Repeat

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

until <условие>;

где

· repeat, until – служебные слова (повторять до тех пор, пока не будет выполнено условие);

· <операторы цикла> – повторяющаяся в цикле последовательность операторов (тело цикла). Использовать в качестве тела цикла операторные скобки begin…end нецелесообразно, т. к. роль скобок в данном случае играют зарезервированные слова repeat и until;

· <условие> – выражение логического типа.

Принцип действия оператора repeat…until:

1 Выполняются операторы, расположенные между операторами repeat…until, составляющие тело цикла.

2 Вычисляется значение логического выражения, стоящего после слова until (проверяется условие). Если результатом вычисления значения логического выражения является ответ false(ложь), то операторы, составляющие тело цикла, выполняются вновь.

3 Если результатом вычисления значения логического выражения (проверки условия) является ответ true (истина), то оператор repeat…untilзаканчивает свою работу, и управление передается на следующий за ним оператор.

Как следует из описанного алгоритма, повторение действий 1 и 2 продолжается до тех пор, пока результатом вычисления логического выражения не станет ответ true (истина), т. е. пока не выполнится условие.

Примечания.

1 Тело цикла оператора repeat…until обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежно «зацикливание».

2 Тело цикла repeat…until обязательно повторится хотя бы один раз при любом значении логического выражени

41. Цикл с параметром for…to…do

Цикл с заранее известным числом повторений может быть реализован на Pascal с помощью оператора цикла с параметром for… to… do. Формат оператора:

for <параметр цикла> :=<нач_знач> to <кон_знач> do <оператор>;

где

· for, to, do – служебные слова (для, до, выполнить);

· <параметр цикла> – параметр цикла, в качестве которого выступает переменная типа integer (byte);

· <нач_знач> – начальное значение параметра цикла: константа, переменная или выражение типа integer (byte);

· <кон_знач> – конечное значение параметра цикла: константа, переменная или выражение типа integer (byte);

· <оператор> – простой, составной или структурированный оператор (тело цикла).

Принцип действия оператора for…to…do:

1 Параметру цикла присваивается начальное значение, и операторы цикла выполняются в первый раз.

2 Параметр цикла увеличивается на единицу, т. е. <параметр_цикла> := <нач_знач> + 1. Тело цикла выполняется во второй раз.

3 При каждом увеличении параметра цикла на единицу, операторы тела цикла повторяются вновь.

4 В последний раз цикл выполняется при достижении параметром цикла конечного значения, т. е.<параметр_цикла> := <кон_знач>.

Таким образом, операторы тела цикла for…to…doвыполнятся ровно <кон_знач> − <нач_знач> + 1 раз.

Если конечное значениепараметра цикла меньше начального, то можно использовать иной формат оператора:

for <параметр цикла> :=<нач_знач> downto <кон_знач>
do <оператор>;

В этом случае шаг изменения параметра цикла равен -1.

Примечание − В некоторых версиях среды Turbo или Free Pascal параметр цикла может быть использован в качестве операнда выражений и операторов, составляющих тело цикла, но не может быть изменен.

Описание массивов

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

В общем виде массив описывается так:

<имя массива> : array [диапазон индексов массива] of <тип элементов>

Можно описать массив-константу, тип данных массив или переменную-массив, например:

const mas_const=(2.3, 4, 6.4, −2, −3.7); {постоянный массив из пяти вещественных элементов}

var

A : array[1..10] of real; {одномерный массив-переменная из десяти вещественных элементов}

B : array[0..50,0..20] of char; {двумерный массив-переменная, размером 51´21, из символьных элементов}

C : array[-3..4] of boolean; {одномерный массив-переменная из восьми элементов логического типа}

 

type norm_mas=array[1..10,1..10] of integer; {описание типа данных пользователя – массив 10´10 из целых чисел}

var A1, A2 : norm_mas; {двумерные переменные-массивы типа norm_mas}

Над массивами целиком определена операция присваивания, например, выражение вида

A1:=A2

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

<имя массива> [<номер элемента>]

Обращение к элементу одномерного массива A:

A[i] − i-тый элемент массива,

A[1] − первый элемент массива.

Обращение в программе к элементу двумерного массива B:

B[i, j] − элемент, стоящий на пересечении i-ой строки и j-ого столбца,

B[1, 5] − элемент, стоящий пятым в первой строке,

B[3, j] − элемент третьей строки.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.