Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Записи как средство упаковки параметровСодержание книги
Поиск на нашем сайте
type Записи с вариантами В конце записи может быть одна вариантная часть. В ней содержатся поля различных типов, для которых выделен один участок памяти. record Пример. Заготовка для библиотеки графических фигур. type Как записи с вариантами хранятся в памяти var f:Figure; Размер записи с вариантами рассчитывается по большему полю. procedure DrawFigure (const f:Figure); С оператором with: begin Итак, записи с вариантами обеспечивают примитивный полиморфизм типов. Полиморфизмом мы называем изменчивость поведения в пределах одного типа. Сортировка массивов записей Для сортировки массива записей по различным критериям в процедуру сортировки передают функцию сравнения, которая является бинарным предикатом. Например, для сортировки массива студентов функция сравнения имеет следующий вид: cmp(a[j+1],a[j]) Эта функция имеет смысл операции "меньше". BubbleSortStudent(gr1_11,36,LessName); Индексная сортировка При сортировке массивов больших объектов эффективность теряется из-за многочисленных копирований больших объектов в памяти. Чтобы этого избежать, переставляют не сами объекты, а их индексы, для этого вводится специальный индексный массив, который отображает виртуальные индексы в реальные i (виртуальный индекс) → Index[i] (реальный индекс) В начальный момент времени виртуальный индекс совпадает с реальным, т.е. Index[i]=i. При сортировке мы сравниваем элементы массивов используются виртуальные индексы, а меняем местами элементы индексного массива. procedure BubbleIndexStudentSort(var a: StArr; var Index: IArr; n: integer; cmp: cmpFunc); Множества Множества - совокупность элементов одного порядкового типа (целого, символьного, перечислимого или диапазонного). Во множество может входить несколько элементов одновременно, а может не входить ни одного, каждый элемент входит во множество не более 1 раза. Элементы во множестве не упорядочены. Тип множества описывается следующим образом: Примеры. type Замечания. Базовый тип множества должен иметь элементы с порядковыми номерами в диапазоне от 0 до 255. Операции над множествами var s1,s2: set of byte; Множества - константы [1,3..5,8] Добавить элемент к множеству s:= s + [i]; или Include(s,i) // если элемент во множестве есть, то ничего не произойдет Удалить элемент из множества s:= s – [i] или Exclude(s,i) Цикл по множеству for i:=1 to 255 do // перебрать все возможные элементы Пример. Вывод всех символов, встречающихся в массиве символов, в алфавитном порядке. const sym: array [1..25] of char = 'Информационные технологии'; // Вывод for i:=1 to 255 do Пример. «Решето Эратосфера». Вывести все простые числа <= 255. Алгоритм. const n=255; begin
|
||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 347; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.207.196 (0.009 с.) |