Типы данных в Turbo Pascal .

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

Каждый тип имеет свое диапазон значений и зарезервированное слово для своего описания.

В языке Turbo Pascal существует развитая система стандартных (описанных в модуле System) типов. Кроме того, пользователь может сам создать свой собственный тип, используя служебное слово Type. Формат записи нового типа, определенного пользователем следующий:

Type <имя типа>=<описание типа>;

Рассмотрим стандартные типы.

Типы данных Turbo Pascal.

 

Простые(скалярные) Структурированные:

 

Порядковые: Вещественные строковый- string

Целые регулярный- array

логический записи- record

символьный множества- set

перечисляемые файлы-file, text

интервальный

 

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

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

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

Идентификатор типа Диапазон Требуемая память
Byte [0..255]
Word [0..65535]
Shotint [-128..127]
Integer [-32768..31767]
longint [-2’147’483’648.. 2’147’483’647]

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

+, -, *, div, mod. Результатом всегда является целое число.

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

<, >, <=, >=, <>, =.

Char - символьный тип, представляет собой набор символов кодовой таблицы ASCII. Во внутреннем представлении он занимает 1 байт, множество значений этого типа фиксировано и упорядочено. Все символы считаются перенумерованными, от 0 до 255.

Константой символьного типа является один из допустимых символов, взятый в апострофы. Если апостроф сам является символом, то апостроф, являющийся значением константы, записывается дважды, например ‘7’ , ‘+’ , ‘F’ , ‘’’’ , ‘j’ , ‘?’ .

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

Зам! В таблицы ASCII прописаны сначала управляющие символы, затем специальные, потом идут цифры, латинские заглавные, потом маленькие буквы, русские заглавные, русские маленькие буквы.

Пример. ‘A’<’a’

‘5’<’b’

5 <’b’-НЕДОПУСТИМО!

‘A’<’A’

часто, при работе с символьным типом, применяются следующие стандартные функции:

chr(x)- преобразует выражение типа byte в символ, соответствующий выражению по коду.

Chr(65)-‘A’

Chr(7)- писк

ord(ch)- возражает ASCII- код символа

ord(‘A’)=65

ord(‘A’)=128

pred(ch)- возвращает предыдущий ch символ

pred(‘5’)=’4’

pred(‘a’)=’Z’

pred(‘о’)=’н’

pred(‘9’)=8 НЕДОПУСТИМО!

succ(ch)- возвращает следующий за ch символ.

Boolean - логический тип, определяет диапазон логических значений, который содержит два элемента False (ложь) и True (истина). Во внутреннем представлении он занимает 1 байт. Применяется в операциях отношения и логический операциях. Над данными типа можно производить операции сравнения.

False<True

Перечисляемый тип - задается перечислением тех значений, которые он может получать. Существуют явно и анонимно описанные перечисляемые типы.

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

Type gaz=(ge,h,o,n);

Metal=(fe, zn, li);

Var a,b,c: gaz;

D,I,g:metal;

Переменные a,b,c могут принимать только значения ge,h,o,n. Попутка присвоить любое другое значение вызовет ошибки.

Анонимно(без имени) описанный тип :

Var season:(winter, summer);

Идентификатор season- это имя переменной. Значения, которые может принимать данная переменная это winter, summer

Для переменных одного и того же перечисляемого типа определены операции отношения. Сравнение происходит по порядковым номерам в списке описания типов или переменных.

Например, winter< summer

Или

A:= ge;

B:=o;

A<B-true

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

При определении интервального типа нужно руководствоваться следующими правилами:
-".." рассматриваются как один символ, поэтому между точками пробелы недопустимы;
- левая граница не должна превышать правую границу.

Пример: Type month = 1 ..12;

lat = ’a’ .. ’z’;

var mo: month;

a,b:lat;

Переменные mo может принимать любые значения из диапазона 1..12, a,b из ’a’ .. ’z’. Выход из диапазона приведет к программному прерыванию.

Вещественный тип, строго говоря, имеет конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественного числа настолько велико, что сопоставить с каждым из них целое число не представляется возможным . Во внутреннем представлении он занимает от 4 до 10 байт, диапазон возможных значений - от 1.5E-45 до1.1E4932, точность представления данных - 7..20 значащих цифр.

Вещественные числа

Тип Диапазон Знач. цифры Размер в байтах
Real Single Double Extended 2.9Е-39 ..1.7Е+38 1.5E-45 .. 34E38 5E-324 .. 1.7E308 1.6E-4951..1.1E4932 11-12 7-8 15-16 19-20 4 8 10

Вещественные цифры могут изображаться в привычном для нас виде 2,30 3,65 0,25 и виде с плавающей запятой- число вида <мантисса> Е<порядок>. Мантисса- число по модулю, меньше 1, порядок любое целое число.

7,32= 0,732 Е 1 0,023=0,23 Е-1

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

Структурированные типы данных определяют упорядочную совокупность скалярных переменных и характеризуется типом своих компонентов. В Turbo Pascal существуют следующие структурированные типы: строки, массивы, запись, множество, файлы.

Лекция 11.

Задачи:

Справедливы ли следующие утверждения?

1. Если с є char и ‘0’<c<’9’, то с- цифра

2. ‘0’=0

3. ‘f’=’F’

4. succ(‘0’)=pred(‘2’);

Вычислить значения:

1. Pred(‘7’)=’6’

2. Ord(‘A’)-ord(‘0’)=65-48=17

3. Succ(0)=1

4. Chr(ord(‘5’)+1)=’6’

Имеется литерная переменная с и логическая переменная t, присвоить переменной t true, если выполнится заданное условие и false, если условие не выполняется.

1. С- литера*

2. С- литера ‘a’ или’q’

3. C- заглавная латинская буква

4. С- цифра

Определить значение литерной переменной d после выполнения операторов:

1. C:=’1’; d:=c;

2. C:=’1’; d:=’c’;

Имеются описание типов и переменных:

Type season=(win, spr, sum, out);

Var x,y: season;

t:(heat, cold)

Можно ли присвоить?

1. X:=leto;

2. X:=win; y:=sum;

3. T:=out;

4. X:=y;

5. T:=x;

Верно ли, что

1. Sum>spr

2. Sum=out

3. win<=out

4. succ(sum)= out

Верно ли описаны типы:

Bukva=(‘a’, ‘b’, ‘c’, ‘d’)

Glasnya=(a, i, o, e, y,)

Soglesnaya=(b..d, f, g)

Logiski=Boolean;

digitC=’0’..’9’

digitN=0..9

const n=180; type ugol=-n..n;

 








Дата добавления: 2016-05-25; просмотров: 781;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.018 сек.