Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
12-13-14-ТП.doc
Скачиваний:
9
Добавлен:
21.11.2019
Размер:
983.55 Кб
Скачать

Скалярные типы данных

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

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

Целые типы. Целых типов данных в Паскале шесть: integer, shortint, longint, comp, byte, word. Первоначально для целых чисел в Паскале существовал лишь тип integer, остальные были включены в более поздние версии.

Вещественные типы. Вещественные типов в языке Паскаль четыре: real, single, double и extended.

Символьный тип в Паскале только один — char. К нему относятся все ASCII-символы. Под каждую переменную или константу этого типа отводится 1 байт памяти.

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

Раздел описаний

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

  • меток;

  • констант;

  • типов;

  • переменных;

  • процедур и функций.

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

Подраздел констант начинается с зарезервированного слова const.

<подраздел констант> ::= const <описание константы>; {<описание константы>;}

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

<описание константы>::=<имя константы> = <значение> | <имя константы> : <тип> = <значение>

Например, возможны следующие описания констант:

const

a = 12;

g = 9.8;

b: integer = 128;

x: real = 134.6;

cr = #13;

word = 'Hello!';

Константы, для которых указан тип, называются типизированными. Такими константами являются, например, b и x.

Подраздел переменных начинается с зарезервированного слова var.

<подраздел переменных>::=var <описание переменных>;{<описание переменных>;}

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

<описание переменных> ::= <имя переменной>{,<имя переменной>} : <тип>

Например, описания:

var

radius, length, distance: Real;

i,j : integer;

symb : char;

f : boolean;

задают переменные radius, length и distance типа real; i и j типа integer; symb типа char; f логического типа.

Различные подразделы могут располагаться в произвольном порядке, одни и те же разделы могут повторяться. Однако при описании действует одно неукоснительное правило: в любом месте программы могут использоваться только те элементы (типы, константы, метки или переменные), которые определены ранее в ее тексте.

Выражения и оператор присваивания

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

<оператор присваивания>::=<имя переменной> := <выражение>

В левой части оператора присваивания стоит идентификатор переменной, а в правой — выражение, результат вычисления которого должен стать значением этой переменной. Между ними указывается составной символ операции присваивания :=. Например, в результате выполнения оператора x := 1 + 2 переменная х будет иметь значение, равное 3.

Отметим, что в левой части оператора может находиться только переменная, объявленная в подразделе var, или типизированная константа.

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

EMBED PBrush

Рис. 1. Иллюстрации работы оператора присваивания

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

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

Допустим, требуется однотипные переменные а и b обменять значениями. Для этого будем использовать вспомогательную переменную с.

Оператор

Действие

1

c := a

Запоминаем значение а в переменной с

2

a := b

Присваиваем переменной а значение b

3

b := c

Присваиваем переменной b значение переменной с, т.е. "старое" значение а

Схема обмена значениями представлена в таблице.

Состояние переменных

а

b

c

До выполнения операторов

10

14

?

После выполнения 1-го оператора

10

14

10

После выполнения 2-го оператора

14

14

10

После выполнения 3-го оператора

14

10

10

Выражения, стоящие в правой части оператора присваивания, могут содержать операнды, т.е. функции, переменные или константы, и знаки операций, например *, + и другие. Операции в Паскале можно разделить на арифметические, логические, операции отношения и побитовые операции.

Арифметические операции могут быть унарными (операции над одним операндом) и бинарными (операции над двумя операндами).

Существует всего две арифметические унарные операции: + и –. Операция + не влияет на значение операнда, а операция меняет знак операнда на противоположный. В языке Паскаль используется шесть арифметических бинарных операций: + (сложение), – (вычитание), * (умножение) и / (деление), а также операции целочисленного деления div и вычисления остатка от целочисленного деления mod. Результатом вычисления выражения a div b будет целая часть числа, полученного делением а на b, а результатом вычисления выражения a mod b будет остаток от деления а на b.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]