Бю что значит паскаль
Перейти к содержимому

Бю что значит паскаль

TURBO PASCAL

При записи программы на языке программирования можно пользоваться лишь символами, предусмотренными алфавитом языка. Алфавит языка Паскаль составляют буквы, цифры и специальные символы (знаки операций и ограничители). Специальный символ может быть одной литерой или парой литерой. В последующем изложении будем использовать:

заглавные буквы латинского и русского алфавитов:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я

арабские цифры:

0 1 2 3 4 5 6 7 8 9

знаки операций:

ограничители:

Из символов алфавита строят более сложные конструкции — слова, словосочетания, предложения. Слово — это некоторая минимальная единица языка самостоятельного значения, представляющая собой образованную в соответствии с некоторыми правилами последовательность символов. В языке Паскаль под словом понимают число, строку, имя. Словосочетание — это группа слов, имеющая некоторый смысл. В языке программирования эта конструкция, состоящая из слов и символов и задающая правило вычисления некоторого значения, называется выражением. Минимальная конструкция языка, представляющая собой законченную мысль, есть предложение. Предложение либо задает полное описание некоторого действия, которое необходимо выполнить, и называется оператором, либо описывает структуру и организацию данных — объектов языка, над которыми эти действия производят, и называется описанием. Совокупность описаний и операторов, объединённая единым алгоритмом, образует программу. Для того чтобы научиться писать программы, необходимо изучить синтаксис языка (правила записи его конструкции) и его семантику (смысл и правила использования этих конструкций).

Рассматривая понятие слова в языке Паскаль, следует отметить, прежде всего, существование некоторого набора служебных (ключевых) слов, назначение которых в языке строго определено (зарезервировано) и которые не могут быть использованы с другой целью. Служебные слова используются, например, для обозначения операторов (CASE — оператор выбора, IF, THEN, ELSE — оператор условного перехода), описаний (CONST — констант, VAR — переменных), некоторых операций (DIV — целочисленного деления). В таблице приведён список служебных слов языка Паскаль, пояснения значений которых будут вводиться по мере изучения средств языка.

Числа записываются в программе в десятичной системе исчисления и могут быть целыми и действительными, положительными и отрицательными. Положительный знак числа (+) может быть опущен как для целых, так и для действительных чисел.

Действительные числа изображаются в естественной форме и полулогарифмическая (показательной). В естественной форме число должно содержать десятичную точку, применяемую вместо десятичной запятой, причём число не может начинаться или заканчиваться точкой.

Пример 1

( неправильно записанные числа ):

15. — оканчивается точкой;

.65 — начинается сточки;

155.27.54 — содержит две точки.

Полулогарифмическая форма записи используется для представления очень больших или очень маленьких чисел, которые нелегко изобразить обычной десятичной записью. Например, масса покоя электрона приблизительно равна 0,000000000000000000000000000000910956 г. Такие числа чаще записывают в более удобном виде с десятичным множителем: 9,10956*10 -28 . При записи таких чисел в языке Паскаль часть числа, которая читается как "умножить на десять в степени", обозначается буквой Е и число в программе выглядит следующим образом: 9.10956Е-28. Цифры, предшествующие букве Е, образуют мантиссу числа, цифры, следующие за буквой Е — порядок. Мантисса и порядок могут иметь знак "+" или "-". Следует помнить, что при написании числа мантисса не должна отсутствовать или начинаться или оканчиваться точкой.

Пример 2

( правильно записанных чисел записанных в полулогарифмической форме ):

-0.131E5

50E7

-5E-02

123.7E-5

Пример 3

( неправильно записанных чисел ):

Е-05 — отсутствует мантисса;

-5.Е02 — мантисса числа оканчивается точкой;

-Е12 — отсутствует мантисса;

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

Строка — это последовательность символов языка, заключённая в апострофы (одиночные кавычки). Если в строку необходимо включить сам апостроф, то его записывают дважды.

Пример 4 (строки)

‘A’

‘таблица значений’

‘контрольная работа по курсу электротехника’

‘XYZ’

‘575’

‘0.5+17E-5’.

Пример 5

( неверно записанные строки ):

‘CONST — нет конечного апострофа;

PROGRAM — апострофы отсутствуют совсем;

‘15.8’E5 — апостроф стоит не в конце строки;

‘+*.;" — не хватает ещё одного апострофа в конце строки.

Используются строки для работы с текстами, например для вывода текстов и комментариев на печать. Максимальная длина строки определяется конкретной реализацией языка.

