GotoXY в Pascal.

Процедура GotoXY используется в Pascal для перевода курсора в нужную позицию на экране. Для этой процедуры указываются координаты. После указания процедуры GotoXY в коде программы сообщение будет выводиться на экран в тех координатах, которые мы ...

Функции Copy, Pos, процедуры Delete, Insert.

Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет ...

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

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

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

Структурное программирование

Самое главное в программировании - это научиться писать четкие, логические и структурированные программы.

• Используйте осмысленные имена для переменных, процедур и функций.

• Используйте отступы ...

Линейные процессы вычислений.

Простейший алгоритм представляет собой цепочку блоков (операторов) от начального блока до конечного. Каждый блок должен быть выполнен один единственный раз. Это линейный алгоритм. Он отражает ...

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

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

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

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