Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






     

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

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.