Иллюстрированный самоучитель по Basic, вводный курс

Функции LEFT$, RIGHT$ и MID$

Для получения фрагмента строки (или значения строковой переменной) применяются специальные функции.

Функция left$ выделяет из введенной строковой переменной n символов слева:

LEFT$(строковая_переменная, N)

Рассмотрим пример.

CLS
F$="ГАЗОНОКОСИЛЬВДК"
L$=LEFT$(F$, 5)
? L$

На экране появится слово "ГАЗОН", т. е. первые пять символов слева исходной строковой переменной.

Функция right$ вырезает из введенной строковой переменной N символов справа:

RIGHTS(строковая_переменная, N)

Например:

CLS
F$='TA30H0K0CIOTbII]HK" R$=RIGHT$(F$, 9)
? R$

На экране появится слово "КОСИЛЫЦИК", т. е. первые девять символов справа исходной строковой переменной.

Наконец, функция mid$ извлекает N2 символов, начиная с ni исходной строковой переменной:

MID$(строковая_переменная, N1, N2)

Например:

CLS
F$="ГА30Н0К0СИЛЫЦИК" M$=MID$(F$, 7, 4)? М$

На экране появится слово "КОСИ", т. е. четыре символа, начиная с седьмого исходной строковой переменной.

Используя эти функции для начала можно с их помощью поиграть в игру "Наборщик", когда из букв, составляющих какое-либо слово, нужно составить другие слова. Для этого предназначена функция конкатенации или, по-простому, слияния, которая записывается просто знаком +. Например:

CLS
F$="ГАЗОНОКОСИЛЬЩИК"
W1$=MID$(F$, 4, 2)+RIGHT$(F$, 7)
W2$=MID$(F$, 4, 2)+LEFT$(F$, 2)
W3$=MID$(F$, 9, 1)+MID$(F$, 7, 2)+MID$(F$, 11, 2) +MID$ (F$, 7.2)
? Wl$
? W2$
? W3$

Выполните упражнения.

226. Определите, какие слова получатся в результате выполнения приведенной выше программы?

227. Напишите программу, которая выдаст на экран пять слов максимальной длины из слова "ЭЛЕКТРИЧЕСТВО". Побеждает тот, у кого сумма букв во всех словах наибольшая.

В качестве очередного примера приведем задачу подсчета слов во введенном тексте. Как известно, для компьютера словом является последовательность символов, заключенная в пробелы с двух сторон. Подчеркиваю, это не обязательно слово, в привычном для нас понимании, а любой набор символов, например, 45ро9) или ВАР56+УР47. Поэтому, в простейшем случае, подсчет количества слов во введенном тексте сводится к подсчету количества пробелов и добавлении к полученному значению единицы. (Почему так? Очень просто: слов два, а пробел между ними один; слов три – а пробелов два и т. д.) Получаем программу.

CLS
INPUT "Введите текст телеграммы"; W$
N=LEN(W$): K=0
FOR 1=1 ТО N
P$=MID$(W$, I, 1)
IF P$=" " THEN K=K+1 NEXT I? "В вашей телеграмме – "; K+1; "слов"

Программа работает очень просто. Она определяет длину текста в символах и заносит это число в переменную N. Затем устанавливает счетчику пробелов к нулевое значение. После чего, в цикле вырезает из текста последовательно по одному символу и проверяет, а не является ли он пробелом. Если это так, то увеличивает счетчик пробелов к на.единицу, а если нет – берет следующий символ. По завершении цикла в переменной к хранится количество пробелов в тексте, и мы выводим ответ о количестве слов на экран, добавляя к к еще единичку.

228. Используя пример с подсчетом слов в телеграмме, напишите программу, имитирующую отделение связи с очень хорошим обслуживанием. Программа должна выяснять имя клиента и в дальнейшем обращаться к нему только по имени. Запрашивается также регион, куда посылается телеграмма. Их три – Россия (коэффициент 1), страны СНГ (стоимость одного слова умножается на 2) и дальнее зарубежье (стоимость одного слова умножается на 5). По России стоимость одного слова составляет 1 руб. 50 коп. (причем неважно, какой длины слово).

Затем у клиента запрашивается текст телеграммы и денежная сумма, определяется количество слов, стоимость телеграммы. Если денег ровно столько, сколько надо, его благодарят и прощаются. Если больше, чем надо, то ему предлагают сдачу и прощаются. Если меньше, то просят добавить необходимую сумму, а затем, после расчета, с клиентом прощаются. А для пущей красоты я обычно прошу нарисовать окошко телеграфа, в прорезях которого и происходит диалог компьютера с пользователем (рис. 1.65).

Иллюстрированный самоучитель по Basic, вводный курс › Алгоритмы, графика, символы и строки › Функции LEFT$, RIGHT$ и MID$
Рис. 1.65. Телеграф

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.