Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Pascal_лекция2

.doc
Скачиваний:
14
Добавлен:
30.03.2015
Размер:
996.35 Кб
Скачать

Типы данных.

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

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

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

1. Классификация типов данных

В Т. Р. можно выделить следующие группы типов:

  • простые типы;

  • структурированные типы;

  • указатели;

  • процедурные типы;

  • объекты.

Среди типов, используемых в языке, есть стандартные (предопределенные) и определяемые программистом.

К стандартным типам, не требующим предварительного определения, относятся целые типы, вещественные типы, логические типы, символьный тип -Char, тип-строка - string, текстовый файл -Text, тип-указатель -Pointer. Все другие используемые типы данных должны быть определены либо в разделе объявления типов, либо в разделе объявления переменных или типизированных констант.

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

Простой тип определяет упорядоченное множество значений параметра.

В Т. Р. имеются следующие группы простых типов:

  • целые типы;

  • вещественные типы;

  • логический тип;

  • символьный тип;

  • перечисляемый тип;

  • тип-диапазон;

Целые типы

В Т Р имеется пять стандартных типов целых чисел:

Характеристики типов

тип

диапазон

формат

Размер в байтах

shortint

короткое целое

-128...127

знаковый

1

integer

целое

-32768…32767

знаковый

2

longint

длинное целое

-2147483648…2147483647

знаковый

4

byte

короткое целое

0…255

беззнаковый

1

word

целое

0…65535

беззнаковый

2

Пример:

Var

a, b, c : integer;

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

Например:

a:=b+c;

b:=c-2;

c:=a*b;

К целочисленным значениям применимы четыре арифметические действия (+, - , * , /). Причём, если операции +, - ,* с двумя целыми значениями дадут целочисленный результат, то операция деления, применённая к двум целым значениям, даст вещественный результат.

Кроме обычных арифметических операций, к целочисленным значениям в Turbo Pascal применимы две специальные операции деления , обозначаемые зарезервированными словами Div и Mod. Так, результатом действия a div b будет целая часть частного от деления A на B. Например:

25 div 2=12;

5 div 7=0;

Результатом выполнения действия a mod b будет остаток от деления A на B. Например:

25 mod 2=1;

5 mod 7=5;

Задача

Записать натуральное число в обратном порядке.

Program l1_1;

var

x, a, b : integer;

begin

writeln(‘ввести натуральное число x<100’);

readln(x);

a:=x mod 10;

b:=x div 10;

writeln(‘число=’,a, b);

end.

К целочисленным значениям применимы также операции сравнения: =, <>, >, >=,<, <=, дающие логический результат (TRUE или FALSE). Вот пример использования операции сравнения

if a>b then a:=a+c

else a:=a-c;

Также применимы операции: логический сдвиг влево (ShL), ло-гический сдвиг вправо (ShR). При логическом сдвиге биты, оказавшиеся за пределами разрядной сетки кода, отбрасываются, а вместо недостающих устанавливаются нули.

Логический тип

Стандартный логический тип Воо1еаn (размер – 1 байт) представляет собой тип данных, любой элемент которого может принимать лишь два значения: true и falseправда» и «ложь»), которые также могут быть представлены в виде двоичных цифр 1 и 0 соответственно.

Вот как можно объявить переменные типа Boolean в разделе описания переменных:

Var

Test, dek: boolean;

или

Var

a, b, c: boolean;

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

a:=true;

b:=c;

c:=false;

К значениям типа Boolean применимы шесть операторов сравнения и три логических операции.

С операторами сравнения =, <>, <, <=, >,>= мы уже знакомы. Особенность их применения к логическим значениям состоит только в том, что значение true (поскольку его также можно представить в виде двоичной цифры 1) считается больше значения false (которое соответствует двоичной цифре 0).

Логические операции AND (И – логическое умножение), OR (ИЛИ – логическое сложение), XOR(логическое исключающее ИЛИ), NOT (НЕ – логическое отрицание).

Символьный тип

Представляет собой символьный тип данных. Область допустимых значений– все символы ASCII, принятой для персональных компьютеров. (Для кодировки символов используется код ASCIIамериканский стандартный код для обмена информацией).

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

Var

a, b, c: char;

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

a:=’a’;

b:=char(97);

if c>a then . . .

В первой строке переменной А присваивается значение типа Char, соответствующее букве ‘а’ (когда значения типа Char задаются в программе явно, они «окаймляются» апострофами).

Во второй строке переменной b присваивается значение типа Char, соответствующее коду 97 из таблицы ASCII (иными словами, той же букве «а»). (Функция Char преобразует код из таблицы ASCII в соответствующий символ, т.е. в значение типа Char)

Условный оператор в третьей строке, если значение переменной С больше значения переменной А, инициирует выполнение какого-то действия. Одно значение типа Char считается больше другого, если код первого значения больше кода второго. Например, выражение a’<‘b соответствует истине, точно так же, как и 97<98.

Над значениями типа Char возможны все операции сравнения (=, <>, >, >=, <, <=). Причём они дают тот же результат, что и при применении к кодам соответствующих символов.

Пример 1

Program l_1;

Begin

write(chr(66));

write(chr(89));

write(chr(84));

writeln(chr(69));

end.

Ответ: BYTE

Пример 2

Program l_2;

var

s: char;

begin

writeln(‘введите символ’);

readln(s);

writeln(ord(s));

end.

Ответ: введите символ

r

114

Пример 3

Program l_3;

var

n: byte;

begin

writeln(‘введите код’);

readln(n);

writeln(chr(n));

end.

Ответ: введите код

67

C

Перечислимый тип

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

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

type

<имя типа> = (<идентификатор 1, идентификатор 2, ... , идентификатор N>);

Важно, в каком порядке перечислены идентификаторы при определении типа, т. к. первому идентификатору присваивается порядковый номер 0, второму - 1 и т. д. Один и тот же идентификатор можно использовать в определении только одного перечислимого типа. Функция ord от величины перечисляемого типа дает порядковый номер ее значения.

Пример. Перечисляемый тип.

Type Operat=(Plus, Minus, Mult, Divide);

Логический тип является частным случаем перечисляемого типа:

Type Boolean=(False, True);

Тип-диапазон (или ограниченный тип)

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

Type

<имя типа> = <мин. значение> . . <макс. значение>;

Минимальное значение при определении такого типа не должно быть больше максимального.

Пример. Определение типов-диапазонов.

Type

Dozen = 1..12; (числа от 1 до 12)

AddSub=Plus..Minus; (операции сложения и вычитания)

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

В T Паскаль имеется пять стандартных вещественных типов:

rеа1, single, double, extended, comp. Характеристики этих типов в табл.

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

тип

диапазон

Число значащих цифр

Размер в байтах

real

2.2*10-39..1.7*10+38

11-12

6

single

1.5*10-45..3.4*10+38

7-8

4

double

5.0*10-324..1.7*10+308

15-16

8

extended

3.4*10-4932..1.1*10+4932

19-20

10

comp

-9.2*10+18..9,2*10+18

19-20

8

Тип comp фактически является типом целых чисел увеличенного диапазона, однако порядковым не считается.

Типы single, double extended comp можно использовать в программах только при наличии арифметического сопроцессора или при включенном эмуляторе сопроцессора

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

Var

a, b, c : real;

К вещественным значениям применимы четыре арифметических действия, полученный при этом результат – также вещественное число. К вещественным значениям применимы также операции сравнения =, <>, >, >=, <, <=, дающие логический результат.

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