Применение логических операций с оператором IF.

В данном уроке мы рассмотрим применение логической операции And с условным оператором If.

Тип данных String в Pascal.

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

Использование Var, Integer, Readln.

Процедура Readln используется не только для задержки экрана. Ее основная задача - ввод данных с клавиатуры. В этой статье мы научимся вводить числа с клавиатуры, и потом выводить их на экран. Для этого нам будет необходимо познакомиться с разделом ...

Циклы и массивы

Программирование данных.

Любые данные, то есть константы, переменные, выражения, значения функций, характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь программируемый объект, ...

Индексы одномерного массива.

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

Если вычислительный процесс зависит от определенных условий и реализуется по одному из нескольких заранее предусмотренных направлений, он называется разветвляющимся вычислительным процессом, а каждое из этих направлений – ветвью вычислений. Для выбора ветви вычислений в Паскале используются операторы IF и CASE.

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

Составной оператор.
Составной оператор предписывает выполнение составляющих его операторов в порядке их написания. Зарезервированные слова BEGIN и END являются операторными скобками. Формат оператора:
BEGIN    {Начало составного оператора}
<Оператор 1;>
<Оператор 2;>
          …
<Оператор n>
END;    {Конец составного оператора}
Составной оператор используется в тех конструкциях, где по синтаксису языка должен быть только один оператор, а для решения задачи требуется более одного. В составном операторе все операторы 1, 2,..., n выполняются последовательно ДРУГ за другом.
Логические выражения.
Одним из нечисловых видов данных является тип BOOLEAN. Булевы (логические) переменные имеют только два значения: FALSE (ложь), TRUE (истина). Существует несколько форм конструирования логического выражения:

  • константа, описанная в разделе CONST;
  • переменная, которой можно присвоить булевы значения (например FLAG:= TRUE);
  • отношение между переменными скалярных и некоторых структурированных типов.

В Паскале допускаются отношения, перечисленные в таблице 16.

razvetvlyayuthiyjsya vihchisliteljnihyj process

Пример 6. Пусть заданы вещественные переменные А, В и логическая переменная FLAG. Требуется построить примеры простых логических выражений, содержащих отношения между А и В.
Если:
VAR
FLAG, FLAG1, FLAG2: BOOLEAN;
А, В: REAL;
тогда допустимы выражения вида:
FLAG := А <= В;     
Значение TRUE 'истина' присваивается переменной FLAG, если А меньше или равно В.
FLAG 1 := А <> В;  
Значение TRUE 'истина' присваивается переменной FLAG1, если А не равно В.
FLAG2 := А = В;     
Значение TRUE 'истина' присваивается переменной FLAG2, если А равно В.
Помимо указанных выше отношений (таблица 16), логические выражения конструируются с помощью булевых операций, описанных в таблице 17.

razvetvlyayuthiyjsya vihchisliteljnihyj process.

Пример 8. Сформулировать логическое условие попадания точки с координатами (х, у) в область S (рисунок 2).

razvetvlyayuthiyjsya vihchisliteljnihyj process..
Пусть:
VAR FLAG: BOOLEAN;
Уравнение окружности, которая ограничивает область S в первом и втором квадранте системы координат XOY имеет вид:

razvetvlyayuthiyjsya vihchisliteljnihyj process...

Тогда величину FLAG, которая принимает значение TRUE в том случае, когда точка с координатами (х, у) принадлежит области S, можно найти по формуле: FLAG:=(Х>=-A) AND (Х<=А) AND (((Y<=SQRT(A*A-X*X)) AND (Y>=0)) OR ((Y<0) AND (Y>=B)));
В языке Паскаль логическое выражение просчитывается до тех пор, пока результат не становится очевидным. После чего вычисления прекращаются. Так в нашем случае используется конъюнкция трех условий: X больше -А, X меньше А и ограничение на значение Y. Достаточно любой логической величине принять значение FALSE и остальные величины, стоящие правее в логическом выражении, уже не просчитываются, так как переменная FLAG независимо от значений оставшихся отношений будет равна FALSE. О качественной установке терминалов оплаты можно узнать на сайте http://xn-----6kcabbjdz4asrcijhjkculnxhob5v.xn--p1ai/ опытные специалисты сделают все в лучшем виде.  В нашем случае это удобно! Потому, что уравнение окружности определено для значений X, удовлетворяющих условию -А < X < А. Именно это условие и проверяется в двух левых отношениях, поэтому используемое логическое выражение Y<=SQRT( А* А - Х*Х) для расчета переменной FLAG корректно для любых значений X.
PROGRAM PR8;
VAR
А, В, X, Y: REAL;
FLAG: BOOLEAN;
BEGIN
WRITELN('Введите параметры А и В');
READLN(A, В);
WRITELN('Введите координаты X и Y); READLN(X, Y);
FLAG := (X>—A) AND (X<=A) AND (((Y<=SQRT(A*A - X*X)) AND (Y>-0))
OR ((Y<0) AND (Y>~B)));
IF FLAG THEN WRITELN('Tочкa в области S')
ELSE WRITELN('Toчкa вне области S')
END.
В стандартном Паскале предусмотрен порядок старшинства операций в булевых выражениях: Высший - (скобки); NOT; AND; (OR, XOR); ( >, =, >-, <-, <> ) - низший. Однако в различных версиях языка эти требования могут и не соблюдаться, поэтому надежнее использовать скобки для уточнения последовательности вычислений.
Существуют встроенные булевы функции, наиболее известные из которых ODD(X), EOF(F), EOLN(F), описание которых приведено в таблице 10.
Логическое выражение может быть достаточно сложным и включать в себя арифметические и логические функции, например: FLAG := ODD(I*3+K) AND (( SQR(C) > SIN(D/2)) OR ( A = 5 ));
Переменная FLAG принимает значение TRUE, если целочисленное выражение I*3 + К принимает нечетное значение и квадрат С больше, чем синус D, деленной пополам, или А равно 5. В противном случае FLAG принимает значение FALSE.
В приведенных примерах в правой части оператора присваивания расположено логическое выражение, а в левой части – логическая переменная.


Предыдущая статья: Примеры линейных программ.
Оглавление: Лекции по Pascal.
Следующая статья: Организация условного перехода. Оператор IF.


Комментарии  

 
0 # ирина 22.03.2017 08:58
хэх
 
 
0 # Ukkhhh 28.02.2023 05:53
Kjijbbhj
 
   ГлавнаяПаскальЛекции по ПаскальРазветвляющийся вычислительный процесс.