Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_ лекций по Паскалю_ИиКТ.doc
Скачиваний:
12
Добавлен:
24.09.2019
Размер:
2.85 Mб
Скачать

Условный оператор case

С помощью этого оператора можно выбрать вариант из любого количества вариантов. Структура этого оператора в Turbo Pascal:

Case S of

C1: Instruction_1 ;

C2: Instruction_2 ;

. . . . . . . . . . . . . . . . . . . .

CN: Instruction_N ;

else Instruction

end.

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

S  выражение порядкового типа, значение которого вычисляется:

C1, C2, . . . , CN  константы, с которыми сравнивается значение выражения S;

Instruction_1, Instruction_2, Instruction_N  операторы, из которых выполняется тот, с константой которого совпадает значение выражения S;

Instruction  оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант C1, C2, . . . , CN.

Ветвь оператора else является необязательной. Если она отсутствует и значение выражения S не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора IF перед словом else точку с запятой можно ставить.

Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно) сопроводив их одним оператором.

Пример 2.

Program Example_2 ;

Var i : Integer ;

Begin

ReadLn( i ) ;

Case i of

0, 2, 4, 6, 8 : WriteLn(‘Четная цифра ‘) ;

1, 3, 5, 7, 9 : WriteLn(‘Нечетная цифра ‘) ;

10 .. 100 : WriteLn(‘Число от 10 до 100 ‘) ;

else

WriteLn(‘Отрицательное число или больше 100 ‘)

end

end.

Циклы

При решении многих задач некоторую последовательность действий приходится выполнять несколько раз. Такие повторяющиеся действия называются циклами и реализуются в программе с использованием инструкций циклов. В языке Паскаль циклические вычисления реализуются при помощи операторов FOR, WHILE и REPEAT.

Оператор цикла for

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

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

  1. For I := I1 to I2 do Instruction ;

  2. For I := I1 downto I2 do Instruction ;

В этих операторах:

I  параметр цикла, являющийся переменной порядкового типа;

I1  выражение, определяющее начальное значение параметра цикла;

I2  выражение, определяющее конечное значение параметра цикла;

Instruction  выполняемый оператор.

I1 и I2  должны быть совместимы для присваивания с параметром цикла.

Алгоритм, соответствующий инструкции FOR для первого варианта оператора представлен на рис. 12а, для второго варианта  на рис. 12б.

Рис.12. Блок-схема, соответствующая инструкции FOR.

Цикл действует таким образом. Сначала вычисляются и запоминаются начальное I1 и конечное I2 значения параметра цикла. Далее параметру цикла I присваивается начальное значение I1. Затем значение параметра цикла сравнивается со значением I2. Далее, пока параметр цикла меньше или равен конечному значению (в первом варианте) или больше или равен, конечному значению (во втором варианте), выполняется очередная итерация цикла; в противном случае происходит выход из цикла. Выполнение очередной итерации включает в себя сначала выполнение оператора Instruction, а затем присваивание параметру цикла следующего большего значения (в первом варианте оператора) или следующего меньшего значения (во втором варианте).

Естественно, если в первом варианте значение I1 больше I2 или во втором варианте меньше I2, оператор не выполняется ни разу.

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

Пример 3. Вычислить значения выражений

и при

Рис.13. Блок-схема примера 3.

Программа:

Program Example_3 ;

Var I : Integer ;

x, y, d, z : Real ;

Begin

For I := 1 to 4 do

Begin

d := sqr(x) + 1 ;

y := sqrt(d) / ln(abs(x)) ;

z := exp((1/3)*ln(d)) / exp(-sqr(x)) ;

WriteLn(‘x=‘,x,’ y=‘,y);

x := x + 0.2 ;

end

end.

Пример 4. Вычислить значения функции

при

Рис.14. Блок-схема примера 4.

Программа:

Program Example_4 ;

Var x : Integer ;

y : Real ;

Begin

For x := 6 downto 1 do

Begin

If ( x > 3 ) Then y := sqr(sin(x))

else If ( x = 3 ) Then y := 1

else y := cos(x*sqr(x)) ;

WriteLn(‘x=‘,x,’ y=‘,y);

end

end.