Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора информатика.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

15. Понятие типа данных. Простые (базовые) типы данных. Ссылочный тип.

Суть всех алгоритмов и комп-х программ состоит в том, что они описы­вают преобр-ние нек. начальных данных в конечные. Какие-то данные алгоритма (программа) м. использовать как промежуточные. Тип данных - множество величин, объединенных опреде­ленной совокупностью допустимых операций. Т.Д. разделены на 2 важные группы: простые и структурированные. переменная простого типа м. хранить единственное значение. Структ-нный набор данных – это Т.д., который строится, исходя из конечного набора базовых типов с помощью операций. Знание типа переменной существенно для понимания алгоритма. Каждая из переменных программы предназначена для хранения некоторых значений, а каждый тип данных требует для своего хранения определенное количество элементов памяти. Чтобы распределить память для хранения значений переменных, компилятору необходимо знать диапазоны их значений. Все данные, для которых допустим определенный набор компьютерных операций называется базовым. Во многих процедурных ЯП базовые типы – это множества целых чисел, логических значений, конечных приближений вещественных чисел. Например в паскале базовыми явл-ся: integer, real, char, Boolean.

Базовые (простые) Т.Д. Для работы с данными этих типов достаточно только указать тип. Идентификатор, код-ие и набор операций заложены в транслятор. Есть возм-сть увеличения набора операций (функции пользователя). Т.Д. "целое число". Знач-ми цел. типа яв-ся элементы подмн-ва це­лых чисел, границы кот-го зависят от реализации языка. Цел. числа в любой вычислительной системе д. представ­ляться точно и все опре-нные над ними операции также д. выпол­няться точно. Над целочис-ми знач-ми в Пас. определены 5 ос­нов. операций, рез-том кот-х явл-ся также цел. число. Этими операциями являются:(+),(-),(*), (DIV) и (MOD). К цел. величинам м. применять операции отноше­ния. Результат этих операций имеет логич. тип.К цел. величинам м. применять поразрядные операции and, or, xor и not. При выполнении этих операций каждая ве­личина предст-тся как совок-сть двоичных разрядов. Дейст­вие выполняется над каждой парой соответствующих разрядов опе­рандов: первый разряд с первым, второй - со вторым и т.д. Для работы с целыми величинами предназначены также и опера­ции сдвига влево shl и вправо shr. Слева от знака операции указыва­ется, с какой величиной будет выполняться операция, а справа - на какое число двоичных разрядов требуется сдвинуть величину. Вещественный тип (real). Областью значений типа real является определяемое реализаци­ей языка подмножество всех дей-ых чисел. Особенность типа real связана со следующими обстоятельст­вами. Дейст. числа в ЭВМ обычно представляются в форме с плавающей точкой, т.е. внутреннее представление вещ. числа состоит из двух частей - мантиссы и порядка, и каждая часть имеет знак. Т.к. для изображения мантиссы отводится тоже фиксированное количест­во разрядов, то в машине точно м.б. представлено лишь огра­ниченное множество дей. чисел. Для хранения переменных типа Real компилятор Турбо Пас. выделяет 6 байтов в ОЗУ (1 бит для знака, 39 бит для мантиссы и 8 бит для порядка).

С вещ. величинами м. выполнять арифм. операции: (+),(-),(*),(/).К вещ. Вел-нам можно также применять операции отношения. Результат этих операций имеет лог. тип. Логический тип (boolean).В языке Паскаль имеется две константы лог. типа: true (истина) и false (ложь). Этот тип определен так, что false < true (упорядоченность!), причем эти лог. зна­чения имеют порядковые номера 0 и 1 соот-но. Переменные типа Boolean, ByteBool занимают 1 байт памяти. Над данными лог. типа м. выполняться следующие операции: 1. Лог. not, "не"-является унарной операци­ей and - or, хоr. 2. Операции сравнения (равно «=» и неравно «<>»).

Литерный тип (char) Знач-ем перем-й лит. типа явл-ся один символ из набора сим-ов, опред-ого конкретной реализацией. В каждой отдельной версии языка Паскаль это множество д. отвечать следующим требованиям:- для любого набора символов все символы фиксированы и упорядочены; -включены все прописные буквы лат. алфавита от А до Z;-это мн-во упорядочено по алфавиту; -включены десятичные цифры от 0 до 9; это мн-во упорядо­чено по возрастанию цифр и связно; -если в реализации допускаются строчные лат. буквы от а до z, то они д.б упорядочены по алфавиту; -включены такие символы, как пробел, запятая, точка и др.; -отношение порядка между двумя символами мн-ва значе­ний типа char д. б таким же, как и между их порядко­выми номерами. Элементы мн-ва типа char считаются перенумерованными, начиная с нуля. Переменные этого типа занимают 1 байт памяти. Перечисляемый тип. Переч-я позволяют программисту описывать новые типы данных, значения кот-х опр-ет программист. Описание переч-мого типа состоит из списка его элементов, разделяемых запятыми, заключенного в круглые скобки. Каждый из элементов представляет собой уникальный идентификатор(var Yestaday, Today, Tomorrow: WeekDay;) Интервальный тип. Инт. тип представляет собой диапазон (интервал) зна­чений какого-либо порядкового типа, называемого базовым. При описании инт. типа указываются наим и наиб значения диапазона значений, допустимых для этого типа. Ми­н-ное и мак-ое значение интервала разделяются знаком «..» (две точки). Переменная интер. типа имеет все свойства переменной базового типа. Поэтому все стандартны функции и операции опреде­ленные для базового типа могут применяться и к его отрезку, В Паскале исп-ся динамич стр-ры. Отводимая под них память наз-ся динамической. Ею м/б вся своб. память. Р-та с динам. объектами позв-ет: 1) занимать и осв-ть память во время р-ты программы, 2) обр-ся ко всей своб. памяти 3) созд-ть стр-ры перем. длины. Р-та с динам. вел-ми связана с исп-ем ссылочного типа (указатель). Указатель сод-ит адрес ячейки динамич. памяти, хранящей вел-ну опр-го типа. Сам указатель расп-ся в статич. памяти. Сами динам. вел-ны перем-ой не имеют. Ссылочные типы опр-ся в описательной части программы, в разд. type, var.