ПОРІВНЯННЯ РЯДКІВ

Рядки можна вказувати в умовах оператора IF у поєднанні з усіма операціями порівняння При перевірці на збіг рядка по обом частинам від знаку = повинні бути ідентичні з урахуванням як провідних, так і кінцевих прогалин Наприклад, умова оператора

IF А $ = ЧОМУ THEN 100

виконано в тому випадку, якщо значення А $ одно ЧОМУ, але не виконано, якщо воно дорівнює

ЧОМУ , або ЧОМУ , або будь-якого іншого значенням

Можна використовувати і операції < (Менше) або> (Більше) Стосовно до рядків операція < інтерпретується як "молодший в алфавітному порядку", а операція> як старше в алфавітному порядку .

Тільки що сказане вимагає деяких застережень, а саме як чинити зі спеціальними символами або цифрами Відповідь на це питання проста: при порівнянні строкових значень ЕОМ зіставляє внутрішні числові коди символів і на основі цього зіставлення встановлює виконання відносини < або> Так, якщо символ 1 має менший числовий код, ніж символ 2, то символ 1 < "Символ 2". У більшості ЕОМ (але не у всіх) для внутрішнього представлення символів використовуються коди ASCII (див. додаток II). У будь-якому випадку у Вашій системі повинна бути перед-

Таблиця 42 Деякі приклади кодів ASCII

Символ

*

+

0

9

А

Н

Z

а

h

z

Код (деся-

частковий)

42

43

45

48

57

65

72

90

97

104

122

Мотря функція, що дозволяє знайти числовий код, відповідний кожному символу У табл 42

наведено кілька прикладів кодів ASCII Врахуйте, що деякі спеціальні символи передують цифрам 0 – 9, а самі цифри передують прописним буквах Малі літери виявляються майже в самому кінці списку сімволов1

Рядки неважко відсортувати за алфавітом, оскільки між рядком, що починається з А, і рядком, що починається з В, справедливо відношення <, і т д Наприклад, виконані співвідношення CAR < "CARD" < "CARTER" < "CAT" а також

Нижче наводиться проста програма, що демонструє деякі з подібних співвідношень

Спробуйте виконати її на своїй ЕОМ

10 REM ТЕСТ, демонструйте СИМВОЛІВ

20 IF IF &quotA&quot&lt&quotB&quot THEN PRINT &quotA&ltB&quot

30 IF &quot0&quot&lt&quot8&quot THEN PRINT &quot0&lt8&quot

