Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕример 2.1 выполнени€ задани€

ѕрограммы разветвл€ющейс€ структуры

—редства разработки программ разветвл€ющейс€ структуры

ѕрограммой разветвл€ющейс€ структуры называют такую программу, в которой, в зависимости от исходных данных, возможны различные последовательности выполнени€ операторов, причем на любой из них каждый оператор выполн€етс€ только один раз.

ƒл€ реализации программ или фрагментов программ с разветвл€ющейс€ структурой используютс€ сложные операторы [1]: условные операторы if и операторы выбора case. ¬ этом разделе ограничимс€ рассмотрением полной формы условного оператора - оператора if then else и его сокращенной формы Ц оператора if then.

ѕри использовании условных операторов ветвление алгоритма обусловлено проверками логических выражений (в €зыке Object Pascal их называют булевскими выражени€ми), результатом вычислени€ которых могут быть лишь два значени€: Ђистинаї и Ђложьї. ¬ условных операторах могут использоватьс€ как простейшие булевские выражени€, основанные на сравнении выражений других типов, так и сложные, использующие логические операции.

”словные операторы

ќператор if then else имеет следующую синтаксическую диаграмму

где Ѕ¬ Ц булевское выражение (см. ниже в разделе Ѕулевский тип), значением которого может быть либо Ђистинаї, либо Ђложьї. ќп1 и ќп2 Ц операторы, каждый из которых может быть пустым оператором. ѕри выполнении оператора if then else вначале вычисл€етс€ выражение Ѕ¬ и если результат Ц Ђистинаї, то выполн€етс€ оператор ќп1, иначе, то есть если результат имеет значение Ђложьї, Ц оператор ќп2. ¬ схемах алгоритмов оператору if then else соответствует конструкци€

 

ќператор if then имеет синтаксическую диаграмму

где Ѕ¬ Ц булевское выражение, ќп1 Ц оператор. ѕри выполнении оператора if then вначале вычисл€етс€ выражение Ѕ¬ и если результат Ц Ђистинаї, то выполн€етс€ оператор ќп1, иначе, то есть если результат Ц Ђложьї, управление передаетс€ следующему по пор€дку оператору программы. ¬ схемах алгоритмов оператору if then соответствует конструкци€

ѕростейшими булевскими выражени€ми €вл€ютс€ отношени€. «наки отношений записываютс€ следующим образом: >, <, = Ц так же, как в математике, знаки записываютс€ парами символов <=, >=, <> соответственно. Ѕолее сложные булевские выражени€ рассмотрены в следующем разделе.

ѕример. “ребуетс€ записать условный оператор, вычисл€ющий новое значение Y по заданным значени€м A, B, X, Y по формуле

то есть в соответствии с алгоритмом

¬от этот оператор:

if A > B then
if B >= 3 then
Y:=2
else
else
Y:=X;

Ётому оператору if then else подчинен оператор присваивани€ Y:=X и еще один оператор if then else, который, в свою очередь, содержит пустой оператор (после первого else) и оператор присваивани€ Y:=2. Ќеобходимость использовани€ else во вложенном условном операторе вытекает из следующего правила: else относитс€ к ближайшему предшествующему if, у которого нет части else. ћожно было бы не использовать else во вложенном условном операторе, но тогда пришлось бы заключить его в операторные скобки, то есть заменить его оператором

begin if B >= 3 then Y:=2 end.

ѕример. ƒл€ функции предыдущего примера можно составить другой алгоритм:

“огда соответствующим ему оператором if then else будет

if A<=B then
Y:=X
else
if B>=3 then
Y:=2

и вложенный в него условный оператор естественно использовать в сокращенной форме.

Ѕулевский тип

Ёто стандартный тип Boolean. ќн представл€ет всего два значени€: Ђложьї и Ђистинаї (соответствующие булевские константы - False и True). ќпераци€ми над данными типа Boolean €вл€ютс€:

Ј отрицание (другое название Ц не, знак операции not),

Ј конъюнкци€ (другие названи€ Ц логическое произведение или просто », знак операции and),

Ј дизъюнкци€ (другие названи€ Ц логическа€ сумма или просто »Ћ», знак операции or),

Ј неравнозначность (другие названи€ Ц неэквивалентность или сумма по модулю два, знак операции xor).

ќтрицание €вл€етс€ унарной операцией, остальные Ц бинарными.

¬ математике операции not соответствует знак Ø перед аргументом (Ø’) или черта над аргументом (); операции and соответствует знак & или • или (X&Y или X•Y или X Y); операции or соответствует знак V (X V Y); операции xor соответствует знак .

Ќиже представлены их таблицы истинности.

 

X not X   X Y X and Y   X Y X or Y   X Y X xor Y
False True False False False False False False False False False
True False True False False True False True True False True
  False True False False True True False True True
True True True True True True True True False

 

¬ общем случае булевские выражени€ содержат отношени€, булевские константы, переменные и функции, возвращающие булевские значени€, разделенные знаками булевских операций и круглыми скобками. ќпераци€ not имеет наивысший приоритет и выполн€етс€ в первую очередь, операци€ and имеет тот же приоритет, что и арифметические операции типа умножени€, операции or и xor имеет тот же приоритет, что и арифметические операции типа сложени€ и, наконец, в последнюю очередь вычисл€ютс€ отношени€.

ѕример. —оставить условный оператор дл€ вычислени€ нового значени€ Y по формуле

 ак видно из задани€, при истинности одного из условий, другие будут иметь значение Ђложьї, поэтому дл€ вычислени€ лучше использовать не два, а один условный оператор if then else, что приведет к сокращению вычислений:

if (A*B>1) and (A>0) then
Y:=A
else
if (A+B>1) and (A<0) then
Y:=B;

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

 

ѕример 2.1 выполнени€ задани€

—оставить программу вывода значений функции Y(X), заданной графиком (функци€ не определена при |’|>3)

 

 

или, что то же самое, Ц формулой

двум€ способами:

a) с помощью минимального числа операторов if then else, без применени€ булевских операций (not, and, or, xor),

b) с помощью минимального числа операторов if then (без else) с применением булевских операций.

¬ывести с по€сн€ющими текстами значение ’ и вычисленные значени€ функции.

 

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils, Math;

var

X,A,Z,Y:Real;

F:Boolean;

begin

Write('¬ведите значение аргумента: ');

ReadLn(X);

A:=Abs(X); //¬ычисление абсолютного значени€ ’

Z:=Sign(X); //¬ычисление Z

{ ----- ¬ычисление без применени€ булевских операций ----- }

if A>=3 then

WriteLn('‘ункци€ не определена. ')

else

begin

if A<=1 then

Y:=Z*(1-A)

else if A<2 then

Y:=Z

else

Y:=-Z;

WriteLn('Y = ',Y:4:2);

end;

{ ----- ¬ычисление с применением булевских операций ----- }

if A>=3 then

WriteLn('‘ункци€ не определена. ');

if A<=1 then

WriteLn('Y = ',Z*(1-A):4:2);

if (A>1) and (A<2) then

WriteLn('Y = ',Z:4:2);

if (A>=2) and (A<3) then

WriteLn('Y = ',-Z:4:2);

ReadLn;

end.



<== предыдуща€ лекци€ | следующа€ лекци€ ==>
ѕротокол є 3 клинического разбора больного | –ассмотрение и утверждение схемы
ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2016-11-22; ћы поможем в написании ваших работ!; просмотров: 350 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

„то разум человека может постигнуть и во что он может поверить, того он способен достичь © Ќаполеон ’илл
==> читать все изречени€...

687 - | 608 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.017 с.