Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
S-TEZISY.DOC
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.42 Mб
Скачать

Тезисы лекций

курса

«Структуры и алгоритмы компьютерной обработки данных»

Лекция 1. Концепция типа данных. Простейшие типы данных.

1. Концепция типа данных

Любая константа, переменная, выражение, функция относятся к некоторому типу данных. Понятие “тип данных” основано на понятии множества.

Множество, операции над множествами

Множество - это совокупность некоторых объектов. После этого возникает вопрос, что такое совокупность. Совокупность - это набор некоторых объектов. Далее, что такое набор и так далее… То есть множество это некоторая категория, и нельзя дать строгое определение для множества, а надо понимать, что это такое.

Рис. 1. Операции над множествами.

Число элементов множества называется мощностью множества.

Тип данных

Тип данных определяет некоторое множество значений. Переменная (константа,…) принимает значения из этого множества. Обычно над элементами этого множества определены операции (например, “+”, “-“), в результате которых также получается элемент из этого множества.

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

Существуют простейшие, стандартные типы данных (с.21). Новые типы данных обычно определяются через старые типы. “Значения такого нового типа обычно представляет собой совокупности значений компонент, относящихся к определенным ранее составляющим типам, такие значения называются составными”. Если составляющий тип только один, т.е. все компоненты относятся к одному типу, то он называется базовым. Число различных значений, входящих в тип Т называется мощностью Т.

Если для значений некоторого типа существует отношение порядка, то такой тип называется упорядоченным или скалярным.

Важнейшие основные операции – сравнение(проверка отношения равенства) и присваивание(действие по установке равенства).

Простейшие типы данных

Любой новый простейший тип определяется простым перечислением, входящим в него значений. Такой тип называется перечисляемым.

Type shape =(rectangle, square, ellipse, circle);

color =(red, yellow, green);

Простейшие стандартные типы данных:

boolean, integer, real, char, cardinal

bo: boolean;

// Простейшие стандартные типы данных

i : integer; // –2147483648..2147483647

w : word; // 0..65535

c : cardinal; // 0..4294967295 = Longword

//Type Range Significant digits Size in bytes

//Real 5.0 x 10^–324 .. 1.7 x 10^308 15–16 8

r : real; // = Double

ch: char;

ac: AnsiChar; // 1 байт (8 бит на символ) (8-bit (ANSI) characters)

wc: WideChar; // слово (16 бит на символ), (Unicode characters –2 байта)

DBCS—широко распространенная в азиатских языках кодировка. Unicode – набор символов, представленных по 2 байта.

Ограничительные типы данных (диапазоны):

Часто переменной присваивается значение некоторого типа, лежащее только внутри определенного интервала значений.

Const CN = 23; min=2; max=7;

Type T = min..max;

Year = 1990..2003;

letter = 'A'..'Z';

digit = '0'..'9';

index = 1..2*CN;

Массив

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

Type Ti = Year;

T0 = letter;

Type T = array [Ti] of T0;

TR7 = array [1..79] of real;

alpfa = array [0..15] of char;

Var vr: tr7; am: alpfa; bl: T;

Мощность типа массив = произведению мощностей его компонент.

card(T) = card(T0) ^ card(Ti)

Переменная типа массив, компоненты которой являются массивами, называется матрицей.

Var

ma1 : array[1..15] of array[1..7] of real;

ma2 : array[1..15, 1..7] of real;

begin

ma1[1,1]:= 2.5;

ma2[1][2]:= 3.14;

end;

Строки. Различные типы строк.

Строка – массив символов

Тип

Максимальная длина

Требуемая память

Применение

ShortString (=String[const])

255

От 2 до 256 байтов

AnsiString (=String)

~2^31

4 bytes to 2GB

8-bit (ANSI) characters

WideString

~2^30

4 bytes to 2GB

Некодируемые символы

WideChar

Pchar

4 байта для указателя + строка

Указатель на строку

ShortString 255 characters 2 to 256 bytes backward compatibility

AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters

WideString ~2^30 characters 4 bytes to 2GB Unicode characters;

multiuser servers and multi-language applications

Запись

Кампоненты записи называются полями.

К полям записи обращаются так:

имя-переменной-типа-запись.имя-поля

Если vr: T - переменная типа записи, то

vr.s1

card(T) = card(T1)*card(T2) * … * card(Tn)

Type T = record

s1: T1;

s2: T2;

sn: Tn;

end;

Var r: record

i: integer;

c: char;

s: string[4];

//sl: string;

w: word;

end;

Множества

Упорядоченные множества (type t= set of t0).

Указатели

Можно объявить указатель на любой тип, используя синтаксис:

type pointerTypeName = ^type

Pointer – наиболее общий тип указателей, который может указывать на данные любого типа.

Для многих целей используются стандартные типы указателей. В модулях (units) System и SysUtils объявлено несколько стандартных типов указателей:

Тип указателя

Указывает на тип

PansiString, PString

AnsiString

PshortString

ShortString

Pdouble, PExtended, Psingle

Double, Extended, Single

Pinteger

Integer

PwideString

WideString (=String)

Pointer

Данные любого типа

PChar

Строка символолов, заканчивающаяся 0

Пример программы, выдающей дамп переменных нескольких типов в директории block1.

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