Логические выражения

Логическое выражение задает правило для вычисления логического значения TRUE и FALSE. Выражение строится из логических данных (логических функций, констант, переменных, операций отношения (сравнения)), связанных логическими операциями.

Порядок выполнения действий:

1. Операция отрицания - NOT.

2. Умножение, деление, операции DIV, MOD, логическое умножение – AND.

3. Сложение, вычитание, логическое сложение – OR.

4. Операции отношения (<, >, <=, >=, =, <>) - имеют самый низкий приоритет, поэтому их следует заключать в круглые скобки.

Таблица основных стандартных функций языка и некоторых операций

Функция Назначение Тип аргумента Тип функции
PI Число p=3,1415926536 - REAL
ABS(X) Абсолютное значение Х (|x|) REAL INTEGER REAL INTEGER
SQR(X) Квадрат Х (х2) REAL INTEGER REAL INTEGER
SIN(X) Синус Х REAL INTEGER REAL REAL
COS(X) Косинус Х REAL INTEGER REAL REAL
ARCTAN(X) Арктангенс Х REAL INTEGER REAL REAL
EXP(X) Экспонента Х (ех) REAL INTEGER REAL REAL
EXP10(X) 10 в степени Х (10х) REAL INTEGER REAL REAL
LN(X) Натуральный логарифм Х (ln x) REAL INTEGER REAL REAL
LOG(X) Десятичный логарифм Х (lg x) REAL INTEGER REAL REAL
SQRT(X) Квадратный корень из Х () REAL INTEGER REAL REAL
TRUNC(X) Ближайшее целое, не превышающее Х по модулю REAL INTEGER
ROUND(X) Округление Х в сторону ближайшего целого REAL INTEGER
ODD(X) TRUE – если Х – нечетное FALSE – если Х– четное INTEGER BOOLEAN
ORD(X) Определение номера символа языка Паскаль в десятичной системе счисления CHAR INTEGER
CHR(X) Определение символа языка Паскаль по его порядковому номеру INTEGER CHAR
A DIV B Вычисление частного при делении А на В INTEGER INTEGER
A MOD B Вычисление остатка при делении А на В INTEGER INTEGER
INT(X) Целая часть Х INTEGER REAL REAL REAL
FRAC(X) Дробная часть Х INTEGER REAL REAL REAL
PRED(X) Нахождение элемента, являющегося предыдущим для данного (в перечне допустимых элементов) INTEGER BOOLEAN CHAR INTEGER BOOLEAN CHAR
SUCC(X) Нахождение элемента, являющегося следующим для данного (в перечне допустимых элементов) INTEGER BOOLEAN CHAR INTEGER BOOLEAN CHAR

PRED(TRUE)=FALSE

SUCC(FALSE)=TRUE

Если аргумент целый, то Y:=PRED(X) ≈ Y:=X-1

Y:=SUCC(X) ≈ Y:=X+1

ОПЕРАТОРЫ ЯЗЫКА ПАСКАЛЬ

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

программа пользователя;

наборы исходных данных, для этой программы;

наборы результатов выполнения программы;

Для ввода в программу исходных данных и вывода результатов используются два стандартных файла: INPUT – для ввода данных;

OUTPUT – для вывода данных.

Можно считать, что вычислительный процесс осуществляется преобразованием текстового файла INPUT в файл OUTPUT. Эти файлы могут записываться в заголовке программ.

PROGRAM P1 (INPUT, OUTPUT);

По умолчанию они имеют следующие описания.

TYPE

TEXT = PACKED FILE OF CHAR;

VAR

INPUT, OUTPUT: TEXT;

ПУСТОЙ ОПЕРАТОР

Синтаксис оператора:

N:; где N – метка.

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

СОСТАВНОЙ ОПЕРАТОР

Синтаксис оператора:

BEGIN

оператор 1;

оператор 2;

…………..;

оператор N

END;

Составной оператор задает последовательность операторов, заключенную в операторные скобки BEGIN и END. Точка с запятой не ставится после слова BEGIN, между последним оператором составного оператора и словом END. Выполнение составного оператора заключается в последовательном выполнении входящих в его состав операторов. Выход из составного оператора осуществляется либо через его закрывающуюся операторную скобку, либо с помощью оператора перехода по метке, находящейся вне составного оператора.

