Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Строковый тип данных





Строковый тип (идентификатор типа String) используется для обработки строк (цепочки символов).

Описание переменных строкового типа осуществляется двумя эквивалентными способами:

1) с определением типа

Type

<имя типа> = string[<максимальная длина строки>];

Var

<имя переменной>:<имя типа>;

 

2) без определения типа

Var

<имя переменной>: string[<максимальная длина строки>];

 

Максимальная длина строки должна лежать в диапазоне 1..255. Если максимальная длина строки не указана, то по умолчанию она принимается равной 255 символам.

Например: Type

L25 = string [25];

Lmax = string [80];

Var

screen: Lmax; {явное описание типа}

y: L25;

x: string; {по умолчанию максимальная

длина строки – 255}

z: string [40]; {неявное описание}

 

Все символы в строке нумеруются от 1 до максимального значения длины строки. К любому символу строки можно обратиться как к элементу одномерного массива.

Например: Var st: string [10];

................

Begin

..........

for i:=1 to 10 do

if st[i]=’?’ then

...........

end.

В нулевую позицию автоматически записывается текущее значение длины строки – динамическая длина.

Значением строковой переменной может быть последовательность символов, взятая в апострофы. Если апостроф входит в состав строки, то он записывается дважды.

Например: st1:=’Интегрированная среда’;

st2:=’Под’’езд’;

st3:=’’ {пустая строка}.

 

К строковым переменным применимы следующие операции:

1). Операция присваивания.

Например: MyStr: =’Turbo Pascal’;

YourStr: = MyStr;

Если при присваивании превышается максимальная длина строки, то лишние символы справа отсекаются.

2). Операции отношения (=, <>, <, >, >=, <=).

Стоки сравниваются посимвольно слева направо. При сравнении используются коды соответствующих символов. Строки считаются равными только при одинаковом наборе символов и одинаковой длине. Результат сравнения строк имеет значения False или True.

Например, следующие операции дадут True:

’N’<’n’; ’2’>’123’; ’while’>=’wHile’; ’Паскаль’>’Turbo Pascal’.

3). Операция сцепления (объединения).

Обозначается символом “+”. При выполнении операции к первой строке добавляется вторая строка, ограничивая общую длину в 255 символов или максимально допустимой длиной; "лишние" символы отбрасываются.

Например:

c:=’A’+’B’+’CDE’; writeln(c); {результат – ABCDE}

x:=’Интегрированная’; y:=’ среда’;

z:=x+y; writeln(z); {результат – Интегрированная среда}

Ввод строковых переменных осуществляется только оператором Readln. Одним оператором можно ввести только одну строку.

Вывод строки осуществляется с помощью операторов Write и Writeln. К строковым переменным можно также применять форматированный вывод (как для целых чисел).

Например: A: =’student’;

writeln(A: 10); {результат – student}

writeln(A); {результат – student}

writeln(A: 4); {результат – stud}

Для большинства необходимых преобразований строки в ТР предусмотрены специальные процедуры и функции:

1) function Length (s: string): integer; возвращает динамическую длину строки.

Например: c:=length(’1230’+’456’);

writeln(c); {результат – 7}

2) function Concat (s1 [,s2, …,sN]: string): string; выполняет конкатенацию (объединение) последовательности строк. Действия этой функции и операции сцепления “+” одинаковы.

Например: st1:=’Студент’;

st2:=’ – отличник’;

st3:=concat(st1,’ Петров’, st2);

{результат – st3=’Студент Петров - отличник’}

3) function Copy (s: string; Index, Count: integer): string; возвращает подстроку из строки s, начиная с позиции Index длиной Count символов.

Например: st1:=’Программа’

st2:=copy(st1, 2, 3); {результат – st2=’рог’}

st3:=copy(st1, 4, 5); {результат – st3=’грамм’}

4) function Pos (subS, s: string): byte; возвращает позицию, начиная с которой в строке s располагается подстрока subS. Если фрагмент в строке не найден, то Pos =0.

Например: S:=’Airplane’;

N1:=pos(’plan’, s); {результат – N1=4}

N2:=pos(’nn’, s); {результат – N2=0}

N3:=pos(’bar’, ’Barbara’); {результат – N3=4}

5) procedure Delete (var s: string; Index, Count integer); удаляет Count символов из строки s, начиная с позиции Index со смещением остатка строки на освободившееся место.

Например: а) удаление пробелов из начала строки:

while st[1]=’ ’ do delete (st, 1, 1);


б) удаление всех пробелов из строки:

while Pos(’ ’,st)<>0 do Delete (st, Pos (’ ’, st), 1)

6) procedure Insert (subS: string; var S: string; Index: integer); вставляет подстроку subS в строку s, начиная с позиции Index. Если Index превышает исходную длину строки, то subS присоединяется к строке s справа.

Например: вставить в строку ’студент – отличник’ свою фамилию:

Var st1, fam: string;

begin writeln (’Введите свою фамилию’);

readln (fam);

st1:=’студент – отличник’;

insert (fam,st1,9);

writeln (st1); {результат: студент Иванов –

end. отличник}

 

7) procedure Str (x[: Size[: Dec]], var s: string); преобразует числовое значение х (целое или вещественное) в его строковое представление. Size и Dec поля, отводимые соответственно под запись всего числа и его дробной части (как в операторе write).

Например: A:= -6; B:= 8.1E-4;

str (A: 4, st1); {результат – st1=’ -6’}

str (B: 15: 10, st2);

{результат – st2=’ 0.0008100000’}

8) procedure Val (s: string; var x: real (или integer); code: integer); преобразует строковое значение s в его численное представление х. Параметр code содержит признак ошибки преобразования (0 – нет ошибки). Если в строке встречается недопустимый символ, то его номер сохраняется в параметре code (т.е. если строка не соответствует формату числа, то code содержит номер первого ошибочного символа).

Например:

st1:=’1234’; val (st1, R1, Ier1); {результат – R1=1234; Ier1=0}

st2:=’7.7E5’; val (st2, R2, Ier2); {результат – R2=770000; Ier2=0}

st3:=’1+1’; val (st3, R3, Ier3); {результат – R3=0; Ier3=2}

 

При решении задач с символьными данными в качестве начальных значений переменных можно использовать типизированные константы. Задание констант строкового и символьного типов аналогично заданию констант простых числовых типов.

Например:

Const

str: string = 'Turbo Pascal';

no: char = 'N';

 







Date: 2016-02-19; view: 452; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.01 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию