PROCEDURE …;
CONST
N = ’нос’;
R = ’рог’;
B = ’бараний’;
K = ’Кривой’;
T = ’Таганий’;
VAR
S: STRING;
BEGIN
S:= N + ’о’ + R; // S = ’носорог’
S:= B + ’ ’ +R; // S = ’бараний рог’
S:= K + ’ ’ +R; // S = ’Кривой рог’
S:= T + ’ ’ +R // S = ’Таганий рог’
END;
Над данными строковых типов определены также операции отношения
=, <>, <, >, <=, >=.
Пусть S1 и S2 – две строки необязательно одинаковой длины, и пусть L1 – длина строки S1, а L2 – длина строки S2.
Допустим, что L1 = L2. В этом случае
условие S1 = S2 справедливо тогда и только тогда, когда значение каждого из элементов строки S1 совпадает со значением соответствующего элемента строки S2;
условие S1 < S2 справедливо тогда и только тогда, когда значение какого-либо элемента строки S1 оказывается меньше значения соответствующего элемента строки S2, а значение каждого из предшествующих элементов строки S1 совпадает со значением соответствующего элемента строки S2;
условие S1 > S2 справедливо тогда и только тогда, когда S2 < S1.
Предположим, что L1 < L2. Символами ST1 и ST2 обозначим следующие строки
|
|
|
ST2 = S2.
Условие S1 < S2 справедливо тогда и только тогда, когда либо ST1 = ST2, либо ST1 < ST2;
условие S1 > S2 справедливо тогда и только тогда, когда ST1 > ST2;
условие S2 < S1 эквивалентно условию S1 > S2;
условие S2 > S1 эквивалентно условию S1 < S2.
Пусть L1 ≤ L2.
Условия
S1 <= S2,
S1 >= S2,
S1 <> S2
эквивалентны соответственно следующим условиям
(S1 < S2) OR (S1 = S2),
(S1 > S2) OR (S1 = S2),
NOT (S1 = S2).
Условия
S2 <= S1,
S2 >= S1,
S2 <> S1
эквивалентны соответственно следующим условиям
S1 >= S2,
S1 <= S2,
S1 <> S2.
Приведём примеры истинных условий
’AB’ = ’AB’,
’AB’ < ’AC’,
’AB’ < ’ABC’,
’AB’ < ’AB’#0,
’ABC’ < ’AC’,
’AC’ > ’ABC’.