Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Темы 3, 5 + массивы ИиП.docx
Скачиваний:
7
Добавлен:
09.06.2015
Размер:
81.78 Кб
Скачать
  1. Идентификаторы и переменные.

Идентификатор – это последовательность из не более чем 63 букв

латинского алфавита, цифр и знака подчеркивания, начиная

с буквы или знака подчеркивания, служащая для обозначения

разнообразных объектов, с которыми работает программа

(переменных, поименованных констант, меток, массивов,

записей, множеств, процедур, функций).

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

Синонимом «идентификатора» является слово «имя».

Идентификаторы выбирает сам программист, но при этом желательно учитывать содержательный смысл объекта.

Следует помнить, что идентификатор не может совпадать с каким-либо зарезервированным (служебным) словом языка Турбо-Паскаль.

Примеры:

правильные имена – ОТСН_12 REZT MET1

ошибочные - 5ТС STR.4 A(12) #5

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

Каждая переменная обязательно имеет свое имя (идентификатор) и, чтобы использоваться в программе, обязательно объявляется в разделе объявления переменных VAR:

список имен

VAR < переменных >: <тип>;

через запятую

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

Примеры описаний переменных:

VAR A, B, C, REZ: REAL;

NAIM_MES: STRING[8];

FLAG, I, J: INTEGER;

LOG: BOOLEAN;

DISTANSE: (60,100,500,1000,1500,5000,10000);

SMV: CHAR;

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

  1. Выражения.

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

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

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

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

Для задания требуемой последовательности выполнения операций могут использоваться круглые скобки.

Тип операндов и вид операций определяют тип результата выражения.

При записи выражений:

допускается: - делать пробелы между операндами, знаками операций

и скобками;

- переносить выражения на следующую строку (но без

разрыва операндов !);

- применять лишние парные круглые скобки;

- опускать «+» в одноместный операции.

запрещается: - дважды повторять знак операции при переносе

операнда на следующую строку;

- опускать знак умножения «*».

Последовательность вычисления выражений:

1. выражения в скобках, начиная с самых внутренних;

2. значения функций;

3. одноместные операции;

4. двухместные операции согласно их приоритетам. Операции одного

приоритета выполняются слева направо.

В языке Турбо-Паскаль имеют место следующие выражения:

А) арифметические. Это один операнд или их последовательность, связанных знаками арифметических операций.

Операндом арифметических выражений может быть:

- целое или вещественное число без знака;

- переменная (простая, с индексами, элемент записи, указатель) целого или вещественного типов;

- функция, возвращающая арифметический результат;

- произвольное арифметическое выражение в круглых скобках.

Составные части арифметических выражений должны иметь целый или вещественный типы.

Пример:

A[I]+ISH.SUM*(3.14+SQRT(X))/SQR(X-Y)

Операции в арифметических выражениях выполняются слева направо исходя из их приоритета:

Таблица приоритетов арифметических операций

Приори-

тет

Знак

операции

Наименование

операции

Типы

операндов

Возможные типы результатов

1

-

Одноместный минус

I,R

I,R

2

NOT

Логическое НЕ – побитное отрицание

I

I

3

*

/

DIV

MOD AND

Умножение

Деление

Деление нацело

Остаток от деления

Логическое И – побитное логическое умножение

I,R

I,R

I

I

I

I,R

R

I

I

I

4

+

-

OR

XOR

Сложение

Вычитание

Логическое ИЛИ- побитное логическое сложение

Исключительное ИЛИ-побитное отрицание эквивалентности

I,R

I,R

I

I

I,R

I,R

I

I

Операции одинакового приоритета выполняются в порядке их написания в выражении: слева направо.

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

Б) строковые. Задача подобных выражений – формирование строк, как правило, имеющих какой-то смысл. Поэтому в них используются операнды символьного (CHAR) и строкового (STRING) типов, представленные константами, переменными или указателями функций.

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

Примеры:

`Студенты ` + ` ИЭФа`

`2345` + `.` + `075`

`МИИТ` + ` - ` + `наша` + ` alma mater`

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

Примеры:

VAR STR1, STR2: STRING[12];

WHILE STR1 > STR2 DO …

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

По форме – это два операнда, связанных операцией отношения:

= - равно

<> - не равно

< - меньше

<= - меньше или равно

> - больше

>= - больше или равно

IN – принадлежность к множеству.

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

Примеры:

L:=A>B; WRITE(A>B); С:=K IN [1,3,5,7,9,11,13];

WHILE I<=25 DO …

IF MES IN [1..12] THEN …

PROC(MAS,FL<>0);

Примечание: при использовании операции IN следует учитывать, что

первый (левый) операнд в ней должен быть порядкового

типа, а второй – множественного. Если левый операнд

принадлежит множеству, то формируется результат

TRUE, если нет – FALSE.

Г) логические.

По определению, логическое выражение – это один или несколько логических операндов, разделенных знаками логических операций:

NOT – отрицание (НЕ);

AND – логическое умножение (И);

OR – логическое сложение (ИЛИ)

XOR – исключительное ИЛИ.

Операндами логических выражений могут быть:

- константы TRUE и FALSE;

- простая переменная;

- переменная с индексами;

- переменная – элемент записи логического типа;

- указатель функции, возвращающий логический результат;

- отношение.

Логические выражения используются для определения истинности или ложности каких-либо ситуаций в программе, и поэтому фактически они задают правила вычисления одного из двух возможных логических значений: TRUE и FALSE. Область их применения – та же, что и у выражений сравнения (отношения).

Значения результатов логических операций устанавливается в соответствии со следующей таблицей истинности:

Операнды

Результат логического выражения

А

В

NOT A

A AND B

A OR B

A XOR B

Т

-

F

-

-

-

F

-

T

-

-

-

T

T

F

T

T

F

F

F

T

F

F

F

T

F

F

F

T

T

F

T

T

F

T

T

Здесь: Т – TRUE, F – FALSE.

Примечание: если операндами являются целые числа, то результатом

логического выражения будет тоже целое число. Оно

формируется побитно в соответствии с приведенной

выше таблицей истинности, но с заменой TRUE на «1», а

FALSE на «0».

Примеры логических выражений:

NOT FL

(MES IN [1..12]) OR (FL<>0)

FALSE XOR (X + Y*2 = C)

(0<I) AND (I>B)

2 1 3

Но не: 0<I AND I>B , т.к. в соответствии с приоритетом сначала

выполняется побитное умножение, а затем

другие операции по старшинству, слева

направо (см. цифры над выражением)

Д) над множествами (см. в разделе «Множества и выражения над ними»).

Е) смешанные.

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

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

Тип результата всего смешанного выражения определяется типом результата последней операции (!!!).