- Преподавателю
- Информатика
- Изучаем язык BASIC. Занятие 23. Символьные переменные. Обработка текстовой информации
Изучаем язык BASIC. Занятие 23. Символьные переменные. Обработка текстовой информации
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Гегелашвили Т.П. |
Дата | 12.08.2015 |
Формат | doc |
Изображения | Нет |
Занятие 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 "м раньше"