Сравнение строковых переменных. Преобразование строчных и прописных букв.
Над строковыми переменными тоже можно производить операции сравнения. Больше будет та переменная, которая начинается с символов, более близких к концу алфавита, т. е. имеющих больший код, а если символы совпадают, то более длинное слово. Строковые переменные считаются идентичными, если они полностью тождественны. Если они отличаются пробелами в начале или конце, то они уже не идентичны!
Например:
"DOG" > "CAT", но "ELEFANT" < "MOUSE" "TIGER2" > "TIGER1" "M16 " > "M16"
229. Напишите программу, проверяющую, является ли введенное слово или фраза палиндромом, т. е. читающемся слева направо и справа налево одинаково (например, шалаш, казак, А роза упала на лапу Азора). Программа сообщает "Да, это палиндром", или "Нет, это не палиндром" и выводит на экран введенный текст в варианте слева направо и справа налево. Здесь необходим цикл посимвольного чтения от N (длины текста) до 1.
230. Напишите программу, подсчитывающую количество слогов во введенном слове.
231. В операторе data перечислены 10 слов. Напишите программу, которая:
- напечатает все слова из списка, отличные от слова "SUN";
- напечатает слово, ближайшее к началу алфавита в списке (считаем, что все слова различны; выполнять аналогично поиску минимального из ряда чисел);
- слово, составленное из последних символов всех слов списка;
- все слова из списка, содержащие три буквы.
232. В тексте, содержащем между словами от 1 до 3 пробелов, оставить только по одному.
233. Подсчитать, сколько раз входит каждый символ в данную строку.
234. Написать программу шифратор и дешифратор, ставящую в соответствие русским символам соответствующие латинские и наоборот (аналог так называемого конвертора).
Преобразование строчных и прописных букв
Если ваш текст напечатан строчными буквами, вы хотите заменить его прописными или наоборот, не надо заново его набирать. Для этого есть две функции:
? ucase$ (строковая_переменная) – преобразует все буквы строки в прописные. ? lcase$ (строковая_переменная) – преобразует все буквы стро-ки в строчные.
К сожалению, эти функции применимы только к латинскому алфавиту.
Пример:
CLS N$="1 have 5" R$=" рублей" ? N$;R$ N1$=UCASE$(N$) R1$=UCASE$(R$) ? N1$, Rl$
Результатом работы программы будет следующее:
I have 5 рублей I HAVE 5 рублей
Функции эти очень полезны, когда мы просим пользователя ввести один из возможных ответов, например "YES" или "NO", или просто "Y" или "N", а пользователь, естественно, может ввести ответ как строчными, так и прописными буквами. В таком случае, с помощью функций ucase$ или lcase$ сначала надо привести ответ к требуемому виду, а потом проверять условие. Например:
INPUT "Будете еще играть? (Y/N); N$ IF UCASE$(N$)="N" THEN?"До свидания"