![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Представление множества в памятиСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Переменная типа «множество» занимает в памяти 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; просмотров: 473; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.9.149 (0.01 с.) |