
- •Стандартные Pascal
- •Ввод/вывод:
- •Представление значений в памяти эвм:
- •Real – вещественное число
- •Char – символ
- •Boolean – логичесткий
- •Сложные Pascal
- •Array – массив
- •Record – запись
- •Перечислимый
- •Ограниченный
- •File – типизированные файлы
- •Ввод/вывод:
- •Представление значений в памяти эвм:
- •Определение внешнего вида значений
- •Определение диапазона и возможных зарезервированных констант:
- •Определение операций
- •Определение процедур и функций, которые могут применяться к этому типу:
- •String – строки
- •Text – текстовые файлы
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Unsigned Int- целое без знака
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Short-короткое целое
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Unsigned Short-короткое целое без знака
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Long-длинное целое
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Unsigned Long-длинное целое без знака
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Представление значений в памяти эвм:
- •Char-символьный
- •Определение внешнего вида значений
- •Определение диапазона и возможных зарезервированных констант:
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Представление значений в памяти эвм:
- •Unsigned Char-символьный
- •Определение внешнего вида значений
- •Определение диапазона и возможных зарезервированных констант:
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Float-вещественное
- •Double-вещественное с двойной точностью
- •Long double-вещественное с двойной точностью
- •Составные типы данных Си
- •Struct - структура
- •Union - объединение
- •Enum – перечисление
- •Статические массивы
- •Динамические массивы
- •Указатели
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Представление значений в памяти эвм:
Union - объединение
Определение внешнего вида значений
нет
Определение диапазона и возможных зарезервированных констант:
Диапазон значений:
Определяется только для каждого поля
Обусловлен базовым типом каждого поля непосредственно
Константы:
Определяется только для каждого поля
Обусловлен базовым типом каждого поля непосредственно
Определение операций
Определяется только для каждого поля
Обусловлен базовым типом каждого поля непосредственно
Определение процедур и функций, которые могут применяться к этому типу:
Обусловлен базовым типом каждого поля непосредственно
union DATATYPE // Объявление нового типа union («объединение») – DATATYPE
{
char ch; //поле типа char - 1 байт
int i; //поле типа int - 2 байта
float f; //поле типа float - 4 байта
double d; //поле типа double - 8 байт
};
При последующем объявлении переменных, относящихся к DATATYPE, в Си обязательно использование ключевого слова union, в С++ - не обязательно.
union DATATYPE var1; // объявление var2 типа DATATYPE (union) в Си
DATATYPE var1; // объявление var1 типа DATATYPE (union) в С++
Каждое поле, хранящееся в union-е, может содержать любое значение заданного типа.
var1.i = 6; // Использовать переменную как целое (int)
var1.d = 5.327; // Использовать переменную как дробную (double)
Получить размер любой переменной, относящейся к DATATYPE можно через функцию sizeof.
Для var1 размер = sizeof(var1);
Ввод/вывод:
Операции ввода/вывода для каждого поля эквивалентны операциям, предусмотренных для типов этих полей.
Обращение происходит через «.» (точку).
Представление значений в памяти ЭВМ:
Каждый новый тип, описанный как union, занимает в памяти число байт, равное размеру максимального поля этого типа. Так, например, описанный выше тип DATATYPE занимает 8 байт в памяти, т.к. его поле максимальной длины – d (double занимает в памяти 8 байт).
Enum – перечисление
Определение внешнего вида значений
Используется для описания какого-либо множества значений. По своей сути – множество констант.
Определение диапазона и возможных зарезервированных констант:
Диапазон значений:
нет
Константы:
Задаются самостоятельно
Пример: множество «стороны света».
enum cardinal_dirs { north, west, east, south };
Определение операций
После того, как определено перечисление, можно создавать переменные нового типа и работать с ними:
cardinal_dirs ch = north;
В данном случае переменные типа cardinal_dirs могут принимать только четыре значения: north, south, east, west. Элементы в перечислении нумеруются от нуля. Т.е. north = 0, east = 1, south = 2, west = 3. Вместо перечисления можно было создать четыре константы:
const int north = 0;
const int east = 1;
const int south = 2;
const int west = 3;
Определение процедур и функций, которые могут применяться к этому типу:
sizeof()
Ввод/вывод:
нет.
Представление значений в памяти ЭВМ:
В памяти cardinal_dirs также будет записана как ряд констант: четыре целые значения, по 2 байта каждое (итого: 2 байта * 4 элемента = 8 байт занимают все элементы). Имена (north/east/south/west) определены только в пределах исходного кода программы.