Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по информатике.doc
Скачиваний:
23
Добавлен:
23.05.2015
Размер:
288.77 Кб
Скачать

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

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

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

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

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

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

  4. NIL - отсутствие указателя

    NOT - не

    OF - из

    OR - или

    PACKED - упакованный

    PROCEDURE - процедура

    PROGRAM - программа

    RECORD - запись

    REPEAT - повторять

    SET - множество

    THEN - то

    ТО - увеличивая до

    TYPE - тип

    UNTIL - до

    VAR - переменная

    WHILE - пока

    WITH - с

    AND - и

    Array - массив

    BEGIN - начало

    CASE - вариант

    CONST - константа

    DIV - деление нацело

    DO - выполнять

    DOWNTO - уменьшая до

    ELSE - иначе

    END - конец

    FILE - файл

    FOR - для

    FUNCTION - функция

    GO ТО - переход на

    IF - если

    IN - в

    LABEL - метка

    MOD - деление c остатком

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

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

арифметических: + (сложение), - (вычитание), * (умножение), / (деление), 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.