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

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

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

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

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

3. Специальные символы: = - * / | \ > < () [].,; {}.

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*106 или 2650000
Запись на языке ПАСКАЛЬ Обычная математическая запись|
-0.25 E -4 -0.25*10-4 или -0.000025
-1.8 E5 -1.8*105 или -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 (ложно). <

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

’В’ ‘D’ ’6’ ‘ ‘ ‘”’

Эти константы представляют соответственно символы 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 x2 можно записать обращение SIN (Х*Х) или SIN (SQR (X)), а для функции sin2x - 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.

Таблица 1.1

Обращение Выполняемые функции Тип
аргумента функции
ABS (X) |x| REAL или INTEGER REAL или INTEGER
SQR (X) X2
SIN (X) Sin x REAL или INTEGER REAL
COS (X) cos x
EXP (X) ex
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.


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



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