4(8 IF &quot0&quot&lt&quotD&quot THEN PRINT &quot0&ltD&quot

50 IF &quotX&quot = &quotXX&quot THEN PRINT &quotX=XX&quot

60 IF &quotX&quot&lt&quotXX&quot THEN PRINT &quotX&ltXX&quot

70 IF &quotCART HORSE&quot&lt&quotCARTER&quot THEN PRINT &quotCART HORSE&ltCARTER&quot

80 END RUN A&ltB 0&lt8

0&ltD X&ltXX

CART HORSE&ltCARTER END AT LINE 80

Наступна програма ілюструє елементарний метод сортування трьох рядків за алфавітом Якби замість строкових були використані числові змінні, то програма відсортувала б їх у порядку зростання Для сортування великого числа рядків використаний у цій програмі метод

Все сказане відноситься до латинських буквах У багатьох вітчизняних обчислювальних системах і зовнішніх пристроях прийнята система кодування, в якій прописні російські літери заміщають рядкові латинські і ще кілька відносно рідко використовуваних знаків Таким чином виходить набір символів, що включає великі літери латинського та російського алфавітів і не містить малих літер На жаль, в цій системі коди прописних російських букв не впорядковані за алфавітом і відсортувати рядки з російських букв так, як показано далі, не можна – Прим перев

малопридатний Набагато більш ефективна програма сортування наводиться в розд 45

10 REM ЕЛЕМЕНТАРНА СОРТИРОВКА

28    INPUT A$,B$,C$

30 REM перевірити перший ПАРУ І помінялися місцями, ЯКЩО

35 REM ЙДУТЬ НЕ ПО ПОРЯДКУ

40   IF A

Рядки можна вказувати в умовах оператора IF у поєднанні з усіма операціями порівняння. При перевірці на збіг рядка по обом частинам від знаку = повинні бути ідентичні з урахуванням як провідних, так і кінцевих прогалин. Наприклад, умова оператора

IF А $ = “ЧОМУ” THEN 100

виконано в тому випадку, якщо значення А $ одно “ЧОМУ”, але не виконано, якщо воно дорівнює “

ЧОМУ “, або” ЧОМУ “, або будь-якого іншого значенням.

Можна використовувати і операції < (Менше) або> (Більше). Стосовно до рядків операція < інтерпретується як "молодший в алфавітному порядку", а операція> як “старше в алфавітному порядку “.

Тільки що сказане вимагає деяких застережень, а саме як чинити зі спеціальними символами або цифрами? Відповідь на це питання проста: при порівнянні строкових значень ЕОМ зіставляє внутрішні числові коди символів і на основі цього зіставлення встановлює виконання відносини < або>. Так, якщо “символ 1” має менший числовий код, ніж “символ 2”, то “символ 1” < "Символ 2". У більшості ЕОМ (але не у всіх) для внутрішнього представлення символів використовуються коди ASCII (див. додаток II). У будь-якому випадку у Вашій системі повинна бути перед-

Таблиця 4.2. Деякі приклади кодів ASCII

Символ

*

+

0

9

А

Н

Z

а

h

z

Код (деся-

частковий)

42

43

45

48

57

65

72

90

97

104

122

Мотря функція, що дозволяє знайти числовий код, відповідний кожному символу. У табл. 4.2

наведено кілька прикладів кодів ASCII. Врахуйте, що деякі спеціальні символи передують цифрам 0 – 9, а самі цифри передують прописним буквах. Малі літери виявляються майже в самому кінці списку сімволов1.

Рядки неважко відсортувати за алфавітом, оскільки між рядком, що починається з А, і рядком, що починається з В, справедливо відношення <, і т. д. Наприклад, виконані співвідношення “CAR” < "CARD" < "CARTER" < "CAT" а також

Нижче наводиться проста програма, що демонструє деякі з подібних співвідношень.

Спробуйте виконати її на своїй ЕОМ.

10 REM ТЕСТ, демонструйте СИМВОЛІВ

20 IF IF "A"<"B" THEN PRINT "A<B"

30 IF "0"<"8" THEN PRINT "0<8"

4(8 IF "0"<"D" THEN PRINT "0<D"

50 IF "X" = "XX" THEN PRINT "X=XX"

60 IF "X"<"XX" THEN PRINT "X<XX"

70 IF "CART HORSE"<"CARTER" THEN PRINT "CART HORSE<CARTER"

80 END RUN A<B 0<8

0<D X<XX

CART HORSE<CARTER END AT LINE 80

Наступна програма ілюструє елементарний метод сортування трьох рядків за алфавітом. Якби замість строкових були використані числові змінні, то програма відсортувала б їх у порядку зростання. Для сортування великого числа рядків використаний у цій програмі метод

Все сказане відноситься до латинських буквах. У багатьох вітчизняних обчислювальних системах і зовнішніх пристроях прийнята система кодування, в якій прописні російські літери заміщають рядкові латинські і ще кілька відносно рідко використовуваних знаків. Таким чином виходить набір символів, що включає великі літери латинського та російського алфавітів і не містить малих літер. На жаль, в цій системі коди прописних російських букв не впорядковані за алфавітом і відсортувати рядки з російських букв так, як показано далі, не можна. – Прим. перев.

малопридатний. Набагато більш ефективна програма сортування наводиться в розд. 4.5.

10 REM ЕЛЕМЕНТАРНА СОРТИРОВКА

28    INPUT A$,B$,C$

30 REM перевірити перший ПАРУ І помінялися місцями, ЯКЩО

35 REM ЙДУТЬ НЕ ПО ПОРЯДКУ

40   IF A$<B$ THEN 90 50   X$=A$

60   A$=B$

70   B$=X$

80 REM перевірити наступні ПАРУ І помінялися місцями, ЯКЩО

85 REM ЙДУТЬ НЕ ПО ПОРЯДКУ

90   IF B$<C$ THEN 150 100   X$=B$

110  B$=C$

120   C$=X$

130 REM ТАК ЯК ЗНАЧЕННЯ переставляючи. ЗНОВУ перевірило

135 REM ПЕРШУ ПАРУ

140   GOTO 40

150 PRINT “АБЕТКОВИЙ ПОРЯДОК СЛІВ:”

160  PRINT AS,B$,C$

170   END RUN

?LARA,ANN,BETTY

АБЕТКОВИЙ ПОРЯДОК СЛІВ:

ANN                          BETTY                      LARA

END AT LINE 170

Джерело: Уолш Б. Програмування на Бейсике: Пер. з англ. М.: Радіо і зв’язок, 1988. 336 с: ил.

ltB$ THEN 90 50   X$=A$

60   A$=B$

70   B$=X$

80 REM перевірити наступні ПАРУ І помінялися місцями, ЯКЩО

85 REM ЙДУТЬ НЕ ПО ПОРЯДКУ

90   IF B

Рядки можна вказувати в умовах оператора IF у поєднанні з усіма операціями порівняння. При перевірці на збіг рядка по обом частинам від знаку = повинні бути ідентичні з урахуванням як провідних, так і кінцевих прогалин. Наприклад, умова оператора

IF А $ = “ЧОМУ” THEN 100

виконано в тому випадку, якщо значення А $ одно “ЧОМУ”, але не виконано, якщо воно дорівнює “

ЧОМУ “, або” ЧОМУ “, або будь-якого іншого значенням.

Можна використовувати і операції < (Менше) або> (Більше). Стосовно до рядків операція < інтерпретується як "молодший в алфавітному порядку", а операція> як “старше в алфавітному порядку “.

Тільки що сказане вимагає деяких застережень, а саме як чинити зі спеціальними символами або цифрами? Відповідь на це питання проста: при порівнянні строкових значень ЕОМ зіставляє внутрішні числові коди символів і на основі цього зіставлення встановлює виконання відносини < або>. Так, якщо “символ 1” має менший числовий код, ніж “символ 2”, то “символ 1” < "Символ 2". У більшості ЕОМ (але не у всіх) для внутрішнього представлення символів використовуються коди ASCII (див. додаток II). У будь-якому випадку у Вашій системі повинна бути перед-

Таблиця 4.2. Деякі приклади кодів ASCII

Символ

*

+

0

9

А

Н

Z

а

h

z

Код (деся-

частковий)

42

43

45

48

57

65

72

90

97

104

122

Мотря функція, що дозволяє знайти числовий код, відповідний кожному символу. У табл. 4.2

наведено кілька прикладів кодів ASCII. Врахуйте, що деякі спеціальні символи передують цифрам 0 – 9, а самі цифри передують прописним буквах. Малі літери виявляються майже в самому кінці списку сімволов1.

Рядки неважко відсортувати за алфавітом, оскільки між рядком, що починається з А, і рядком, що починається з В, справедливо відношення <, і т. д. Наприклад, виконані співвідношення “CAR” < "CARD" < "CARTER" < "CAT" а також

Нижче наводиться проста програма, що демонструє деякі з подібних співвідношень.

Спробуйте виконати її на своїй ЕОМ.

10 REM ТЕСТ, демонструйте СИМВОЛІВ

20 IF IF "A"<"B" THEN PRINT "A<B"

30 IF "0"<"8" THEN PRINT "0<8"

4(8 IF "0"<"D" THEN PRINT "0<D"

50 IF "X" = "XX" THEN PRINT "X=XX"

60 IF "X"<"XX" THEN PRINT "X<XX"

70 IF "CART HORSE"<"CARTER" THEN PRINT "CART HORSE<CARTER"

80 END RUN A<B 0<8

0<D X<XX

CART HORSE<CARTER END AT LINE 80

Наступна програма ілюструє елементарний метод сортування трьох рядків за алфавітом. Якби замість строкових були використані числові змінні, то програма відсортувала б їх у порядку зростання. Для сортування великого числа рядків використаний у цій програмі метод

Все сказане відноситься до латинських буквах. У багатьох вітчизняних обчислювальних системах і зовнішніх пристроях прийнята система кодування, в якій прописні російські літери заміщають рядкові латинські і ще кілька відносно рідко використовуваних знаків. Таким чином виходить набір символів, що включає великі літери латинського та російського алфавітів і не містить малих літер. На жаль, в цій системі коди прописних російських букв не впорядковані за алфавітом і відсортувати рядки з російських букв так, як показано далі, не можна. – Прим. перев.

малопридатний. Набагато більш ефективна програма сортування наводиться в розд. 4.5.

10 REM ЕЛЕМЕНТАРНА СОРТИРОВКА

28    INPUT A$,B$,C$

30 REM перевірити перший ПАРУ І помінялися місцями, ЯКЩО

35 REM ЙДУТЬ НЕ ПО ПОРЯДКУ

40   IF A$<B$ THEN 90 50   X$=A$

60   A$=B$

70   B$=X$

80 REM перевірити наступні ПАРУ І помінялися місцями, ЯКЩО

85 REM ЙДУТЬ НЕ ПО ПОРЯДКУ

90   IF B$<C$ THEN 150 100   X$=B$

110  B$=C$

120   C$=X$

130 REM ТАК ЯК ЗНАЧЕННЯ переставляючи. ЗНОВУ перевірило

135 REM ПЕРШУ ПАРУ

140   GOTO 40

150 PRINT “АБЕТКОВИЙ ПОРЯДОК СЛІВ:”

160  PRINT AS,B$,C$

170   END RUN

?LARA,ANN,BETTY

АБЕТКОВИЙ ПОРЯДОК СЛІВ:

ANN                          BETTY                      LARA

END AT LINE 170

Джерело: Уолш Б. Програмування на Бейсике: Пер. з англ. М.: Радіо і зв’язок, 1988. 336 с: ил.

ltC$ THEN 150 100   X$=B$

110  B$=C$

120   C$=X$

130 REM ТАК ЯК ЗНАЧЕННЯ переставляючи ЗНОВУ перевірило

135 REM ПЕРШУ ПАРУ

140   GOTO 40

150 PRINT АБЕТКОВИЙ ПОРЯДОК СЛІВ:

160  PRINT AS,B$,C$

170   END RUN

?LARA,ANN,BETTY

АБЕТКОВИЙ ПОРЯДОК СЛІВ:

ANN                          BETTY                      LARA

END AT LINE 170

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*