24. Строки

 Особое место в языке ПАСКАЛЬ занимают массивы символов. Стандарт-

ный ПАСКАЛЬ допускает два способа хранения символьных массивов в па-

мяти ЭВМ: распакованный и упакованный. Распакованные массивы символов

хранятся в памяти ЭВМ по одному символу в машинном слове, упакованные

- по одному символу в байте. При описании упакованного массива симво-

лов используют служебное слово PACKED, например:

 

 var MAS: Packed Array[1..20] of Char;

 

Описание распакованного массива символов имеет вид:

 

 var M: Array[1..20] of char;

 

 Для преобразования символьного массива из  распакованной формы в

упакованную и наоборот, из упакованной в распакованную, в язык ПАС-

КАЛЬ введены две стандартные функции Pack, UnPack.

 Упакованный массив символов образует символьную строку. Символьная

строка может быть либо строковой константой, либо строковой перемен-

ной. Строковая константа, или строка, представляет собой совокупность

символов, заключенную в апострофы. Строка - это элементарная конс-

трукция языка ПАСКАЛЬ. Строковые константы могут входить в состав вы-

ражений. Как и числовые константы, они могут быть описаны в разделе

описания констант.

 Строковые переменные - это одномерные упакованные  массивы симво-

лов, для описания которых в TURBO PASCAL введен тип String.

 Например, если строка содержит до 30 символов, ее тип будет опре-

делен как

 

 type s= String[30];

 

 Длина строки не может содержать более, чем 255 символов.

 В TURBO PASCAL определено понятие строки переменной длины, в этом

случае ее описание задается как

 

 type s= String;

 

 Тип String без указания длины совместим со всеми типами строк.

 Особенностью строковых переменных является то, что к ним можно об-

ращаться как к скалярным переменным, так и к массивам. Во втором слу-

чае применяется конструкция "переменная с индексом", что обеспечивает

доступ к отдельным символам строки. При этом нижняя граница идекса

равна 1. Отдельный символ строки совместим с типом Char.

 В памяти ЭВМ строка занимает количество байтов, на единицу большее

ее длины. Нулевой байт строки содержит ее длину.

 Для строк определены операции присваивания, слияния (конкатенации)

и сравнения.

 

 Для сравнения строк применяются все операции отношения. Сравнение

строк происходит посимвольно, начиная с первого символа. Строки рав-

ны, если имеют одинаковую длину и посимвольно эквивалентны.

 Строки могут быть элементами списка ввода - вывода, при этом запи-

сывается имя строки без индекса.

 При вводе строковых переменных количество вводимых символов может

быть меньше,  чем длина строки. В этом случае вводимые символы разме-

щаются с начала строки, а оставшиеся байты заполняются пробелами. Ес-

ли количество  вводимых символов превышает  длину строки, лишние

символы отбрасываются.

 Инициализация строк может производиться как с помощью типизирован-

ных констант:

 

 const sName: String[9]= 'IBM PC/AT';

 

так и с использованием второй разновидности функции FillChar:

 

 FillChar( var V; NBytes: Word; C: Char );

 

например:

 

 FillChar(A, SizeOf(A), '0');

 

 Для работы со  строками в TURBO PASCAL включены процедуры и функ-

ции, которые обеспечивают редактирование и преобразование строк.

Электротехника курсовые, лабораторные, практика Математика, физика