
- •Функция Описание
- •К примеру разберем первое задание по abc Pascal :
- •Программы которые мы выполняли на лабораторных занятиях :
- •Виды условных инструкций
- •Условный оператор
- •Условный оператор с одной ветвью
- •Условный оператор с двумя ветвями
- •Условный оператор с несколькими условиями
- •Программы которые мы выполняли на лабораторных занятиях :
- •Оператор выбора
- •Программы которые мы выполняли на лабораторных занятиях :
Виды условных инструкций
Существует две основные формы условной инструкции, встречающиеся в реальных языках программирования: условный оператор (оператор if) и оператор многозначного выбора (переключатель, case, switch).
Условный оператор
Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true. В большинстве языков программирования условный оператор начинается с ключевого слова if.
Встречаются следующие формы условного оператора:
Условный оператор с одной ветвью
if условие then команды end
При выполнении такого оператора вычисляется условие, и если оно истинно, то выполняются команды до ключевого слова end, в противном случае выполнение программы продолжается со следующей за условным оператором команды. В языках низкого уровня (ассемблерах) это — единственная доступная форма условного оператора. В некоторых языках для условного оператора с одной ветвью используется специальное ключевое слово (обычно это when).
Условный оператор с двумя ветвями
if условие then команды1 else команды2 end
Здесь при истинности условия выполняются команды1 при ложности — команды2. При необходимости проверить последовательно несколько условий возможно каскадирование условных операторов:
if условие1
then команды1
else if условие2 then команды2
else if условие3 then команды3
...
else if условиеN-1 then командыN-1
else командыN end;
В этом случае условия будут проверяться последовательно, и как только встретится истинное, будет выполнен соответствующий набор команд и исполнение перейдёт к команде, следующей за условным оператором. Если ни одно из условий не окажется истинным, выполняются командыN из ветви else.
Условный оператор с несколькими условиями
Вышеприведённая схема каскада условных операторов используется достаточно часто, поэтому ряд языков программирования содержит специальную конструкцию для неё, позволяющую записать множественное ветвление несколько компактнее и менее подверженную ошибкам написания:
if условие1 then команды1
elsif условие2 then команды2
elsif условие3 then команды3
...
else командыN end;
порядок выполнения этого оператора в точности соответствует вышеприведённому каскаду простых операторов if-then-else, а отличие чисто формальное: вместо вложенных нескольких условных операторов эта конструкция является единым целым и содержит дополнительное ключевое слово elsif, требующее после себя очередное условие.
Программы которые мы выполняли на лабораторных занятиях :
program z1;
var
x:real;
y:real;
begin
write('vvedite x');
readln(x);
if (x>=0) then y:=sqrt(x)
else y:=sqrt(abs(x));
writeln(y);
writeln(x);
end.
program z2;
var
x:real;
y:real;
begin
write('vvedite x');
readln(x);
if (x<=0) then y:=1
else if(x>0) and (x<1)
then y:= -x+1 else y:=0;
writeln(y);
writeln(x);
end.
program z3;
var
x:real;
y:real;
begin
write('vvedite x');
readln(x);
if (x>=0) then y:=exp(sqr(x))
else y:=sqr(x)+3*x;
writeln(y);
writeln(x);
end.
program z4;
var
x:real;
y:real;
begin
write('vvedite x');
readln(x);
if (x>=-1) and (x<=0) then y:=x+1 else if ((x>=0) and (x<=1)) then y:=-x+1 else if (x<-1) then y:=0 else if (x>1)then y:=0;
writeln(y);
end.
program z5;
var
x:real;
y:real;
begin
write('vvedite x');
readln(x);
if (x>=-2) and (x<=0) then y:=-x-1 else if ((x>=0) and (x<=2)) then y:=x-1 else if (x<-2) then y:=1 else if (x>2) then y:=1;
writeln(y);
end.
program z6;
var
x:real;
y:real;
begin
write('vvedite x');
readln(x);
if (x<-1) then y:=1 else if ((x>=-1) and (x<=0)) then y:=-x else if (x>0) then y:=0.5*x;
writeln(y);
end.
program z7;
var
x:real;
y:real;
begin
write('vvedite x');
readln(x);
if (x<-1) then y:=1 else if ((x>=-1) and (x<=0)) then y:=-x else if (x>0) then y:=0.5*x;
writeln(y);
end.