
- •Стандартные 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 – перечисление
- •Статические массивы
- •Динамические массивы
- •Указатели
- •Определение процедур и функций, которые могут применяться к этому типу:
- •Ввод/вывод:
- •Представление значений в памяти эвм:
Определение операций
Указатели можно сравнивать на равенство (=) и неравенство (<>). В дополнение к этому типизированные указатели можно сравнивать, используя операции <, >, <=, >=.
Для доступа к ячейке памяти, адрес которой хранит типизированный указатель, используется операция разыменования ^:
var i: integer; pi: ^integer; ... pi:=@i; // указателю присвоили адрес переменной i pi^:=5; // переменной i присвоили 5
Операция разыменования не может быть применена к бестиповому указателю.
Типизированный указатель может быть неявно преобразован к бестиповому:
type preal=^real; var p: pointer; pr: ^real; ... p:=pr;
Обратное преобразование может быть выполнено только явно:
pr:=preal(p); pr^:=3.14;
Определение процедур и функций, которые могут применяться к этому типу:
New(p) - процедура; p - типизированный указатель; выделяет динамическую память размера, равного размеру типа, на который указывает p, и возвращает указатель на нее в переменной p
Dispose(p) - процедура; p - типизированный указатель; освобождает динамическую память по указателю p, ранее выделенную процедурой New
GetMem(p,n) - процедура; p - указатель любого типа, n - integer; выделяет динамическую память размера n байт и возвращает указатель на нее в переменной p
FreeMem(p) - процедура; p - указатель любого типа; освобождает динамическую память по указателю p, ранее выделенную процедурой GetMem
FillMem(v,count,x) - процедура; v - переменная любого типа, count - integer,
x - byte; заполняет count значениями x область памяти, занимаемую переменной v. Контроль выхода за границы не производится
CopyMem(src,dest,count) - процедура; src, dest - pointer, count - integer; копирует count байт из памяти, расположенной по адресу src, в память, расположенную по адресу dest. Допускается использовать перекрывающиеся диапазоны памяти.
Ввод/вывод:
Нет
Представление значений в памяти ЭВМ:
нет
String – строки
Определение внешнего вида значений
нет
Определение диапазона и возможных зарезервированных констант:
Диапазон значений:
Длина строки: 1..255
Константы:
Нет
Определение операций
Сравнения: =, <, >, <>
Происходит «посимвольное» сравнение
Определение процедур и функций, которые могут применяться к этому типу:
Length(s) - функция; s - string; результат - integer; возвращает длину строки s.
Copy(s,index,count) - функция; s - string, index и count - integer; результат - string; возвращает подстроку строки s длины count, начиная с позиции index.
Delete(s,index,count) - процедура; s - string, index и count - integer; удаляет в строке s count символов начиная с позиции index.
Insert(subs,s,index) - процедура; s, subs - string, index - integer; вставляет подстроку subs в строку s с позиции index.
Pos(subs,s) - функция; s, subs - string; результат - integer; возвращает позицию первой подстроки subs в строке s (или 0 если подстрока не найдена).
SetLength(s,n) - процедура; s - string, n - integer; устанавливает длину строки s равной n.
Str(x,s), Str(x:n,s), Str(x:n:m,s) - процедура; s - string, x - integer, real и n, m - integer; преобразует x к строковому представлению (во втором и третьем случаях согласно формату вывода, устанавливаемому n и m) и записывает результат в строку s.
Val(s,v,code) - процедура; s - string, v - integer, real, и code - integer; преобразует строку s к числовому представлению и записывает результат в переменную v. Если преобразование возможно, то в переменной code возвращается 0, если невозможно, то в code возвращается ненулевое значение.
Concat(s1,...,sn) - функция; s1,..., sn - string; результат - string; возвращает строку, являющуюся результатом слияния строк s1,..., sn. Результат тот же, что у выражения s1+s2+...+sn .
Также можно работать с каждым символом непосредственно как с переменной символьного типа, обращаясь к нему как к элементу массива (нумеруются начиная с единицы, обращение к нулевому символу считается ошибочным).
Ввод/вывод:
Допустимы (read/readln/write/writeln)
Представление значений в памяти ЭВМ:
Де-факто строка – это массив символов. Занимает число байт, равное размерности строки + 1, т.е.первый байт отводится под значение размерности.