Имена (идентификаторы) служат для обозначения различных объектов и конструкций программы и отличаются от служебных слов тем, что выбираются (назначаются) самим программистом по следующему правилу: имя должно состоять из букв и цифр, но первым символом может быть только буква. Длина имени во многих реализациях языка не ограничивается, однако рекомендуется, чтобы она не превышала 6-8 символов. Следующие имена составлены без ошибок:

X Y22M РАЗМЕР GAMMA ALFA R15

А такие имена, наоборот, ошибочны:

4ABC — начинается с цифры;

Y.22 — содержит недопустимый символ — точку;

A+B — содержит недопустимый символ — знак "+";

РАЗМЕР ПАЛЬТО — пробелы в имени недопустимы.

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

  1. в пределах области определения имя должно быть уникальным (каждому имени должен соответствовать лишь один обозначаемый объект и, наоборот), в противном случае соответствие между именем и обозначением объекта будет неоднозначным;
  2. в качестве имён не разрешается использовать служебные слова;

Служебные слова языка Паскаль
AND FILE OF TYPE
ARRAY FOR OR UNTIL
BEGIN FUNCTION PACKED VAR
CASE GOTO PROCEDURE WHILE
CONST IF PROGRAM WITH
DIV IN RECORD
DO LABEL REPEAT
DOWNTO MOD SET
ELSE NIL THEN
END NOT TO
Стандартные идентификаторы языка Паскаль
Константы Типы Процедуры Функции Файлы
FALSE BOOLEAN GET ABS INPUT
TRUE CHAR NEW ARCTAN OUTPUT
MAXINT INTEGER PACK CHR
REAL PAGE COS
TEXT PUT EOF
READ EOLN
READLN EXP
RESET LN
REWRITE ODD
UNPACK ORD
WRITE PRED
WRITELN POUND
SIN
SQR
SQRT
SUCC

Рассмотрим несколько подробнее, для обозначения каких объектов и конструкций служат имена (идентификаторы). Прежде всего, следует отметить, что имена используются для обозначения данных — величин, над которыми в программе используется для обозначения данных — величин, над которыми в программе производятся некоторые действия. Постоянные величины, значения которых не меняются в процессе выполнения программы, называются константами. Константы в программе могут быть представлены либо непосредственно своим значением (числом, строкой), либо именем. Для некоторых констант в языке определены стандартные имена. Величины, которых могут изменяться в процессе выполнения программы, называются переменными. Переменные в программе могут быть представлены только именем. В машине каждой величине отводится определённая область памяти, где хранится её значение.

Данные могут быть различных типов. Например, константа может быть числом (целым или вещественным), строкой. Переменная, подобно константе, также может быть арифметической (значение переменной — число) или строковой (значение переменной — строка). Арифметические переменные могут быть целыми или вещественными. Тип константы определяется формой её записи. Задание типа переменной осуществляется с помощью указания некоторого имени (стандартного или определённого пользователем) в специальной конструкции языка, называемой описанием. Переменным вещественного вида соответствует имя — REAL, целого — INTEGER.

И наконец, имена используются для обозначения всей программы и отдельных её частей (процедур и функций), дающих описание некоторого сложного действия или группы действий, производимых над данными и имеющих некоторое самостоятельное значение. Алгоритмы отдельных широко используемых процедур и функций уже составлены разработчиками языка, и их программные описания хранятся в машине в специальной области памяти. Для этих процедур и функций установлены стандартные имена, а сами они называются стандартными процедурами и стандартными функциями. Программист, как только ему потребуется указанный алгоритм, вызывает необходимую процедуру или функцию, указывая программе её имя и данные, которые её необходимы.

Пример 6

Для иллюстрации введённых понятий рассмотрим программу, реализующую тривиальный алгоритм сложения двух произвольных действительных чисел и печати результата:

Program SUMMA;
Var A, B, C : Real;
Begin
Read(A,B);
C := A + B;
Writeln(РЕЗУЛЬТАТ СУММИРОВАНИЯ);
Writeln(‘C=’,C)
End.

Первая строка является заголовком программы, где PROGRAM — служебное слово, SUMMA — имя программы. Далее идёт раздел описания данных, в котором переменные A, B, C, участвующие в вычислениях, объявлены как переменные действительного типа. Здесь VAR — служебное слово, обозначающее раздел описания переменных, REAL — стандартное имя, обозначающее действительный тип. Описание всех переменных программы обязательно! BEGIN, END — служебные слова, ограничивающие раздел операторов. После служебного слова END, определяющего одновременно и конец программы, ставится точка. Оператор ввода READ осуществляет вызов стандартной процедуры ввода, в результате выполнения которой переменные А и В получат (приобретут) задаваемые числовые значения. Эти значения являются, как правило, исходными данными решаемой задачи.

