Операции умножения и сложения в Pascal.

В данном уроке мы рассмотрим операции умножения и сложения в Pascal. Умножение в Pascal обозначается знаком «*», а сложение - знаком «+».

Функции Pred, Succ в Pascal.

В данном уроке мы рассмотрим функции, применяемые к типу CHAR. Функция Pred возвращает в качестве значения предшествующий символ, а функция Succ возвращает последующий символ.

Логические операции And, Or, Not, Xor в Pascal.

Над переменными логического типа можно производить логические операции. В языке программирования Pascal существуют следующие логические операции : Andлогическое умножение, Orлогическое сложение, Notлогическое отрицание, Xor ...

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

Массив строк типа STRING.

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

Поиск минимального и максимального элементов массива.

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

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

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальЛекции по Паскаль