Функции для работы с текстами
Функция LEN предназначена для определения длины символьного выражения
Формат:
LEN (текст)
Функция определяет длину значения строкового выражения.
Например:
T$=”Москва”
K=LEN(T$)
PRINT “длина текста = “;K
<На экране появится: длина текста = 6>
В QBASIC существует несколько функций, позволяющих выделять символы из текстового выражения.
ФункцияLEFT$возвращает строку символов из n левых символов
Формат:
LEFT$(текст, n)
Например:
T$=”контрабас”
A$=LEFT$(T$,6)
? A$
<На экране появится: контра>
ФункцияRIGHT$возвращает строку символов из n правых символов
Формат:
RIGHT$(текст,n)
Например:
T$=”контрабас”
A$=RIGHT$(T$,3)
? A$
<На экране появится: бас>
Если число n больше длины текста, то обе функции возвращают весь исходный текст.
ФункцияMID$(возвращает фрагмент из текста: n символов, начиная с k-го символа.
Формат:
MID$(текст,k,[n])
К – порядковый номер символа.
N – количество символов, подлежащих обработке.
Например:
T$=”информатика”
A$=MID(T$,3,5)
? A$
<На экране появится: форма>
Если n не указано, то функция возвращает символы начиная с к-го и до конца текста.
Например:
T$=”Москва, Париж и Лондон”
A$=MID(T$,9)
? A$
<На экране появится: Париж и Лондон>
Пример 1. Задан текст. Подсчитать каких букв в тексте больше “а” или “о” и на сколько.
LINE INPUT “введите текст”;T$
L=LEN(T$)
KA=0 : KO=0
FOR I=1 TO L
IF MID$(T$,I,1)=”A” OR MID$(T$,I,1)=”a” THEN KA=KA+1
IF MID$(T$,I,1)=”O” OR MID$(T$,I,1)=”o” THEN KO=KO+1
NEXT I
IF KA>KO THEN PRINT “Букв а больше, чем о на “;KA-KO
IF KO>KA THEN PRINT “Букв o больше, чем a на “;KO-KA
IF KA=KO THEN PRINT “Букв а и о равное количество “
Пример 2. Задан текст. Подсчитать сколько предложений в тексте.
LINE INPUT “введите текст”;T$
L=LEN(T$)
К=0
FOR I=1 TO L
IF MID$(T$,I,1)=”.” OR MID$(T$,I,1)=”!” OR MID$(T$,I,1)=”?” THEN K=K+1
NEXT I
PRINT “В тексте “;K;” предложений”
Пример 3. Дано слово “информатика”. Составить из букв этого слова 3 новых слова.
T$=”информатика”
T1$=MID$(T$,3,3)+MID$(T$,7,1)
T2$=MID$(T$,5,1)+LEFT$(T$,1)+MID$(T$,3,1)+MID$(T$,6,2)
T3$=MID$(T$,2,1)+MID$(T$,4,2)+RIGHT$(T$,2)
PRINT T1$;”, “;T2$;”, “;T3$
<на экране появится: фора, рифма, норка>
Пример 4. Дано слово. Выяснить является ли это слово перевертышем, то есть читается слева направо и наоборот одинаково. Например “казак”.
LINE INPUT “Введите слово”;T$
M$=””
FOR I=LEN(T$) TO 1 STEP -1
M$=M$+MID$(T$,I,1)
NEXT I
IF T$=M$ THEN PRINT “Да является” ELSE PRINT “Нет не является”
Для самостоятельного решения:
Задание1:
Задано слово “энциклопедия”. Кто составит больше слов из букв этого слова и кто составит самое длинное слово
Задание 2:
Задано слово. Напечатать это слово в обратном порядке.
Задание 3:
Задан текст. Напечатать каждое предложение этого текста с новой строки.
ФункцияINSTR ищет подстроку в строке начиная с позиции n. Если n не задано, то поиск осуществляется с первой позиции. Функция INSRT дает номер позиции, начиная с которой заданная подстрока появляется в исходной строке. Функция возвращает 0, если подстрока не найдена в строке.
Формат:
INSTR([n],текст,подстрока)
Например:
T$=”информатика”
A$=”форма”
N=INSTR(1,T$,A$)
? N
<На экране появится: 3>
Пример 1. Задан текст. Подсчитать сколько раз в тексте встречается словосочетание “кот”.
1 способ:
LINE INPUT “Введите текст”;T$
L=LEN(T$)
FOR I=1 TO L
IF MID(T$,I,3)=”кот” THEN K=K+1
NEXT I
? “Количество словосочетаний кот = ”;K
2 способ:
LINE INPUT “Введите текст”;T$
T=INSTR(1,T$,”кот”)
WHILE T<>0
K=K+1
T=INSTR(T+1,T$,”кот”)
WEND
? “Количество словосочетаний кот = ”;K
Пример 2. Задан текст, в котором есть несколько двоеточий. Напечатать текст между первыми двумя двоеточиями.
LINE INPUT “Введите текст”;T$
T1=INSTR(1,T$,”:”)
T2=INSTR(T1+1,T$,”:”)
PRINT MID$(T$,T1+1,T2-T1-1)
Пример 3. Задан текст. Подсчитать количество слов в первом предложении. Слова разделены пробелом.
1 способ
LINE INPUT “Введите текст”;T$
K=1
PT=INSTR(T$,”.”)
FOR I=1 TO PT
IF MID$(T$,I,1)=” “ THEN K=K+1
NEXT I
PRINT”Количество слов в первом предложении=”;K
2 способ
LINE INPUT “Введите текст”;T$
K=1
I=1
WHILE MID$(T$,I,1)<>”.”
IF MID$(T$,I,1)=” “ THEN K=K+1
I=I+1
WEND
PRINT”Количество слов в первом предложении = ”;K
Пример 4. Задан текст. Подсчитать количество слов «ученик» в последнем предложении.
LINE INPUT “Введите текст”;T$
K=0
I= Len(T$)-1
WHILE MID$(T$,I,1)<>”.”
B$= MID$(T$,I,8)
IF B$=” ученик “ OR B$=” Ученик “ THEN K=K+1
I=I-1
WEND
PRINT”Количество слов ученик в последнем предложении = ”;K
Оператор MID$замещает часть строковой переменной другой строкой.
MID$(строк_переменная$,k[,n])=строк_выражение$
строк_выражение$ - строка, из которой функция MID$ возвращает подстроку, или строка замещения, используемая в операторе MID$. Может быть любым строковым выражением.
K - позиция первого возвращаемого или замещаемого символа в строке.
N - число символов в подстроке. Если длина опущена, MID$ возвращает или замещает все символы справа от начальной позиции.
строк_переменная$ - строковая переменная, изменяемая оператором MID$.
Пример:
Text$ = "Париж, Франция"
PRINT Text$ 'Вывод: Париж, Франция
MID$(Text$, 8) = "Сиэтл "
PRINT Text$ 'Вывод: Париж, Сиэтл
Функция INKEY$ или как получить власть над клавиатурой
Функция INKEY$ предназначена для поддержки интерфейса между программой и клавиатурой. Предположим, необходимо создать паузу ожидания в определенном месте программы. Чтобы организовать такую паузу, нужно использовать условный цикл, в котором проверяется значение, возвращаемое функцией INKEY$.
Например:
PRINT “Нажмите любую клавишу
WHILE INKEY$ = “”
WEND
В этом случае программа будет находиться в режиме ожидания до момента нажатия произвольной клавиши. Однако можно задать и конкретную клавишу, по нажатию на которую выполнение программы будет продолжено.
Например:
PRINT “Нажмите ‘ESC’ “
WHILE INKEY$ <> CHR$(27)
WEND
(27 – код ASCII для клавиши ‘ESC’)
Каждая клавиша имеет свой код ASCII. Обращаясь к функции INKEY$, нельзя забывать, что она используется только вместе с условным циклом.
Дата добавления: 2016-06-15; просмотров: 2206;