ELSE (оператор 2);
Во всех этих случаях иногда бывает не ясно какому then относится, то или иное ELSE
На самом деле надо иметь ввиду, что else всегда относится к ближайшему IF слева.
Рассмотрим конкретный пример.
Пусть требуется протабулировать следующую значение разрывную функцию:
|
|
ax, если 0 |
x |
7; |
|
У = |
|
bx2 , если 7 |
x |
12; |
|
|
|
|
|
|
|
|
|
cx3 , если 12 |
x |
20; |
|
|
|
dx4 , если 15 |
x |
20; |
|
где а = |
3,7 |
;1 |
|
|
|
|
|
10 |
|
|
|
|
b= 0,15; |
|
|
|
|
|
с=1,2; |
|
|
|
|
|
d= |
0,2 |
. 2 |
|
|
|
|
10 |
|
|
|
|
|
|
|
x 1, |
При |
этом, |
шаг |
изменения |
аргумента |
интервал изменения аргу-мента: 0 х 20. |
|
|||
Структурная |
схема |
алгоритма табулирования |
||
разрывной функции приведена на рис. 4.2.2 |
|
|||
Начало
Ввод а,в,с,d
Ввод аргумента
Х
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
|
|
|
|
|
|
|
||
|
|
|
Да |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Х< 7 |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
Да |
|
|
|
|
|
Нет |
|
|
|
|
||||
|
У= a*x |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
Х 12 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y = a*x2 |
|
|
|
|
|
|
|
|
|
Х 12 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
У= bx3 |
|
|
|
|
|
Y= dx4 |
||||
20
Вывод х,у
Конец
Рис.4.2.2. Структурная схема алгоритма табулирования разрывной функции.
Один из вариантов программы (согласно структурной схеме рис.4.2.2.) может выглядеть:
Program_funс; Const
а=3.7e-1; b=0.15; с=1.2; d=0.2e-2;
Var
x: integer; y:real;
Begin
read(x); If_x<7_then_y:=a x_else
If_x<=12_then_y:=b sqr(x)_ else If_x<=15_then_y:=c exp(3 ln(x))_ else If_x<=20_then_y:=d exp(3 ln(x))_ else;
Writeln (´x=´, x:2, ´y=´, y);
End.
ОПЕРАТОР ВАРИАНТА CASE
Данный оператор относится к группе переходных операторов (if, goto). Дело в том, что часто вместо оператора if удобно использовать оператор варианта или выбора, который в общем виде можно представить (неполная форма):
Case (селектор) of
Метка 1: оператор 1 ; Метка 2 : оператор 2 ;
.
.
.
Метка n : оператор n ;
End;
Здесь:
Case – выбор ;
Of – из ;
End – конец оператора case.
(Поэтому в программе с использованием case, на один оператор end, будет больше);
(селектор) - математическое выражение целого типа, либо переменная целого типа.
Метка – целое число, стоящее перед оператором и отделѐнное от него двоеточием.
т.е метки – целые числа, значения которых принимают селекторы.
Таким образом, до выполнения CASE селектор должен иметь какое-то целое число и тогда компьютер переходит к выполнению оператора, числовое значение метки которого совпадает с числовым значение селектора.
Рассмотрим конкретную программу для вычисления одной из площадей различных геометрических фигур по выбору:
|
ab, |
|
|
если n=1 |
|||
|
|
|
|
|
|||
|
|
ah |
|
, |
|
если n=2 |
|
|
2 |
|
|
||||
|
|
|
|
|
|
||
S |
|
(ab)h |
, |
если n=3 |
|||
2 |
|
|
|||||
|
|
|
|
||||
|
|
|
|
2 |
|
если n=4 |
|
|
|
|
|
r |
, |
||
|
|
|
|
|
|
||
|
|
|
|
R |
2 |
если n=5 |
|
|
|
|
|
|
|||
|
|
|
|
|
, |
|
|
|
360 |
|
|||||
|
|
|
|||||
Здесь а=3.2, h=2.4, |
=27.4,; |
||||||
b=7.8* |
10 1, |
3.14 |
pi, r=4.2; |
||||
Значение селектора n необходимо вводить вручную (с клавиатуры) с помощью оператора READ.
Вариант программы следующий:
Program_geom; Label
1,2,3,4,5; Const
a=3.2; b=7.8e-1; h=2.4; f=27.4; r=4.2;
Var
S: real;
n: integer; Begin
Read (n);
Case_n_of 1:S:=a*b; 2:S:=a*h/2;
3:S:=h*a*b/2; Оператор выбора
4:S:=pi*r*r;
5:S:=pi*(r*r)*f/360;
end;
Write (‗S=‘,S);
End.
В данной программе при реализации необходимо с клавиатуры ввести одну из цифр от 1 до 5.
Если набрана цифра больше 5, то компьютер выходит из программы без выдачи результатов и сообщения об ошибках.