ОПЕРАТОРЫ ВВОДА READ И READLN

Синтаксис операторов:

READ (V1,V2,...,VN);

READLN (V1,V2,...,VN); READ LINE (читать строку)

где V1, V2, …, VN – список переменных

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

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

Оператор READLN выполняет действия, аналогичные оператору READ, но после ввода последней переменной из списка ввода осуществляется переход к началу новой строки файла INPUT. Оператор READLN без списка ввода реализует переход к началу новой строки.

ОПЕРАТОРЫ ВЫВОДА WRITE И WRITELN

Синтаксис операторов:

WRITE (E1,E2,...,EN);

WRITELN (E1,E2,...,EN); WRITE LINE (писать в строку)

где E1, E2,..., EN - список выводимых выражений.

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

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

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

УПРАВЛЕНИЕ ФОРМОЙ ВЫВОДА ДАННЫХ

Если программиста не устраивает стандартная форма вывода, то он использует средства управления печатью (указатели форматов вывода). Для этого в Паскале используют две положительные целые величины:

ширина поля вывода (количество позиций на экране, отводящихся для вывода данного выражения), которая указывается через двоеточие после соответствующего выражения в операторе вывода;

точность представления (количество цифр в дробной части числа), которая указывается через двоеточие после ширины поля вывода.

В этом случае оператор вывода имеет вид:

WRITE(LN) (E1:M1:N1,E2:M1:N1,...,EN:MN:NN);

где MI (I=1,N) – это ширина поля вывода,

NI (I=1,N) – точность представления.

Если ЕI – выражение типа CHAR, то выводится символ и столько пробелов перед ним, чтобы общее количество знаков равнялось ширине поля.

Если ЕI – типа INTEGER, то печать производится аналогично типу CHAR.

Если ЕI – типа REAL и не задана точность представления, то число выдается в экспоненциальной форме.

Если ЕI типа BOOLEAN, то печатается TRUE или FALSE и перед ними печатается столько пробелов, какова общая ширина поля.

ОПЕРАТОР ПРИСВАИВАНИЯ

Синтаксис оператора:

V:=E;

где V – переменная, Е – выражение.

Оператор присваивания выполняется следующим образом: вычисляется значение выражения Е, стоящего в правой части оператора, и это значение присваивается переменной V, стоящей в левой части.

При использовании оператора необходимо помнить, что тип выражения должен соответствовать типу переменной.

Допускаются следующие различия типов:

1) Переменной вещественного типа можно присвоить значение целого типа.

2) Переменной целого типа можно присвоить значение ограниченного типа.

Пример:

Вычислить процент выполнения плана выпуска продукции по предприятию.

PROGRAM PRIMER1;

USES CRT;

VAR

P,F,PR:REAL;

BEGIN

CLRSCR;

WRITELN (‘Введите план и фактический выпуск продукции’);

READLN (P, F);

PR:=F/P*100;

WRITELN (‘План выпуска продукции составляет:’,P:5:2);

WRITELN (‘Фактический выпуск продукции составляет:’,F:5:2);

WRITELN (‘Процент выполнения плана равен’,PR:6:2)

END.

БЕЗУСЛОВНЫЙ ОПЕРАТОР

Синтаксис оператора:

GOTO метка;

Безусловный оператор служит для изменения порядка выполнения операторов и для перехода на оператор с меткой, которая указана в этом операторе.

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

С помощью оператора GOTO нельзя:

1. Передать управление во внутрь составного оператора.

2. Передать управление во внутрь оператора цикла.

3. Передать управление во внутрь оператора выбора.

4. Передать управление в процедуру.

5. Передать управление из одной ветви условного оператора в другой условный оператор.

УСЛОВНЫЙ ОПЕРАТОР

Синтаксис оператора:

1. Полная форма

IF условие THEN оператор 1 ELSE оператор 2;

2. Краткая форма

IF условие THEN оператор 1;

оператор 2;

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

