- •1.Записи(тип Record).Поля записи.
- •2.Доступ к полям записи. Оператор With.
- •3.Уникальность имён полей записи.Примеры.
- •4.Запись как единый объект операций.
- •5.Вариантные записи.
- •6.Множества в тп. Описание Типа. Задание значений множественных переменных.
- •7.Операции с множеством
- •13. Указатели
- •14. Не типизированные указатели.
- •15. Операции над указателями
- •20. Сортировка массива
- •21. Поиски
- •22. Понятие языков с сильной типизацией
- •23. Препроцессор языка Си
- •24. Директивы препроцессора
- •25 Базовые типы данных (арифметические). Модификаторы
- •28 Структура программы Си
- •27 Декларация и инициализация переменных
- •29.Арифметические операции, операции отношения.
- •30.Поразрядные операции
- •31.Операция “?:”
- •32.Операция «запятая»(последовательного вычисления)
6.Множества в тп. Описание Типа. Задание значений множественных переменных.
Перечислимый тип.
Удобна возможность введения нестандартных типов, например перечислимый. Формат описания типа имеет вид:
Type <идентификатор>=(<список значений через запятую>);
Замечание: элементами списка могут быть только идентификаторы. Нумерация элементов перечислимого типа начинается снуля.
1)Повторяющиеся элементы недопустимы
2)Переменной перечислимого типа можно назначать любое значение в пределах типа.
3)Нет представления ввода-вывода переменных перечислимого типа
4)Допускается использование операции сравнения для переменных перечислимого типа.
Ограниченный тип.
Описание:
Type<идентификатор> = (<начальное значение>..<конечное значение>)
Начальное и конечное значения могут быть целого или символьного типа, при этом начальное значение <= конечное значение.
Замечание: при преобразовании типа возможен выход за границы типа, {$R+} – сигнал для компилятора, так называемая директива (проверяет выход за границу).
Функция sizeof(x), возвращающая размер памяти в байтах, которую занимает переменная Х, может быть именем типа.
Writeln(sizeof(byte))
Замечание: функция sizeof может использоваться для структурированных типов.
Множества(set).
Структура описания:
Type <идентификатор>=set of <тип элементов>, тип элементов –порядковый, удовлетворяющий ограничению число элементов не более 256 (0..255)
Type letter=set of ‘A’..’Z’;
Type seol=set of (Red,Green);
Type all=set of char;
Замечание: в отличие от массива, множество-неупорядочно, сами элементы множества в памяти не записываются, там хранится только информация об их наличии или отсуствии
Var colset:scol;
Colset:=[Red];
Множество может быть задано в виде списка элементов в квадратных скобках.
[ ]-пустое множество.
Var A:All Let;
A:[‘a’ .. ’c’ , ’A’ .. ‘Z’];
Замечание: в качестве элементов списка в квадратных скобках можно использовать выражение, допустимый тип.
Если начальное и конечное значения диапазона образуют ошибку задания типа.
7.Операции с множеством
1)объединение множеств(+)
2)пересечение(*)
3)Разность(-)
4)Проверка принадлежности элемента множеству(“in”)
5)Отношения(<>, =, <=, >=)
Пример 1 операции:
А+В, в котором будут находиться все элементы А и В, но если есть повторяющиеся, то они пишутся один раз
Пример 2 операции:
А*В , то есть которые повторяются и в А и в В
Пример 3:
А-В
Пример 4:
А in S
Выраж. Множество
Результат-логическое значение.
А - может быть выражение базового типа(Red in Colset) или Red in [Red, Green]=true 8+1 in [1..12]=true
Type chs=set of char;
Var chs 1,chs 2,chs 3,:chs;
Chs 1:=[‘a’ , ‘x’ , ‘e’];
Chs 2:=[‘c’ , ‘x’];
Chs 3:=chs 1 + chs 2;{‘a’ , ‘x’ , ‘e’ , ‘c’};
Chs 3:=chs 1*chs 2;{‘x’};
Chs 3:=chs 1*[‘o’ , ‘n’];{[]};
Chs 3:=chs 1-chs 2; {‘a’ , ‘e’};
Пример использования множества .
Множества можно использовать вместо case или наборов операторов if.
Var sp:set of char;
DZ:char;
……………………..
Sp:=[‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘a’ , ‘b’ , ‘c’ , ‘d’];
Repeat writeln(‘введите допустимое значение’);
Readln(DZ);
Until DZ in sp;