Следующий оператор — оператор присваивания — обозначается символом :=, справа от которого стоит вычисляемое выражение, а слева — имя переменной, которой присваивается вычисленное значение. Оператор WRITELN — оператор вывода — также является вызовом стандартной процедуры. Если в этом операторе указана константа, то она непосредственно выводится на печать, если указано имя переменной, то на печать выводится её значение. В примере осуществляется печать текстов, заключённых в апострофы, а затем значения переменной С. Точка с запятой в языке Паскаль является разделителем между операторами. Пробелы являются разделителями между именами, числами и служебными словами, причём внутри имён, чисел и служебных слов пробелы встречаться не должны. Операторы в программе, если нет специальных указаний, выполняются слева направо и сверху вниз (естественный ход выполнения программы).

Символы, простейшие конструкции и операторы языка

Написание конструкций языка осуществляется в соответствии с синтаксисом и использованием принятого алфавита, который включает в себя буквы, цифры и специальные символы.

Символы языка. ПАСКАЛЬ использует следующие символы:

1. Буквы: 26 прописных и строчных латинских букв. ТП 7.0 не различает прописные и строчные буквы. (нечувствителен к регистру букв)

2. Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

4. Ключевые (служебные, зарезервированные) слова:

5. Знаки операций:

арифметических: + (сложение), (вычитание), * (умножение), / (деление), DIV (деление нацело, с отбрасыванием остатка), MOD (нахождение остатка от деления нацело);

отношения: > (больше), < (меньше), > = (больше или равно); < =(меньше или равно), =(равно), < > (не равно);

логических: NOT (отрицание), OR (логическое сложение), AND (логическое умножение);

над множествами: * (пересечение множеств, ||), + (объединение множеств, U), (разность множеств), IN (принадлежность множеству).

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

Все данные подразделяются на скалярные, имеющие простейшую структуру, и структурированные. В языке ПАСКАЛЬ используются четыре типа скалярных данных: целочисленные, действительные, логические и литерные.

Целочисленные типы данных

Тип Допустимые значения Формат
ShortInt (короткое целое) -126 … 127 1 байт со знаком
INTEGER (целое) -32766 … 32767 2 байта со знаком
LongInt (длинное целое) -2147483648 … 2147483647 4 байта со знаком
BYTE (длинной в байт) 0 … 256 1 байт без знака
WORD (длинной в слово) 0 … 65535 2 байта без знака

Вещественный тип данных

Тип Допустимые значения Точность Формат
REAL (вещественный) 2.9*10^-39 … 1.7*10^+38 11-12 знаков 6 байт
SINGLE (с одинарной точностью) 1.5*10^-45 … 3.48*10^=38 7-8 знаков 4 байта
DOUBLE (с двойной точностью) 5.0*10:-324 . 1.7*10:+308 15-16 знаков 8 байт
EXTENDED (с повышенной точностью) 1.9*10:-4951 . 1.1*10^+4932 19-20 знаков 10 байт
COMP (сложный) -9.2*10^18 . 9.2*10^18 19-20 знаков 8 байт

Числа в языке ПАСКАЛЬ имеют запись, близкую к обычной математической, и могут быть целого или действительного (вещественного) типа. Положительный |знак числа может опускаться.

Числа целого типа записываются последовательностью цифр (например, +4, 4, -100, 1987, -1001) и представляются в памяти ЭВМ точным значением. Диапазон значений их зависит от количества двоичных разрядов ЭВМ, использующихся для записи чисел.

Числа действительного типа имеют две формы записи: с фиксированной и плавающей (для значений с десятичным порядком) точкой. Числа с фиксированной точкой записываются в виде целой и дробной частей, разделенных десятичной точкой. Например, 2.65, -11.862, 0.5, -6.0. Запись числа не может начинаться или заканчиваться десятичной точкой.

Числа с плавающей точкой используются для записи чисел в широком диапазоне значений (от очень маленьких до очень больших).

Десятичный порядок числа записывается буквой E.

