Строковые функции

Для работы с текстом в языке Basic предусмотрены специальные функции. Всего их 4: len, right, left, mid. Разберем их подробнее:

Len(строка)

Название данной функции происходит от английского слова "Length", и предназначена она, как можно понять из перевода, для вычисления кол-ва символов в строке. В качестве строки может также выступать строковая переменная, содержащая в себе какой-то текст.

Пример 1:

Dim G as Byte
G=Len("Слон")
В Этом примере в переменную G будет записано число, равное кол-ву символов в слове "Слон". Т.е. число 4.
Следует помнить, что кол-во символов ВСЕГДА будет являться числом.

Пример 2:

Dim K as String
Dim G as Byte
K="Параллелепипед"
G=Len(K)
В данном примере мы объявляем переменную К как принимающую текстовые значения, а переменную G - как принимающую числовые значения. С помощью функции Len определяем кол-во символов и записываем это кол-во в переменную G. Таким образом, в переменную G будет записано число 14 (кол-во букв в слове "Параллелепипед")

Right(строка,кол-во)

Данная функция копирует из исходной строки указанное кол-во символов справа. Порядок символов при этом не меняется. Строка может быть указана как текст (в кавычках) или с помощью текстовой переменной. Кол-во символов может быть указано как числом, так и числовой переменной.

Пример 1:

Dim K as String
K=Right("Улыбка - понятие растяжимое",2)
В данном случае из фразы "Улыбка - понятие растяжимое" будет скопировано 2 символа справа, т.е символы "ое". Эти два символа будут записаны в переменную К.

Пример 2:

Dim K as String
Dim Z as String
Z="В мысли о мысли мы приходим к мысли, что наши мысли (в смысле осмысления) немыслимы." K=Right(Z,9)
Данная команда скопирует последние 9 символов предложения(включая точку) из содержимого переменной Z. Т.е. слово "немыслимы."
Эту же команду можно было бы записать иным способом, рассмотренным в примере 3:

Пример 3:

Dim K as String
Dim Z as String
Dim j as Integer
Z="В мысли о мысли мы приходим к мысли, что наши мысли (в смысле осмысления) немыслимы." j=9 K=Right(Z,j)

Задание 1. Чему будет равна переменная Z:

Dim A as String Dim Z as String A="Съешь ещё этих мягких французских булок, да выпей чаю" Z=Right(A,9)
Z="выпей чаю"

Задание 2. Определить, чему будет равна переменная Z:

Dim A as String Dim Z as String A="Съешь ещё этих мягких французских булок, да выпей чаю" Z=Right(A,14)
Z=", да выпей чаю"

Задание 3. Написать команду, которая скопирует в переменную Z буквы "аю":

Dim A as String Dim Z as String A="Съешь ещё этих мягких французских булок, да выпей чаю"
Z=Right(A,2)

Left(строка,кол-во)

Данная функция копирует из исходной строки указанное кол-во символов слева. Порядок символов при этом не меняется. Строка может быть указана как текст (в кавычках) или с помощью текстовой переменной. Кол-во символов может быть указано как числом, так и числовой переменной.

Пример 1:

Dim K as String
K=Right("Улыбка - понятие растяжимое",6)
В данном случае из фразы "Улыбка - понятие растяжимое" будет скопировано 6 символа слева, т.е. само слово "Улыбка". Это слово будет записано в переменную К.

Пример 2:

Dim K as String
Dim Z as String
Z="В мысли о мысли мы приходим к мысли, что наши мысли (в смысле осмысления) немыслимы." K=Left(Z,7)
Данная команда скопирует первые 7 символов предложения(включая пробел) из содержимого переменной Z. Т.е. словосочетание "В мысли."
Аналогичным образом можно использовать значение переменной вместо конкретной цифры:

Пример 3:

Dim K as String
Dim Z as String
Dim j as Integer
Z="В мысли о мысли мы приходим к мысли, что наши мысли (в смысле осмысления) немыслимы." j=7 K=Left(Z,j)

Задание 1. Определить, чему будет равна переменная Z:

Dim A as String
Dim Z as String
A="Съешь ещё этих мягких французских булок, да выпей чаю"
Z=Left(A,7)
Z="Съешь е"

Задание 2. Определить, чему будет равна переменная Z:

