Изучаем язык BASIC. Занятие 23. Символьные переменные. Обработка текстовой информации

Раздел Информатика
Класс -
Тип Конспекты
Автор
Дата
Формат doc
Изображения Нет
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Занятие 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 "м раньше"


© 2010-2022