Запись на языке ПАСКАЛЬ Обычная математическая запись|
2.65 E6 2.65*10 6 или 2650000
Запись на языке ПАСКАЛЬ Обычная математическая запись|
-0.25 E -4 -0.25*10 -4 или -0.000025
-1.8 E5 -1.8*10 5 или -180000

Числа действительного типа являются приближением к точным значениям. Диапазон представления их зависит от класса ЭВМ.

Данные могут быть логического или символьного типа.

Данные логического (булевского) типа (BOOLEAN) имеют два значения: TRUE(истинно) и FALSE (ложно).

Данные символьного (литерного)типа (CHAR) при­нимают значение только одной литеры, имеющейся в на­боре литер данной. ЭВМ. Набор литер, использующийся в ЭВМ, должен отвечать следующим минимальным требованиям:

1) содержать буквы от А до Z, упорядоченные в ал­фавитном порядке;

2) содержать цифры от 0 до 9, упорядоченные в по­рядке возрастания;

3) включать знак пробела; I

4) каждый символ должен иметь порядковый номер.

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

В большинстве ЭВМ максимальная длина имени в классическом ПАСКАЛЕ ограничена длиной в восемь символов. Примеры записи имен:

X, XI, SUMMA, SUMMA2, PTF, PTF3, INDMAX

Помимо имен, назначаемых пользователем, в языке ПАСКАЛЬ имеются стандартные имена, использующие­ся для записи: стандартных констант — TRUE, FALSE, MAXI NT; стандартных типов — INTEGER, REAL, BOOLEAN, CHAR, TEXT; стандартных файлов — INPUT, OUTPUT; стандартных функций — ABS, SQR, SIN, COS, EXP, LN, SQRT, ARCTAN, TRUNC, ROUND, PRED, SUCC, ORET, CHR, ODD, EOF, EOLN; стандарт­ных процедур — GET, PUT, REWRITE, NEW, READ, UNPUCK, PACK, READLN, RESET, WRITE, WRITELN, PAGE.

Назначение и использование стандартных имен показано далее.

С помощью, числовых, логических, символьных зна­чений и имен ‘записываются простейшие конструкции языка: константы, переменные, стандартные функции, выражения.

Константа— представляет собой значение, которое j не изменяется в программе. Константы могут быть следующих типов: целые, действительные, логические (BOOLEAN), символьные (CHAR) или задаваться в виде строк (текстовые константы).

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

Константы логического типа имеют одно из двух значений — TRUE (истинно) либо FALSE (ложно). <

Константы символьного типа записываются литерами, заключенными в кавычки (апострофы). Символ апостроф записывается двойными кавычками. Примеры записи

Эти константы представляют соответственно символы B, D, 6, ˽ , “.

Текстовые константы (строки) записываются после­довательностью символов (текстом), заключенной в ка­вычки. Имеющиеся в тексте кавычки дублируются. В тех случаях, когда текст не обрабатывается ЭВМ, а служит для выдачи заголовка к результатам вычислений, ис­пользуются буквы русского алфавита. Примеры записи:

’Х= ’ ’ СУММА S = ’ ’ПАРАМЕТР ”Т”’

"ТАБЛИЦА КОЭФФИЦИЕНТОВ Р’ ’1.25 + Z’

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

По структуре различают простые переменные и пере­менные с индексом. Простые переменные записываются своими именами. Они могут принадлежать к различным типам переменных: целому, действительному, логическо­му, символьному. Примеры записи: X, XI, Х1А2, DELTA, ISO, RESALT, SUMMA.

Переменная с индексом является элементом массива Массив состоит из упорядоченного набора значении од­ного типа, имеющих общее имя. Местоположение элемента в массиве задается индексом, который записывает­ся в квадратных скобках. Примеры записи: элементы A[1], А [25], А [i] являются соответственно 1, 25 и i-м элементами одномерного массива; А; В<2,5], В [i, j] — соответственно элемент массива В, находящийся на пе­ресечении 2-й строки и 5-го столбца, и элемент, нахо­дящийся на пересечении i-й строки и j-го столбца.

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

При обращении к стандартной функции ABS с аргу­ментами типа INTEGER и REAL получаются следующие результаты: ABS (8) и ABS (-8) дают результат 8; ABS (8.6) и ABS (-8.6) — 8.6. При вычислении тригоно­метрических функций sin x 2 можно записать обращение SIN (Х*Х) или SIN (SQR (X)), а для функции sin 2 x — SQR (SIN (X)).

При этом следует обращать внимание на соответствие открытых и закрытых скобок.

