Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Представление множества в памяти↑ ⇐ ПредыдущаяСтр 8 из 8 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Переменная типа «множество» занимает в памяти 32 байта или 256 бит. Поэтому ее эффективнее передавать по ссылке. Создание множества на базе массива const n=1000; s[i]=True – eсть элемент, False – нет элемента. Такой способ хранения – в 8 раз менее компактный. procedure Include(var s:MyIntSet; i: integer); function Intersection(const s1,s2: MyIntSet): MyIntSet; Создание множества на базе битового массива. type MyBitIntSet = array [0..n-1] of byte // n*8 элементов Include(s,i) 1) найти нужный байт 2) установить в нем нужный бит: by:=i div 8; Exclude(s,i) s[by]:=s[by] and not (1 shl bi); Пересечение Побитовое or для всех элементов Объединение Побитовое and для всех элементов Разность Result[i]:=s1[i] and not s2[i] Некоторые алгоритмы для двумерных массивов const sz=10; Заполнение матрицы случайными числами read(m,n); Вывод матрицы for i:=1 to n do Пример. Найти сумму элементов в каждом столбце матрицы A. read(m,n); Пример. Найти минимальные элементы в столбцах матрицы A. for j:=1 to n do Пример. Установить, есть ли в матрице элемент равный k. label lbl; Использование goto оправдано - выход из двух вложенных циклов сразу. Пример. Обнулить элементы матрицы ниже главной диагонали (сделав ее верхнетреугольной). Алгоритм 1. for i:=1 to n do Алгоритм 2. for i:=2 to n do Пример. Обнулить элементы Алгоритм 1 (по строкам). for i:=1 to (n+1) div 2 do Алгоритм 2 (по столбцам). for j:= n div 2+2 to n do Алгоритм умножения матриц C=A*B for i:=1 to m do Метод Гаусса for k:=1 to m do Строки Символы Строки состоят из символов. Символы хранятся в памяти компьютера в виде кодов. Соответствие между символами и их кодами называется кодировкой, а таблица соответствия между символами и кодами - кодовой таблицей. Для хранения символа используется 1 или 2 байта (соответствующие кодировки называются однобайтовыми или двухбайтовыми). Тип char занимает 1 байт, т.е. кодировка типа char - однобайтовая. Кодовая таблица состоит из двух половин. В первой половине (коды 0..127) содержатся цифры, буквы латинского алфавита (большие и маленькие), знаки препинания и управляющие символы. Стандарт на первую половину кодовой таблицы называется ASCII (American Standard Code for Information Interchange – американский стандартный код для обмена информацией). Вторая половина с кодами от 128 до 255 содержит символы национального алфавита. Символы с кодами от 0 до 31 считаются управляющими: #10 - символ перехода на следующую строку В России наиболее распространены следующие национальные (русские) кодировки:
Стандартные подпрограммы для работы с символами var Функции chr и ord- взаимно противоположные: ord(chr(x))=x Если n - целое от 0 до 255, то вместо chr(n) можно использовать запись #n. Например, #32 - символ с кодом 32. Другие подпрограммы: succ(c) - функция, возвращающая следующий символ; Виды строк в Delphi Cтроки shortstring sizeof(shortstring)=256 Как строка shortstring хранится в памяти. К символам строки можно обращаться по индексу: s[i] возвращает i-тый символ строки s. Length(s) - функция, возвращающая длину строки s. Для shortstring возвращает содержимое нулевого байта - байта длины строки. Для shortstring Length(s)=ord(s[0]). Можно также при описании указывать размер памяти под строку shortstring: type str20=shortstring[20]; Такая строка будет занимать 20 байт памяти плюс 1 байт на длину строки. Строки ansistring могут занимать до 2 Гб. Они растут динамически по мере заполнения. Переменные типа ansistring представляют собой указатели на реальные строки. Поэтому при их присваивании копируется лишь значение указателя. var: s1,s: ansistring; Однако, если после этого часть одной из строк меняется (например, меняется один символ), то происходит полное копирование строки и в копии происходит изменение. Такое отложенное копирование называется копированием при записи. В Delphi есть также тип widestring строки, состоящей из widechar(2 байта - Unicode).
|
||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 467; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.140.251 (0.011 с.) |