Занятие
23
СИМВОЛЬНЫЕ
ПЕРЕМЕННЫЕ
Обработка
текстовой информации
Очень часто в
программах требуется использовать символьные или строчные переменные. Что же
это такое? Это переменные, значениями которых являются либо алфавитно-цифровые
символы, либо несколько таких символов.
Строки -
последовательность алфавитно-цифровых символов.
Для того, чтобы
использовать такие переменные в программе необходимо добавлять справа от
переменной символ $.
s$="Тоже строка
987"
Перед запуском программы
всем символьным переменным присваивать значение пусто “”. Для ввода в программу
заранее известных значений символьных переменных используются такие же приемы и
операторы, как для числовых данных.
Операции с текстовыми
переменными.
1. Сцепление.
Строчные переменные можно
склеивать. Для склеивания строк (конкатенации) используют знак плюс (+).
s1$="Привет! "
s2$="Меня
зовут Саша."
s$=s1$+s2$
PRINT s$
На экране появится надпись: Привет!
Меня зовут Саша.
2. Сравнение.
Строчные переменные можно
сравнивать друг с другом. Для сравнения срок используют операции: >, <,
=, >=, <=, <>. Эти операции позволяют сравнивать литеры в ASCII –кодах.
Коды ASCII для символов:
Для цифр от 0 до
9 48 – 57
A, B, C….Z
65 – 90
Пробел 32
a, b, c…z 97 – 122
Русские
заглавные 128 – 156
Русские прописные а –
п 160 – 175
от р – я 224 – 239
Пример:REM Сравнение строк
s1$="abc"
s2$="abc"
s3$="klmn"
IF s1$=s2$ THEN PRINT "Строки равны"
IF s1$=s3$ THEN PRINT "Строки равны"
END
Программа выведет
"Строки равны” только один раз.
Функции для работы со
строками:
LEN(s$)
|
Вычисляет длину строки
(количество символов).
|
LEFT$(s$,n)
|
Извлекает n левых символов
из s$,
цепочка s$ остается неизменной. Функция позволяет уничтожить одну
или несколько литер, расположенных справа в заданной цепочке литер s$.
|
RIGHT$(s$,n)
|
Извлекает n правых
символов из s$, цепочка s$ остается неизменной. Функция позволяет
уничтожить одну или несколько литер, расположенных слева в заданной цепочке
литер s$.
|
MID$(s$,n,k)
|
Выделяет из строки s$ k
символов начиная с n-го символа.
|
INSTR(n,s$,a$)
|
Выдает номер позиции в
цепочке символов s$, где начинается совпадение символов a$, начиная с
позиции n. Если совпадения нет выдается 0.
|
VAL(s$)
|
Преобразует числовую
часть начала строки в число.
|
STR$(x)
|
Преобразует число в
символьную форму.
|
ASC(s$)
|
Вычисляет десятичный
код символа.
|
CHR$(x)
|
Преобразует код в
символ.
|
INKEY$
|
Функция опроса клавиш,
нажатых на клавиатуре.
|
Функция
LEN(s$) количество символов в
строке.
CLS
INPUT A$
K=LEN(A$)
PRINT K
Функция
LEFT$(s$,n) Извлекает
n
левых символов из s$, цепочка s$ остается неизменной. Функция позволяет уничтожить
одну или несколько литер, расположенных справа в заданной цепочке литер s$.
CLS
INPUT A$
C$=LEFT$(A$,2)
PRINT C$
Если
не знаем сколько символов в строке, а надо отбросить две последних.
CLS
INPUT A$
C$=LEFT$(A$,LEN(A$)-2)
PRINT C$
Функция
RIGHT$(s$,n) Извлекает
n
правых символов из s$, цепочка s$ остается неизменной. Функция позволяет уничтожить
одну или несколько литер, расположенных слева в заданной цепочке литер s$.
CLS
INPUT A$
C$=RIGHT$(A$,2)
PRINT C$
Если
не знаем сколько символов в строке, а надо отбросить две первые.
CLS
INPUT A$
C$=RIGHT$(A$,LEN(A$)-3)
PRINT C$
Функция
MID$(s$, k, n) извлекает
n последовательных символов из цепочки s$, начиная с, если аргумент n не задан, то выделяются все символы до конца,
начиная с k.
CLS
INPUT A$
C$=MID$(A$,2,4)
PRINT C$
Функция
INSTR(n, s$, a$) анализирует
текстовую информацию, обеспечивает поиск значения a$ в значении s$, поиск
начинается либо с 1, либо с n позиции значения если процедура поиска завершена
успешно и в тексте s$ найден a$, то функция возвращает значение позиции, начиная
с которой обнаружено первое совпадение. Для поиска следующего совпадения нужно
передвинуть указатель поиска n за обнаруженную позицию и повторить вызов функции.
Если искомый элемент отсутствует, то значение функции становится равным нулю.
CLS
INPUT A$
K = INSTR(1, “abcd”, “abc”)
PRINT K
Задача 1. Подсчитать
количество слов в предложении.
CLS
INPUT A$
A$=A$ + “‗“
K = 0
FOR I = 1 TO LEN(A$)
IF MID$(A$, I, 1) = “‗“ THEN K = K + 1
NEXT I
PRINT “Количество
слов”; K
Задача 2. Сколько
раз встречается буква К в предложении.
CLS
INPUT A$
K = 0
FOR I = 1 TO LEN(A$)
IF MID$(A$, I, 1) = “К“ THEN K = K + 1
NEXT I
PRINT “Количество
букв”; K
Задача 3. Сколько
раз встречается сдвоенные буквы нн в предложении.
CLS
INPUT A$
K = 0
FOR I = 1 TO LEN(A$)
IF MID$(A$, I, 1) = “нн“ THEN K = K + 1
NEXT I
PRINT “Количество
нн =”; K
Задача 4. Сколько
слов в предложении начинается с буквы А.
CLS
INPUT A$
A$=“‗“ + A$
K = 0
FOR I = 1 TO LEN(A$)
IF MID$(A$, I, 2) = “‗а“ THEN K = K + 1
NEXT I
PRINT “Количество слов
=”; K
Задача 5. Сколько
слов в предложении заканчиваются на букву А.
CLS
INPUT A$
A$=A$ + “‗“
K = 0
FOR I = 1 TO LEN(A$)
IF MID$(A$, I, 2) = “а‗ “ THEN K = K + 1
NEXT I
PRINT “Количество
слов =”; K
Задача 6. Заменить
в предложении все буквы А на буквы О.
CLS
INPUT A$
K = 0
FOR I = 1 TO LEN(A$)
IF MID$(A$, I, 1) = “а “ THEN MID$(A$,
I, 1) = “о “
NEXT I
PRINT A$
Задача 7. Напечатать
часть текста заключенного между двух :.
CLS
INPUT A$
K = INSTR(1, A$, “:”)
K1 = INSTR(K + 1, A$, “:”)
C$ = MID$(A$, K + 1, K1 – K - 1)
PRINT C$
Домашнее задание.
Напечатать часть текста начиная со второго : до конца
CLS
INPUT A$
K = INSTR(1, A$, “:”)
K1 = INSTR(K + 1, A$, “:”)
C$ = MID$(A$, K1 + 1)
PRINT C$
Напечатать
заданное слово зеркально наоборот.
CLS
INPUT A$
B$ = “‗“
FOR I = LEN(A$) TO 1 STEP -1
C$ = MID$(A$, I, 1)
B$ = B$ + C$
NEXT I
PRINT B$
Выяснить какое слово
встречается раньше на букву А или на букву М.
CLS
INPUT A$
A$=“‗“ + A$
K = INSTR(1, A$, “‗а”)
K1 = INSTR(1, A$, “‗м”)
IF K < K1 THEN PRINT “а раньше” ELSE PRINT
“м раньше”
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.