Мегаобучалка Главная | О нас | Обратная связь


If булевское выражение then оператор;



2020-02-04 220 Обсуждений (0)
If булевское выражение then оператор; 0.00 из 5.00 0 оценок




Здесь, если булевское выражение true, выполняется оператор, следующий за словом then, и происходит переход к оператору, следующему за оператором if. Если булевское выражение false, то оператор if игнорируется (вообще не выполняется), а выполняется оператор, следующий за if.

Переделаем "бесконечную" программу п. 3.2. в такую, которая остановится тогда, когда х станет равным 0.1.

     Program Prim4;  Label M;  Var x:real;

BEGIN x:=0;

    M: writeln('x=',x,' cos x = ',cos(x));

       x:=x+0.01;

       if x<=0.1 then goto M; readln;

END.

Программа выдает результаты вычислений cos(x) для х = 0.01, 0.02, 0.03 и т.д., до 0.01.

В последней программе булевское выражение х < = 0.1. Какие бывают булевские выражения? Вообще говоря, булевское выражение после вычисления всегда истинно или ложно, т.е. TRUE или FALSE. Действительно, выражение х < = 0.1 может быть истинно, если х меньше или равно 0.1, и ложно – в противном случае. Вообще булевское выражение может строиться из булевских констант TRUE и FALSE; переменных булевского типа (в которых могут храниться TRUE или FALSE); обращений к функциям, которые возвращают TRUE или FALSE и отношений, соединенных между собой булевскими операциями и круглыми скобками.

Здесь следует расшифровать, что такое отношения и булевские операции. Примером отношения может быть приведенное выше х < = 0.01, т.е. в общем случае отношение – это два арифметических выражения, соединенных между собой операциями отношения. Операции отношения: = (равно), < > (неравно), > (больше), > = (больше или равно), < (меньше), < = (меньше или равно).

Пример отношений:        а + b < = sin(c)

exp(p) > (cos(i) - a)/sgr(b).

Как мы уже говорили, эти отношения могут быть истинны или ложны в зависимости от конкретного значения величин, в них входящих, на момент вычисления.

Логические операции – это нам уже известные. Напомним, как они работают: or (или), and (и).

Имеется описание Var A,B: boobean;

Or – логическое сложение, читается как "или". Результат операций – истина, если или А, или В – истина, и ложь, если А и B ложны.

Например:            А                   В               А ог В

true            true              true

true       false         true

false      true            true

false           false         false

Замечание: данная операция аналогична арифметической OR, если TRUE заменить 1, а FALSE – 0.

АND - логическое умножение, читается "и". Результат операции – истина только тогда, когда и А, и В – истина, в остальных случаях результат – ложь.

А                  В          A and B

              true              true               true

true                 false         false

  false                true               false

  false                false         false

Кроме того, удобно применять однокомпонентную операцию Not, которая вводится следующим образом: если А есть TRUE, то Not А есть FALSE и если А есть FALSE, то Not А есть TRUE.

С помощью этих операций можно построить условия любой сложности. Например, пусть необходимо решить задачу:

 

 

 

Напишем программу:

     Program Prim5;

  Var a,x:real;

BEGIN

        writeln(' введите а ,х'); readln(a,x);

     if (a>0) and (x>0) and (x<=0.5) then

        writeln('z=',a*sqr(x)/sin(x)) else

     if (a>0) and (x>=0.5) and (x<3) then

        writeln('z=',exp(x)) else

     if (a<=0) or (x<=0) then

        writeln('z=',sqrt(a)*sqrt(x)/sin(x)) else

        writeln('z=0');

                      readln; END.

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

Еще один пример: пусть дана область (заштрихованная на рис. 3.3). Мы вводим с клавиатуры координаты точки. Машина должна определить, принадлежит ли данная точка этой области или нет.

Разобьем область рис. 3.3 на несколько простых:

1. Внутренняя часть сектора, ограниченного отрицательной частью оси OX, положительной OY и окружностью с центром в начале координат и радиусом, равным 2.

     
 
Рис. 3.3

 


2. Прямоугольник, ограниченный осями OX, OY и прямыми x=4, y=2.

3. Прямоугольник, ограниченный осями OX, ОУ и прямыми x=-2, y=-4.

4. Внутренняя часть сектора, ограниченного положительной частью оси OX, отрицательной OY и окружностью с центром в начале координат и радиусом, равным 3.

5. Внутренняя часть квадрата, ограниченного прямыми линиями x=2, x=3, y=-3, y=-4.

6. Область, лежащая внутри окружности с центром x=5, y=-3 и

радиусом= 1,5.

Программа:

      Program Prim6;

  Label N,K,L;

  Var x,y:real; f:char;

  BEGIN N: writeln('введите координаты точки');

    readln(x); writeln('x=',x);

    readln(y); writeln('y=',y);

if (x<=0) and (y>=0) and (sqr(x)+sqr(y)<=4)         {1- я область }

or (x>=0) and (x<4) and (y>=0) and (y<=2)        {2- я область }

or (x<=0) and (x>=-2) and (y<=0) and (y>=-4)   {3- я область }

or (x>=0) and (y<=0) and (sqr(x)+sqr(y)<=9)    {4- я область }

or (x>=2) and (x<=3) and (y<=-3) and (y>=-4)  {5- я область }

or (sqr(x-5)+sqr(y+3)<=2.25)                              {6- я область}

 then writeln('точка с координатами х=',x,' y=',y, 'принадлежит области')

else writeln('точка с координатами х=',x,' y=',y, 'не принадлежит оласти);

L: writeln('будем ли ещё вводить координаты точки?, Y , N '); readln(f);

if (f='Y') or (f='y') then goto N else

if (f='N') or (f='n') then goto K else

writeln('неправильно нажали клавишу, попробуйте ещё раз'); goto L;

K : readln ; End .

Замечание: для того, чтобы построить область, необходим здравый смысл и элементарные знания аналитической геометрии. Так, х>=0 определяет область (рис. 3.4)

 

 

x>=0 and x<=4 определяет полосу (рис. 3.5)

 

 

 


Вспомнив, что уравнение окружности с центром в начале координат x2+y2=r2, имеем x2+y2£4 (рис. 3.6),

 

 

 


x £0 является полуплоскостью (рис. 3.7),

 

 


y ³0 определяет полуплоскость (рис. 3.8),

 

 

 


x £0 and y ³0 есть квадрант (рис. 3.9)

 

 


и, наконец,

x £0 and y ³0 and sqr(x)+sqr(y)£4 есть сегмент (рис. 3.10)

 

 

 


3.4. Оператор case (оператор выбора)

 

Общий вид:

Case выражение - селектор of



2020-02-04 220 Обсуждений (0)
If булевское выражение then оператор; 0.00 из 5.00 0 оценок









Обсуждение в статье: If булевское выражение then оператор;

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (220)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)