Пример 1

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 обозначим следующие строки

L2 – L1
ST1 = S1 + #0 … #0,

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’.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: