Скачиваний:
39
Добавлен:
12.03.2015
Размер:
42.17 Кб
Скачать

6.3. Типы данных

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

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

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

Целочисленные типы

Значения целых типов могут изображаться двумя способами: в десятичном виде (например, -57; 1896) и в шестнадцатеричном виде (в этом случае вначале ставится знак $, а цифры старше 9 обозначаются латинскими буквами от A до F, например, $1А5; $F3C).

Таблица 1

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

Тип

Диапазон значений

Требуемая память (байт)

byte

shortint

integer

word

longint

0 ... 255

-128 ... 127

-32768 ... 32767

0 ... 65535

-2147483648 ... 2147483647

1

1

2

2

4

Над данными целого типа определены следующие операции:

  1. арифметические операции: + (сложение), - (вычитание), * (умножение), / (деление), div (деление нацело), mod (вычисление остатка от целочисленного деления), - которые вырабатывают результат целого типа, кроме операции деления, вырабатывающей результат вещественного типа;

  2. операции отношения: = (равно), < > (не равно), < (меньше), > (больше), < = (меньше или равно), > = (больше или равно), - которые вырабатывают результат логического типа.

Вещественные типы

Вещественные значения могут изображаться в форме с фиксированной точкой, например, 8.32, -546.271 или 0.017, а также в форме с плавающей точкой, т.е. парой чисел вида <мантисса>Е<порядок>, например, 8.53 Е+00 (8,53), 6.45721 Е+02 (6,45721102), 1.5 Е-03 (1,510-3).

Таблица 2

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

Тип

Диапазон значений

Мантисса

Требуемая память (байт)

real

single

double

extended

comp

2,910-39 ... 1,71038

1,510-45 ... 3,41038

5,010-324 ... 1,710308

1,910-4951 ... 1,1104932

-2,01063 +1 ... 2,01063-1

11 – 12

7 – 8

15 – 16

19 – 20

10 – 20

6

4

8

10

8

Над данными вещественных типов определены арифметические операции +, -, *, /, а также операции отношения.

Булевский тип boolean

Данные этого типа представлены следующими значениями: true (истина) и false (ложь). Над ними определены логические операции and (логическое И), or (логическое ИЛИ), xor (исключающее ИЛИ), not (логическое НЕ). Для размещения в памяти переменной булевского типа требуется один байт.

Массивы

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

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

Массивы могут быть описаны в разделе var с использованием словосочетания array of (массив из), например:

var

vectorx: array [1..50] of real;

matrb: array [1..6, 1..6] of byte;

Если в такой форме описания массива задан один индекс, массив называется одномерным, если два индекса – двумерным, если n индексов – n-мерным. Например, в приведенном выше примере массив vectorx – одномерный, состоящий из 50 элементов типа real, массив matrb – двумерный, состоящий из 6 6 элементов типа byte. Одномерные массивы обычно используются для представления векторов, а двумерные – для представления матриц.

Для описания массива можно использовать предварительно определенные константы, например:

const

n1=5; n2=8;

var

masy: array [1..n1, 1..n2] of integer;

Массив может быть описан с помощью представления типа в разделе описания типа данных, например:

type

mas = array [1..5, 1..6] of real;

var

m: mas;