Обращение к стандартным функциям TRUNC и ROUND с аргументом = 25,7 позволяет получить ре­зультаты: TRUNC (25,7) = 25; ROUND (25,7) = 26. Стандартные функции для нахождения предыдущего значения (PRED) и последующего (SUCC) определены для данных целого, логического и символьного типов. Для целочисленного аргумента, равного 8, функция PRED (8) = 7, a SUCC (8) = 9. Эти функции в приме­нении к аргументам символьного типа определяют пре­дыдущий и последующий символы. Для буквы латинско­го алфавита М функции имеют значения PRED (М) =L, SUCC (М) = N. При отсутствии предыдущего или последующего символа значения функций PRED и SUCC не определены.

Для -всех классов ЭВМ существует свой набор сим­волов, в котором за каждым символом закреплен поряд­ковый номер. Функция ORD (X) определяет порядковый номер символа X в наборе символов. Порядковые номера следуют по возрастанию без пропусков. В одной из кон­кретных реализаций языка использование функции поз­воляет получить следующие номера цифр: ORD (0) = = 240, ORD (5) = 245, ORD (9) = 249.

Обращение Выполняемые функции Тип
аргумента функции
ABS (X) |x| REAL или INTEGER REAL или INTEGER
SQR (X) X 2
SIN (X) Sin x REAL или INTEGER REAL
COS (X) cos x
EXP (X) e x
IN (X) In x
SQRT (X)
ARCTAN (X) arctg x
TRUNC (X) Выделение целой части числа REAL INTEGER
ROUND (X) Округление числа
PRED (X) Нахождение: предыдущего эле­мента INTEGER или CHAR, или BOOLEAN INTEGER или CHAR, или BOOLEA!
SUCC (X) последующего эле­мента
ORD (X) Определение поряд­кового номера символа X и набо­ре символов CHAR или BOOLEAN INTEGER
CHR (I) Определение симво­ла из набора сим­волов по порядко­вому номеру i INTEGER CHAR
ORD (X) Определение нечет­ности числа INTEGER BOOLEAN

Порядковые номера букв также располагаются по возрастанию, но могут не образовывать непрерывную последовательность. Так, ORD (‘I’) = 201, ORD (‘J’)= 209.

Функция CHR определяет символ из набора символов по порядковому номеру. Следовательно, функции ORD и CHR обратны друг другу. При записи функции CHR (245) определяется цифра 5, а при CHR(201) — буква I.

Функция ODD (X) выдаёт результат типа BOOLEAN в зависимости от чётности аргумента X. Если значение Х нечётно, то результат имеет значение TRUE, в противном случае – значение FALSE.

В ы р а ж е н и я определяют действия и последовательность вычисления значения. Они могут состоять из констант, переменных, стандартных функций, разделённых скобками и знаками операций. Порядок выполнения операций определяется скобками, а при их отсутствии – согласно старшинству (приоритету) операций.

Все операции над операндами (данными) можно разделить на четыре группы:

1) отрицания: NOT;

2) типа умножения (мультипликативные): ∗, /, DIV, MOD, AND;

3) типа сложения (аддитивные): +, -, OR;

4) типы отношения: <=, <, =, <>, >, >=.

Операции одного приоритета выполняются последовательно слева направо. Примеры записи выражений:

Запись на языке ПАСКАЛЬ Математическая запись
0.5 + А a + 0,5
Р — Т/A — B p — T / a — b
(1.25 ∗ SIN (X) + P) /SQRT (A + B) / X (1,25 sin x + p) / /x
(C > 0.5) AND (C < 1.5) (c > 0,5) ^ (c < 1,5)

С учётом старшинства операций и скобок при одних и тех же значениях операндов результаты выражения получаются различными

Выражение 7 — 2 * 3 имеет значение 1, а выражение (7—2)*3 — значение 15. Выражение 16/4 * 2 имеет значение 8, а не 2, так как операции деления и умножения — одного приоритета и выполняются по порядку следования слева направо.

В выражениях нельзя записывать подряд два знака операций. Математическое выражение а/—Ь записывается с использованием скобок для разделения знаков операции в виде А / (-В).

Типы результатов выражений в зависимости от типов операндов и выполняемых операций приведены в табл. 1.2.

Т а б л и ц а 1.2

