- •Оглавление
- •Комбинированный урок №5
- •Операторы языка Паскаль
- •Оператор присваивания
- •Оператор перехода
- •Пустой оператор
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Операции отношения и логические операции
- •Контрольные вопросы
- •Примеры алгоритмов линейной и разветвляющейся структур Пример 1.1. Простейший алгоритм, запрашивающий имя и затем приветствующий его обладателя.
- •Var Name: String; {Описание переменной Name строкового типа}
- •Результаты работы Pascal-программы
- •Пример 1.2. Определить объём и площадь боковой поверхности цилиндра с заданными радиусом основания r и высотой h.
- •V, {объем цилиндра }
- •Пример 1.3. Даны три точки на плоскости. Определить, какая из них ближе к началу координат. Система тестов
- •Пример 1.4. Найти произведение цифр заданного целого четырехзначного числа. Система тестов
- •Var Number, {заданное число}
- •I, j, k, l, {цифры числа}
- •Система тестов
- •Var a, b, c : Real; {a, b, c - коэффициенты уравнения}
- •X1, x2 : Real; {x1, x2 - корни }
- •Var a1, b1, c1, {коэффициенты уравнения первой прямой}
- •X, y : Real; {координаты точки пересечения }
- •Результаты работы Pascal-программы:
- •Var day, month, year integer; last : boolean; { true, если текущий день последний день месяца }
- •Результаты работы Pascal-программы:
- •Пример 1.8.
- •Система тестов
- •Var operation : Char; {Знак операции}
- •Результаты работы Pascal-программы:
Условный оператор
Условный оператор используется для программирования развилки, если условие сформулировано как логическое выражение.
IF <логическое выражение> THEN<оператор 1>
[ ELSE <оператор 2>] ; <следующий оператор >;
Оператор выполняется таким образом: если результат вычисления логического выражения TRUE, то выполняется <оператор 1>, затем <следующий оператор >; если - FALSE, то выполняется <оператор 2>, затем <следующий оператор>. Операторы 1 и 2 могут быть простым или составным оператором. Если часть оператора, начинающаяся ELSE, отсутствует, то при логическом выражении равным FALSE, будет выполняться <следующий оператор>. При вложенности условных операторов ELSE всегда относится к ближайшему предшествующему IF. Следует избегать большой глубины вложенности условных операторов, так как при этом теряется наглядность и возможно появление ошибок.
Пример: ………….
IF A > 0 THEN P := P + 1
ELSE
IF A < 0 THEN O := O + 1
ELSE N := N + 1 ;
……….
IF A > 0 THEN
BEGIN
S := S+ A ; K := K + 1
END ;
Примеры полных условных операторов:
IF x<0 THEN i:=i+1 ELSE j:=j+1;
IF (x<y) AND (x<>0) THEN begin x:=y/x; y:=y+k end ELSE begin x:=x+0.01; y:=y-k end;
Примеры использования условного оператора в сокращенной форме:
IF x>y THEN Max:=x;
IF x<>0 THEN begin a:=y/x; Writeln('A= ', a:6:2) end;
Оператор выбора
Оператор выбора CASE может быть использован вместо условного оператора, если требуется сделать выбор более, чем из двух возможностей.
CASE <селекторное выражение> OF
<метка1> : <оператор 1> ;
<метка2> : <оператор 2> ;
…………..
<меткаN> : <операторN>
[ ELSE <оператор>]
END;
Селекторное выражение (селектор, переключатель) и метки-константы (метки варианта, метки выбора) должны иметь один и тот же простой тип (кроме вещественного). Метки-константы в отличие от меток программы не требуется описывать в разделе описания меток. Но на них нельзя ссылаться в операторе GOTO. Метки варианта могут быть перечисляемого и интервального типа.
Оператор выбора выполняется следующим образом. Сначала вычисляется селекторное выражение; затем выполняется оператор, метка варианта которого равна текущему значению селектора; после этого происходит выход из оператора CASE на следующий оператор. Если значение селектора не совпадает ни с одной из меток варианта, будет выполнен оператор после ELSE. Если ветвь ELSE отсутствует, то управление передается следующему за CASE оператору.
Пример:Вычислено значение К. Если К=0, то Z= ln x, при K=1 Z=ln x , при K=2 Z=sin x, при K=3 Z=cos x, в остальных случаях Z=0.
………..
CASE K OF
0: Z := LN(X) ;
1: Z := EXP(X) ;
2: Z := SIN(X) ;
3: Z := COS(X)
ELSE
Z := 0 END ; ...
В этом примере результат вычисляется по одной из стандартных функций в зависимости от параметра К, который получает свое значение перед выполнением этого оператора.
В следующем примере переменная OTVET получает значение YES или NO в зависимости от введенного значения символьной переменной V. Здесь метки варианта задаются перечислением.
VAR V CHAR;
OTVET : STRING;
………….
CASE V OF
'D', 'd', 'Д', 'д' : OTVET := 'YES';
'N', 'n', 'Н', 'н' : OTVET := 'NO'
ELSE
OTVET := ' '
END; .
В следующем примере метки выбора заданы интервалом.
VAR V CHAR;
OTVET : STRING;
………….
CASE V OF
'A' . . 'Z','a' . . 'z' : OTVET := 'буква';
'0' . . '9' : OTVET := 'цифра'
ELSE
OTVET := 'специальный символ'
END;