Условие – это логическое выражение, которое может принимать значение истина или ложь. Если условие истинно, то выполняется оператор, следующий за словом THEN, т.е. оператор 1; если условие ложно, то выполняется оператор, следующий за словом ELSE, т. е. оператор 2 - для полной формы оператора, либо оператор, следующий за условным - для сокращенной формы.

Для наглядности условный оператор следует записывать, сдвигая альтернативные части по отношению к условию.

IF условие

THEN оператор 1

ELSE оператор 2;

После слов THEN и ELSE могут стоять и условные операторы. Для определения соответствия слов IF и ELSE следует руководствоваться следующим правилом: конструкция ELSE относиться к ближайшему IF, для которого не установлено соответствие.

Например: IF условие 1

THEN IF условие 2

THEN IF условие 3

THEN оператор 1

ELSE оператор 2

ELSE оператор 3

ELSE оператор 4;

Если после слов THEN и ELSE надо выполнить несколько операторов, то для этого используют операторные скобки BEGIN и END. Оператор в этом случае будет называться составным условным оператором.

IF условие

THEN BEGIN

оператор 1;

оператор 2;

……………;

оператор N

END;

Пример:

Вычислить переменную Z в зависимости от условия:

x2, если x< 3

Z= x2-2x+5, если 3≤ x≤ 4

x-2, если x>4

PROGRAM PRIMER2;

USES CRT;

LABEL

1;

VAR

X,Z:REAL;

OTV:CHAR;

BEGIN

1: CLRSCR;

WRITELN (‘Введите произвольное число X’);

READLN (X);

IF X<3

THEN Z:=SQR (X)

ELSE IF X<=4

THEN Z:=SQR(X)-2*X+5

ELSE Z:=X–2;

WRITELN (‘При значении X =’,X:5:2);

WRITELN (‘Значение Z=’,Z:5:2);

WRITELN (‘Будете вводить новые данные (Y/N)?’);

READLN (OTV);

IF (OTV=’Y’) OR (OTV=’y’)

THEN GOTO 1

END.

ОПЕРАТОР ВАРИАНТА (ВЫБОРА) CASE

Синтаксис оператора:

CASE выражение OF

список меток 1: оператор 1;

список меток 2: оператор 2;

…………………………….…..;

список меток N: оператор N

END;

где CASE – вариант или выбор, OF – из, END – конец;

выражение – это выражение любого скалярного типа, кроме REAL.

список меток – это список разделенных запятыми значений выражения или одно из его значений.

Список меток должен содержать хотя бы одно значение выражения, указанного после ключевого слова CASE, следовательно, метки и выражение должны иметь одинаковый тип. Метка - это необязательно целое число и она не описывается в разделе LABEL и на нее нельзя ссылаться в операторе GOTO.

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

Оператор выполняется следующим образом:

1. Вычисляется значение выражения.

2. Среди меток находится это значение.

3. Выполняется тот оператор, метка которого равна значению выражения.

4. После выполнения оператора управление передается в конец оператора CASE.

Пример:

Определить площади различных геометрических фигур:

 
 


S=

PROGRAM PRIMER3;

USES CRT;

LABEL

1;

CONST

PI=3.14;

VAR

A,B,H,FI,S:REAL;

N:1..5;

BEGIN

CLRSCR;

WRITELN (‘Введите значения переменных A,B,H,FI’);

READLN (A,B,H,FI);

1:WRITELN (‘Введите N от 1 до 5’);

READLN (N);

IF (N<1) OR (N>5)

THEN BEGIN

WRITELN (‘Повторите ввод’);

GOTO 1

END;

CASE N OF

1:S:=A*B;

2:S:=A*H/2;

3:S:=(A+B)*H/2;

4:S:=PI*SQR(R);

5:S:=PI*SQR(R)*FI/360

END;

WRITELN (‘Площадь фигуры равна',S:7:2)

END.

ОПЕРАТОРЫ ЦИКЛА

В языке Паскаль существует 3 вида операторов цикла:

1. Оператор цикла с постусловием;

2. Оператор цикла с предусловием;

3. Оператор цикла с параметром.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: