Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




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

Для организации ветвлений в программах используют операторы передачи управления (операторы перехода).

Допускается запись условного оператора в двух формах - пол­ной и краткой.

Полная форма условного оператора if предназначена для программирования разветвлений и имеет вид:

If Логическое выражение then оператор 1 else оператор 2;

где опера­тор1, оператор2 простые (в том числе и условные) или составные операторы. Здесь используются ключевые слова: if – если; then [зен] – тогда (то); else [элз] – иначе.

В дальнейшем для удобства изложения оператор 1 будем называть then-ветвью, а оператор 2 - else-ветвью. Подчеркнем, что в каждой из ветвей может находиться только один оператор. Перед else символ ’; ’ не ставится никогда.

Оператор if выполняется так:

1) вычисляется значение логического выражения, результат вычислений анализи­руется;

2) если результатом является true, выполняется опера­тор 1, если falseоператор 2.

После выполнения любой из ветвей выполняется следующий по порядку оператор программы.

Пример 3.8. Составить программу нахождения максимального из двух чисел.

var a, b, max: real;

Begin

write ('введите числа a,b'); readln(a, b);

if a > b then max:=a else max:=b;

writeln (max:10:2)

End.

Если a > b, то выполняется оператор max:=a (ветвь then), в против­ном случае – оператор max:=b (ветвь else). После выполнения любой ветви следующим будет выполнен оператор вывода.

Если в одной или в обеих ветвях оператора if необходимо раз­местить не один, а несколько операторов, то каждую такую группу следует представить в виде одного составного оператора.

Составной оператор используется в тех случаях, когда в соответствии с правилами построения конструкций языка можно использовать один оператор, а выполнить нужно несколько действий.

Составной оператор начинается служебным словом begin и за­канчивается словом end. Между этими словами размещаются необходи­мые для вычислений операторы. Слова begin и end играют в составном операторе роль скобок и называются, поэтому операторными скобками. Например

Begin

c:=a; a:=b; b:=c

End

Пример 3.9. Решить уравнение ax2 + bx + c = 0 (a ¹ 0)

Var

a, b, c, x1, x2, d: real;

Begin

write ('введите a,b,c '); readln (a,b,c);

d:= sqr(b) – 4*a*c;

if (d < 0) then write ('корни комплексные ')

Else

Begin

d:= sqrt (d); a:=2*a;

x1:= (- b + d) / a; x2:= (- b – d) / a;

writeln (x1:10:2, x2:10:2)

End

End.

Если условие d < 0 истинно, выводится сообщение «корни комп­лексные», после чего работа программы заканчивается. В противном случае выполняется else-ветвь, содержащая составной оператор (че­тыре оператора присваивания и оператор вывода).

Краткая форма условного оператора if. Эта форма используется при программировании ответвлений и имеет вид:

if Логическое выражение then оператор 1;.

Если логическое выражение есть tru e, то выполняется опера­тор 1, в противном случае выполняется следующий оператор програм­мы.

Пример 3.10. Даны два числа. Если второе число больше первого – уменьшить его в два раза.

var a, b: real;

Begin

write ('введите a, b '); readln (a, b);

if a < b then b:= b / 2;

writeln (a:10:2, b:10:2)

end.

 

В операторе if непосредственно за ключевыми словами then и else могут следовать любые операторы, в том числе и операторы if. В этом случае они называются вложенными. Ниже приведены примеры, в которых используются вложенные операторы if.

Пример 3.11. Вычислить значение функции у по формуле при a > b.

 

Блок-схема алгоритма приведена на рис. 4.1. Здесь в линейную структуру вложена ветвящаяся, ветвь «нет» которой, в свою очередь, составляет еще одна ветвящаяся структура. Глубина вложения такой ветвящейся структуры равна 2.

 

 
 

 

 


           
 
 
   
     
 


 
 
Рис. 3.1. Алгоритм с тремя ветвями

 


Программа имеет следующий вид.

 

Var

x, y, a, b: real;

Begin

writeln ('введите x, a, b ');

Readln (x, a, b);

if x <= a then y:= sqr (x)

else if x > b then y:= sqr (sqr (x))

else y:= x * sqr (x);

writeln (y:10:2)

End.

Пример 3.12. Составить программу решения следующей задачи

 

Схема алгоритма на рис 3.2.

 
 

 

       
 
 
   
Рис. 3.2. Ветвление со сложными условиями

 

 


Программа имеет следующий вид:

var x, a, z: real;

Begin

write ('введите x,a'); readln (x, a);

if (a = 2) and (x = 1) then z:= sqr (a * x)

Else

if (a = 3) or (x = 2) then

z:= exp (1 / 3 * ln (x*a))

else z:= exp (1 / 5 * ln (x));

writeln (z:10:2)

End.

В отличие от предыдущих примеров, где в качестве условий в операторах if использовались выражения отношения, здесь условия представляют собой более сложные логические выражения, содержащие логические операции and и or. В большинстве случаев это делает программу более простой и понятной.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных