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

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

Использование вложенного оператора If.

Условные операторы в Pascal можно вкладывать друг в друга. Для этого используется вложенный оператор IF. Рассмотрим это на примере программы, которая будет считать количество корней квадратного уравнения.

Textcolor, Window, Textbackground в Pascal.

Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится ...

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

Примеры использования различных операторов цикла.

Примеры использования различных операторов цикла.

Использование массивов и функций в качестве формального параметра.

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

Если вычислительный процесс зависит от определенных условий и реализуется по одному из нескольких заранее предусмотренных направлений, он называется разветвляющимся вычислительным процессом, а каждое из этих направлений – ветвью вычислений. Для выбора ветви вычислений в Паскале используются операторы 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
 
   ГлавнаяПаскальЛекции по ПаскальРазветвляющийся вычислительный процесс.