Подпрограммы 33 Функции, определяемые пользователем 34 Работа со строковыми типами данных 36 Оператор line input 36

Вид материалаСправочник

Содержание


Работа со строковыми типами данных
Операции со строковыми данными
Функции для работы с текстами
LEFT$ возвращает строку символов из n левых символов Формат: LEFT
RIGHT$ возвращает строку символов из n правых символов Формат: RIGHT
MID$ (возвращает фрагмент из текста: n символов, начиная с k-го символа. Формат: MID
Для самостоятельного решения
Подобный материал:
1   2   3   4   5   6   7   8

Работа со строковыми типами данных

Оператор LINE INPUT



Оператор LINE INPUT позволяет ввести с клавиатуры строку длиной до 255 символов

Формат:

LINE INPUT “комментарии”,T$

T$ - строковая переменная.

Выполнение команды LINE INPUT проводится аналогично команде INPUT с той лишь разницей, что:
  • Вводится обязательно строковое и только одно значение;
  • За поясняющим сообщением нет знака вопроса;
  • Среди вводимых символов могут быть и запятая, и кавычки.

Например:

LINE INPUT”введите фамилии”,T$

<набираем: Иванов, Петров, Николаев >

после этого T$ будет содержать: Иванов, Петров, Николаев

Операции со строковыми данными



Со строковыми данными возможна одна операция конкатенация – объединение двух строковых последовательностей в одну.

Формат:

A$ + B$

Например:

A$=”Графический”

D$=” редактор”

T$=A$+B$

PRINT T$

<На экране появится: Графический редактор>

Функции для работы с текстами



Функция 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$ 'Вывод: Париж, Сиэтл