Лекция: Сравнение текстовых переменных
Сравнение текстовых переменных проводится с помощью стандартных операторов сравнения: =, >, <, >=, <=, <>. В ходе сравнения компьютер анализирует три основных параметра: количество символов, последовательность ASCII кодов и номера ASCII — кодов. Программа анализирует только соответствующие знаки: первый знак первой переменной сравнивается с первым знаком второй переменной, второй знак со вторым и так далее.
Переменные равны, если они содержат равное количество одинаковых знаков, расположенных в одинаковой последовательности.
Сравнение текстовых переменных: равенство | ||
Равны | Не равны | Причина |
«aa»=«aa» | «aa»¹" aa" | Разное число знаков |
«10»=«10» | «10»¹«01 | Нарушена последовательность знаков |
»Аврора"=«Аврора» | «Аврора»¹«аврора» | «А» и «а» имеют разный код |
«QB» = «Q» + «B» | «norma»¹«почта» | На разных языках |
Сравнивать переменные на равенство и выводить сообщение о результате можно в алгоритмах на основе оператора IF: INPUT A$: INPUT B$ IF A$ — В$ THEN PRINT «Равны» ELSE PRINT «He равны»
Одна текстовая переменная больше другой, если в ходе опарного сравнения, соответствующих знаков очередной ее символ имеет ASCII-код больше, чем соответствующий знак сравниваемой переменной. Как только обнаруживается знак, ASCII-код которого больше или меньше, чем у соответствующего знака второй переменной, процесс сравнения заканчивается и программа выводит результат.
Этот же принцип используется при сортировке списков. Сначала машина сравнивает первые знаки. Если они равны, то сравниваются вторые, третьи и так далее. Таким образом, сортируют даже строки, имеющие в начале одинаковые наборы символов.
Сравнение текстовых переменных: неравенство | |
Больше | Причина |
«ww2» > «ww» | Три знака больше двух, если первые два знака равны |
«ww2» > «wwO» | ASII-код 2 (50), больше ASII-кода 0 (48) |
«f > „p“ | ASII-код буквы f (102) больше F (70) |
»A" > «A» | ASII-код русской буквы А (128) больше ASII-кода латинской буквы А (65) |
«file.dat» > «file.bas» | ASII-код буквы d больше b |
«21» > «2»+«00» | ASII-код цифры 1 больше, чем ASII-код цифры 0 |