Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Короткая строка




Строки

Динамические массивы

Функции Low и High

 

Функции Low и High предназначены для работы с массивами. Функция Low возвращает нижнюю, а функция High – верхнюю границу индексов массива:

 

var

X, I, Lower, Upper: Integer;

MyArray: array[10..20] of Integer;

begin

{ Code to initialize MyArray here. }

Lower:= Low(MyArray); { Lower содержит 10 }

Upper:= High(MyArray); { Upper содержит 20 }

X:= 0;

for I:= Lower to Upper do

X:= X + MyArray[I];

{ продолжение кода... }

end;

 

Применение функций Low и High для работы с массивами – хороший способ избежать ошибок, связанных с выходом индекса за допустимые пределы.

 

 

 

При объявлении динамического массива достаточно указать только тип его элементов. Память для размещения его элементов на этом этапе не выделяется. Фактически массив создается только во время выполнения программы. Для этого используется функция SetLength. Как только необходимость в массиве отпадает, следует освободить память вызовом процедуры Finalize. Рассмотрим пример:

 

var

BigArray: array of Integer; {размер массива не указан }

X: Integer;

begin

X:= GetArraySize; { Функция вычисляет размер массива }

SetLength(BigArray, X); { Динамическое размещение массива }

{ Теперь массив можно использовать}

........

{ Массив больше не нужен }

Finalize(BigArray);

end;

 

Новый термин. Динамический массив размещается в оперативной памяти во время выполнения программы.

Размер динамического массива можно увеличивать или уменьшать во время выполнения. программы

По окончании использования его следует уничтожить.

 

Несомненное преимущество динамических массивов над статическими заключается в том, что в случае неопределенности потребного количеством элементов нам не надо объявлять массив «с запасом». Достаточно объявить динамический массив и управлять его размерами непосредственно из программы.

Для изменения размеров массива используют функцию Copy. Рассмотрим такой пример. Пусть динамический массив BigArray содержит 100 элементов. Нам необходимо увеличить его размер до 200 элементов. Для этого обращаемся к функции Copy:

 

Copy(BigArray, 200);

 

Предыдущее содержимое (значения элементов) массива остается неизменным, а его размер увеличен до 200 элементов.

 

Двумерные динамические массивы создаются аналогично. Объявление двумерного динамического массива имеет вид:

 

var

BigArray: array of array of Integer;

begin

SetLength(BigArray, 20, 20);

BigArray[0][0]:= 200;

{............ }

 

Finalize(BigArray);

end;

 

 

 

Строки в программах используются весьма интенсивно. Object Pascal дает нам три различных строковых типа: длинная строка, короткая строка и расширенная строка. Кроме того, есть строки с терминальным нулем.

 

 

Короткая строка – это строка фиксированной длины с числом символов не более 255. Имеются два способа объявления строк фиксированной длины. В первом случае используется предопределенный тип ShortString, который объявляет строку длиной 255 байт. Во втором случае – ключевое слово string со спецификацией длины:

 

var

S1: ShortString; { строка длиной 255 символов }

S2: string[20]; { строка длиной 20 символов }

 

Так как объем памяти, выделяемой для строк этого типа, в процессе работы программы не изменяется, операции над строками фиксированной длины выполняются очень быстро. Однако, короткие строки – устаревший тип данных. В программах рекомендуется использовать длинные строки. Короткие строки называют строками с байтом длины, ибо первый ее элемент равен текущему числу символов в ней. Значение первого элемента можно прочесть и узнать сколько в строке символов, например,

 

var

S:ShortString; { строка длины 255 символов }

Len:Integer;

begin

S:= 'Hello';

Len:= Ord(S[0]); {Значение Len теперь равно длине S,т.е. 5}

end;

 

В этом примере для определения длины строки используется значение S[0]. Можно также воспользоваться функцией Length.

 

ПРИМЕЧАНИЕ. Для преобразования значения типа Char в целую величину используется функция Ord. Функция Ord также применяется к перечислимым типам.

 

Ели это необходимо, первому элементу короткой строки можно присвоить значение длины. Это может потребоваться в некоторых специальных случаях. Отметим, что программное изменение длины строки относится к «продвинутой» технике и начинающим программистам этого делать не стоит.

 




Поделиться с друзьями:


Дата добавления: 2015-04-29; Просмотров: 944; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.