Типы данных в 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;