Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа со строками_лекция.docx
Скачиваний:
1
Добавлен:
18.09.2019
Размер:
52.08 Кб
Скачать

Строки

Основной вид информации, которую использует человек – это текстовая информация!

Рассмотренный ранее тип char не совсем удобен, т.к. позволяет в переменной хранить только один символ.

А слова и предложения – это цепочка символов.

Для цепочки символов используется тип данных – STRING

(строковая переменная).

О писание строковой переменной: var ST: string;

И под переменную ST резервируется 256 байт, но в неё можно помещать произвольное количество символов, однако <=255 ( 0-ой байт хранит указания фактич.длины, остальные - для 255 символов).

Если не нужны большие строки, то длину строки можно указывать в квадратных скобках рядом со служебным словом string.

Пример: var st: string[25];

И под переменную st зарезервируется 26 байт, ( 1 байт хранит указания фактической длины, остальные - для 25 символов).

Т.е., если длина строки не указана, она принимается максимально возможной, т.е. N=255.

Строки рассматриваются как цепочки символов (‘КАНИКУЛЫ’).

Поэтому к любому символу в строке можно обратиться, ука­зав рядом с именем переменной квадратные скобки с индекс символа в строке (адрес, порядковый номер): s[i] — i-тый символ в строке st;

П ример: var s: string[25];

begin

s := ‘КАНИКУЛЫ ‘;

Write ( s[2] ) ; { на экране 2-ой символ из строки s , т.е. буква А}

Самый первый байт в строке имеет индекс равный 0 и содер­жит текущую длину строки.

Работа со строками

Тип данных STRING (строка)

Переменная типа string состоит из цепочки символов, т.е. элементов типа CHAR.

Описание строковых переменных:

Var <имя переменной>: string[< кол-во символов>];

где

<имя переменной> - идентификатор переменной

string - тип переменной (строковый)

[< кол-во символов>] - количество символов в строке (если данный компонент отсутствует, то берется по умолчанию 255 символов в строке).

Пример:

Описать строку с именем STROKA, которая состоит из 20 символов,

Var stroka: string [20];

Основные действия со строками:

Var Stroka1: string [7];

Stroka2: string [7];

Rez1: string [7];

0

1

2

3

4

5

6

7

Stroka1

Rez2: string [8];

0

1

2

3

4

5

6

7

Stroka1

4

О

л

е

г

{Присваивание:}

Stroka1 := ‘Олег‘;

0

1

2

3

4

5

6

7

Stroka2

4

Д

и

м

а

Stroka2 := ‘Дима‘;

{Сравнение:}

If Stroka1 > Stroka2 then Write (‘Олег больше‘) else Write (‘Дима больше‘);

{Объединение:}

0

1

2

3

4

5

6

7

Rez1

7

О

л

е

г

Д

и

м

Rez1 := Stroka1 + Stroka2;

0

1

2

3

4

5

6

7

8

Rez2

8

О

л

е

г

Д

и

м

а

Rez2 := ‘Олег‘ +’ ‘+ ‘Дима‘;

Замечание:

  • Максимальная длина строки - 255 символов (256 байт).

  • Фактическая длина строки хранится в нулевом байте этой строки (т.е. под строку в памяти отведено на 1 байт больше).

Задача1:

Программа выводит в алфавитном порядке три введённых пользователем имени.

ДЗ: Тема 10 (стр.171-176)

Задача2:

Программа вычисляет количество пробелов в строке ST[10]

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

1. Операция объединения строк (конкатенация). Обозначается эта операция знаком + (но это не сложение!)

Результат

St1:= ‘Лицей ';

St2:= 'Информационных ';

St3= 'Технологий';

st:=st1+st2+ st3;

Лицей Информационных Технологий

Примечание: если длина результирующей строки превысит допустимую (255) длину, то "лишние" символы отбрасываются.

2. Операции сравнения =, >=, >, <, <=.

Сравнивать можно строки разной и одинаковой длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами символов. Считается, что отсутствующие символы в более короткой строке имеют код, меньше кода любого действительного символа.

Например.

?

Результат

Как делать

'АВ' > 'А'

True

'АВ'

'А'

‘MS-DOS’ < ‘MS-Dos’

True

‘MS-DOS’

‘MS-Dos’

‘program’ > ‘PROGRAM’

True

‘program’

‘PROGRAM’

‘intel’=’intel’

True

‘intel’

’intel’