Операция Знак операции Тип
операндов результата
Cложение + REAL или INTEGER INTEGER, если оба операнда INTEGER и REAL – в противном случае
Умножение *
Вычитание
Деление / REAL или INTEGER REAL
Деление с отбрасыванием остатка DIV INTEGER INTEGER
Вычисление остатка при делении чисел MOD
Отрицание NOT BOOLEAN BOOLEAN
Дизъюнкция OR
Конъюнкция AND
Сравнение: на равенство на неравенство = < > Любой тип переменных и констант BOOLEAN
Сравнение: больше меньше больше или равно меньше или равно > < > = < = Любой скалярный тип BOOLEAN

Операции отношения применяются и к стандартной функции ORD. Так как все символы упорядочены, то для символов X1 и X2 справедливо выражение отношения ORD (X1) < ORD (X2).Отношение означает, что по­рядковый номер символа Х1 меньше, чем Х2. Поэтому результат выполнения операции отношения имеет тип BOOLEAN. Отношение ORD (‘3’) > ORD (‘6’)имеет результат FALSE, так как цифра 3 расположена раньше цифры 6, а следовательно, порядковые номера в отношении записываются как 243>246.

Операторы языка. С помощью операторов описываются действия над данными, выполняемые для реализации алгоритма решения задачи. По функциональному назначению операторы языка можно подразделить на группы: присваивания, ввода — вывода, управления, определения функций и процедур (подпрограмм).

Операторы присваивания вызывают выполнение выражений и присваивание значения выражения имени ре­зультата.

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

Операторы управления организуют управление последовательностью выполнения операторов программы.

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

В языке ПАСКАЛЬ по своему составу определены операторы двух типов: простые и структурные. Простым считается оператор, который не содержит других операторов, а структурным — оператор, содержащий в качестве компонентов один или несколько операторов. К простым операторам относятся операторы присваивая, перехода процедуры. К структурным операторам относятся операторы условные, выбора, цикла, составные. Составной оператор представляет собой последовательность операторов, заключенную в ключевые слова BEGIN и END.

Логические выражения и логические операции. Булевый тип данных

Для того, чтобы программа была не линейной (т.е. в зависимости от ситуации выполнялись разные инструкции) в языках программирования используются логические выражения, результат которых может быть либо правдой (true), либо ложью (false). Результат логических выражений обычно используют для определения пути выполнения программы.

Простые логические выражения являются результатом операций отношения между двумя операндами (значениями). В примерах ниже операндами являются значения переменных x и y. Операндами могут быть числа, символы и другие типы данных. Все что можно сравнивать между собой. Однако не рекомендуют сравнивать вещественные числа из-за особенностей их хранения в памяти компьютера.

В Паскале предусмотрены следующие операторы отношений:

  • меньше: x < y
  • больше: x > y
  • равно: x = y
  • не равно: x <> y
  • меньше или равно: x <= y
  • больше или равно: x >= y

Булевы типы

Результатом логического выражения всегда является булево (логическое) значение. Булев тип данных (boolean) может принимать только два значения: true (истина) или false (ложь). Эти величины упорядочены следующим образом: false < true .

Операции and, or, not (применяемые к булевским операндам) дают булевские значения.

Это значит, что данные булевого типа являются не только результатом операций отношения, но и могут выступать в роли операндов операции отношения. Также к ним можно применять функции ord, succ, pred, процедуры inc и dec.

Значение типа boolean занимает в памяти 1 байт.

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

Булевый тип данных в Паскаль

Кроме типа boolean в Pascal введены еще три булевых типа — bytebool (занимает 1 байт), wordbool (занимает 2 байта) и longbool (занимает 4 байта).
Для всех булевых типов значению false соответствует 0, а значению true — любое ненулевое значение. Логические переменные, принадлежащие разным булевым типам, ведут себя по-разному при выполнении над ними операций. Ниже приводится пример, реализованный на языке FreePascal (в комментариях отображается результат).

Логические операции

С помощью логических операторов можно формировать сложные логические выражения. Логические операторы часто применяются по отношению к простым логическим выражениям.

В языке программирования Pascal предусмотрены следующие логические операции:

    Конъюнкция (логическое умножение, пересечение) — and. Выражение a and b дает значение true только в том случае, если a и b имеют значение true. Во всех остальных случаях значения выражения a and b дает false.

Последовательность выполнения логических операторов: not, and, or.

В языке Паскаль сначала выполняются логические операторы (and, or, xor, not), а уже потом операторы отношений (>, >=, <, <=, <>, =), поэтому не нужно забывать расставлять скобки в сложных логических выражениях.

Логические операции в Pascal

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *