Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТК№8.doc
Скачиваний:
4
Добавлен:
06.12.2018
Размер:
96.77 Кб
Скачать

Сравнение символьных переменных

Подобные обычным числам символьные величины можно сравнить. При этом фактически сравнивается не сами эти величины, а соответствующие им числовые коды. Например, можно записать такую операцию сравнения: ' а ' < ' d ' результат этой операции будет истинным (равен true), так как код символа ' а ' равен 65, а код символа ' d ' равен 68. А если мы запишем следующее соотношение:

' k ' > ' t '

то такое соотношение будет ложным (false), так как код символа ' k ' равен 170, а символ ' t ' -226. Можно проверять символьные величины также на равенство или неравенство друг другу. Знаки для операций сравнения символьных величин используются те же, что и для числовых величин.

Символьная строка

Очень часто требуется работать не с одним символом, а с несколькими (например, ввести имена и фамилии учащихся и вывести их в алфавитном порядке). Для такого рода данных существует тип STRING (строка).

Строка — это последовательность символов кодовой таблицы персонального компьютера. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Для определения данных строкового типа используется идентифи­катор String, за которым следует заключенное в квадратные скобки значение мак­симально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт.

Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант. Недопустимо применение строковых переменных в качестве селектора в операторе Case. Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.

Формат описания строкового типа

Переменную типа String можно задать следующим образом:

Var <идентификатор, . . . > : String [максимальная длина строки];

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

Фрагмент описания строковых данных

Const

Address = 'ул. Переверткина, 25'; {Строковая константа}

St1 : String; {По умолчанию длина строки St1= 255}

St2, St3 : string[50] ;

Nazv : string[280]; (Ошибка, длина строки Nazv превышает 255}

Строка в языке Турбо Паскаль трактуется как цепочка символов. (Для строки из N символов отводится N+1 байт; N байт - для хранения символов строки, а один байт - для значения текущей длины строки).

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

0

1

2

3

N+1

N

текущая длина строки

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

Например, для раз­мещения в памяти переменных Fstr, St1, St2 требуется соответственно 126, 35 и 51 байт (см. приведенный выше пример).

Рассмотрим структуру размещения строки в памяти на следующем примере. Пусть М — максимальная длина строки, L — текущая длина, А — ячейка памяти.

Тогда:

А —содержит величину текущей длины;

А+1 — первый символ строки;

A+L — последний значащий символ;

A+L+1

… — незанятые ячейки памяти

А+М

Следующая программа запрашивает ваше имя, а потом здоровается с вами:

PROGRAM prog3;

VAR s: STRING;

BEGIN

writeln('Как Вас зовут?'); readln(s); writeln('Привет, ', s, '!');

END.

Окно ввода/вывода:

Как Вас зовут?

Вася

Привет, Вася!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]