Dim A as String
Dim Z as String
A="Съешь ещё этих мягких французских булок, да выпей чаю" Z=Left(A,14)
Z="Съешь еще этих"

Задание 3. Какое число необходимо ввести, чтобы программа вывела буквы "Съе"?:

Dim A as String
Dim Z as String
Dim Y as String
A="Съешь ещё этих мягких французских булок, да выпей чаю"
Input Y
Z=Left(A,Y)
Print Z
Задача не имеет решения, т.к. вводимая переменная Y не является числовой, а значит, не может определять кол-во копируемых символов.

Задание 4. Какое число необходимо ввести, чтобы программа вывела буквы "Съе"?:

Dim A as String
Dim Z as String
Dim Y as Integer
A="Съешь ещё этих мягких французских булок, да выпей чаю"
Input Y
Z=Left(A,Y)
Print Z
Необходимо ввести число 3

Mid(строка,номер начального символа,кол-во)

Данная функция сложнее двух предыдущих. Она имеет 3 параметра. Разберем их подробнее:

Пример 1:

Dim K as String
K=Mid("Улыбка - понятие растяжимое",10,7)
В данном случае из фразы "Улыбка - понятие растяжимое" будет скопировано 7 символов, начиная с 10го, т.е. само слово "понятие". Это слово будет записано в переменную К.

Пример 2:

Dim K as String
Dim Z as String
Z="Улыбка - понятие растяжимое" K=Mid(Z,10,7)
Этот пример иллюстрирует возможность замены текста на строковую переменную, содержащую этот текст. Аналогичным образом работает и замена чисел на соотв. переменные.

Задание 1. Определить, чему будет равна переменная Z:

Dim A as String
Dim Z as String
A="Съешь ещё этих мягких французских булок, да выпей чаю"
Z=Mid(A,11,4)
Z="Этих"

Задание 2. Определить, чему будет равна переменная Z:

Dim A as String
Dim Z as String
A="Съешь ещё этих мягких французских булок, да выпей чаю"
Z=Mid(A,23,11)
Z="французских"

Задание 3. Какое число необходимо ввести в программу, чтобы программа вывела слово "ещё"?

Dim A as String
Dim Z as String
Dim Y as Integer
A="Съешь ещё этих мягких французских булок, да выпей чаю"
Z=Mid(A,Y,3)
Input Y
Задача не имеет решения по двум причинам:
1)Она ничего не выводит на экран ввиду отсутствия команды Print
2)Она вообще не будет работать, т.к значение переменной Y вводится уже ПОСЛЕ операции копирования символов из строки.

Задание 3. Какое число необходимо ввести в программу, чтобы программа вывела слово "ещё"?

Dim A as String
Dim Z as String
Dim Y as Integer
A="Съешь ещё этих мягких французских булок, да выпей чаю"
Input Y Z=Mid(A,Y,3)
Priint Z

Нужно ввести число 7

Задачи

Задача 1. Написать программу, которая выведет на экран (в одну строку через запятую) первый и последний символ введенного пользователем (произвольного) слова.

Dim a as string
Dim b as string
Dim c as string
Dim d as string
Dim e as string
input a
b=Left(a,1)
c=Right(a,1)
d=","
e=b+d+с
Print e
Dim a as string
Dim b as string
input a
b=Left(a,1)+","+Right(a,1)
Print B

Задача 2. Написать программу, которая в середину четырехбуквенного слова, введенного пользователем, вставит единицу.

Dim a as string
Dim b as string
Dim c as string
Dim d as string
Dim e as string
input a
b=Left(a,2)
c=Right(a,2)
d="1"
e=b+d+c
Print e
Dim a as string
Dim b as string
input a
b=Left(a,2)+"1"+Right(a,2)
Print b

Задача 3. Написать программу, которая в середину слова с четным кол-вом букв вставит единицу.

Dim a as string
Dim b as string
Dim c as string
Dim d as string
Dim e as string
input a
b=Left(a,Len(a)/2)
c=Right(a,Len(a)/2)
d="1"
e=b+d+c
Print e Примечание: Т.к. в слове четное кол-во букв, мы определим кол-во букв с помощью функции Len и разделим его пополам(чтобы найти середину). Затем прибавим к первой части слова единицу (в текстовом виде, для чего возьмем единицу в кавычки), а к полученному результату - вторую часть слова.