Лабораторная работа №10. Строковый тип данных
Предварительные сведения
В VBA имеются следующие функции обработки строк:
Функция |
Возвращаемое выражение |
Asc |
Возвращает ASCII-код начальной
буквы строки. Asc(Строка) |
Chr |
Преобразует ASCII-код в строку. Chr(Код) Например Chr (13) – переход на новую строку, Chr(97) = "а" |
Lcase |
Преобразует строку к нижнему регистру. Синтаксис: Lcase(Строка) |
Ucase |
Преобразует строку к верхнему регистру. Синтаксис: Ucase(Строка) |
Left |
Возвращает подстроку, состоящую из заданного числа первых символов исходной строки. Синтаксис: Left(string, length) Аргументы: length – число символов; string – исходная строка |
Right |
Возвращает строку, состоящую из заданного числа последних символов исходной строки. Синтаксис: Right(string, length) Аргументы: length – число символов; string – исходная строка |
Mid |
Возвращает подстроку строки, содержащую указанное число символов. Синтаксис: Mid(string, start [, length]) Аргументы: string – строковое выражение, из которого извлекается подстрока; start – позиция символа в строке string, с которого начинается нужная подстрока; length – число возвращаемых символов подстроки |
Len |
Возвращает число символов строки. Синтаксис: Len(Строка) |
LTrim |
Возвращает копию строки без пробелов в начале. Синтаксис: LTrim(Строка) |
Rtrim |
Возвращает копию строки без пробелов в конце. Синтаксис: Rtrimf(Строка) |
Trim |
Возвращает копию строки без пробелов в начале и в конце. Синтаксис: Trim(Строка) |
Space |
Возвращает строку, состоящую из указанного числа пробелов. Синтаксис: Space(Число) |
String |
Возвращает строку, состоящую из указанного числа повторений одного и того же символа. Синтаксис: String(number,character) Аргументы: number – число повторений символа; character – повторяемый символ |
StrComp |
Возвращает результат сравнения двух строк. Синтаксис: StrComp(stringl, string2 [, compare]) Аргументы: stringl и string2 – два любых строковых выражения; compare – указывает способ сравнения строк. Допустимые значения: 0 (двоичное сравнение), 1 (посимвольное сравнение без учета регистра). Возвращаемые значения: string1 меньше, чем string2, то -1; string1 равняется string2, то 0; string1 больше, чем string2, то 1 |
InStr |
Возвращает позицию первого вхождения одной строки внутри другой строки. Синтаксис: InStr([start, ]stringl, string2[, compare]) Аргументы: start – числовое выражение, задающее позицию, с которой начинается каждый поиск. Если этот аргумент опущен, поиск начинается с первого символа строки. Возвращаемое выражение: stringl – строковое выражение, в котором выполняется поиск; string2 – искомое строковое выражение; compare – указывает способ сравнения строк. Допустимые значения: 0 (для двоичного сравнения), 1 (посимвольное сравнение без учета регистра) |
Преобразование строки в число и обратно осуществляют следующими функциями:
Val (строка)
|
Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа
|
Str (число)
|
Возвращает значение типа variant (string), являющееся строковым представлением числа
|
Допустимо также использование операции [Cтрока1] + [Строка2], но предпочтительнее, во избежание путаницы, применять операцию со знаком &.
Приведем несколько примеров фрагментов кода:
A = «123»
В = «45»
С=А+В
(Debug.)Print С
С - ?
С=12345
A = «123»
В = «45»
С=А & В
(Debug.)Print С
С - ?
С=12345
A = 123
В = «45»
С=А+В
(Debug.)Print С
С - ?
С=168 (!!!Если одна переменная строковая, а одна числовая, то + выдаст СУММУ)
A = 123
В = «45»
С=А & В
(Debug.)Print С
С - ?
С=12345 (!!!Если одна переменная строковая, а одна числовая, то & выдаст сцепление строк)
A = 123
В = 45
С=А & В
(Debug.)Print С
С - ?
С=12345 (!!!Если обе переменные числовые, то & всё равно выдаст сцепление строк)
Пример 1
Даны два слова одинаковой длины. Присвоить переменной k число, равное количеству попарно одинаковых букв.
Выполнение:
1 Экранная форма будет иметь вид (рис. 58):
![]() |
2 Блок-схема алгоритма:
![]() |
3 Программный код для поиска количества попарно одинаковых букв:
Private Sub CommandButton1_Click()
Dim s1 As String, s2 As String, k As Integer
s1 = TextBox1.Text
s2 = TextBox2.Text
k = 0
For i = 1 To Len(s1)
If Mid(s1, i, 1) = Mid(s2, i, 1) Then k = k + 1
Next
Label4.Caption = Str(k)
End Sub
4 Результат работы программы показан на рис. 59.
Рис. 59. Результат работы программы для примера 1
лабораторной работы № 10
Пример 2
Задан список из 10 городов. Поменять местами название первого города таблицы и последнего города, заканчивающегося буквой «в».
Выполнение:
1 Экранная форма будет иметь вид (рис. 60).
![]() |
Рис. 60. Окно формы для примера 2 лабораторной работы № 10
2 Блок-схема алгоритма изображена в приложении 2, стр. 136.
3 Программный код задачи 2:
Dim G(1 To 10) As String, rab As String
Dim L As Integer, k As Integer
Private Sub CommandButton1_Click()
For i = 1 To 10
G(i) = InputBox("Введи город")
ListBox1.AddItem (G(i))
Next
End Sub
Private Sub CommandButton2_Click()
For i = 1 To 10
L = Len(G(i))
If Mid(G(i), L, 1) = "в" Then k = i
Next
rab = G(1)
G(1) = G(k)
G(k) = rab
For i = 1 To 10
ListBox2.AddItem (G(i))
Next
End Sub
4 Результат работы программы показан на рис. 61.
Рис. 61. Результат работы программы для примера 2
лабораторной работы № 10
Пример 3
Задан список из 10 городов. Поменять местами названия двух городов, названия которых оканчиваются на «град».
Выполнение:
1 Экранная форма будет иметь вид, аналогичный примеру 2 (рис. 60).
2 Программный код задачи 3:
Private Sub CommandButton1_Click()
For i = 1 To 10
G(i) = InputBox("Введи город")
ListBox1.AddItem (G(i))
Next
End Sub
Private Sub CommandButton2_Click()
flag = 0
For i = 1 To 10
L = Len(G(i))
If L > 3 Then
If Mid(G(i), L - 3, 4) = "град" Then
If flag = 0 Then
k = i: flag = 1
Else
Exit For
End If: End If: End If
Next
rab = G(i)
G(i) = G(k)
G(k) = rab
For i = 1 To 10
ListBox2.AddItem (G(i))
Next
End Sub
3 Блок-схема данной задачи:
4 Результат работы программы показан на рис. 62.
Рис. 62. Результат работы программы для примера 3
лабораторной работы № 10
Пример 4
С клавиатуры вводится слово. Определить, является ли оно «перевертышем», т.е. читается одинаково слева направо и справа налево.
Выполнение:
1 Экранная форма будет иметь вид (рис. 63).
![]() |
Рис. 63. Окно формы для примера 4 лабораторной работы № 10
2 Программный код задачи 4:
Private Sub CommandButton1_Click()
Dim x As String, s As String
Dim n, i, flag As Byte
x = TextBox1.Text
n = Len(Trim(x))
flag = 1
For i = 1 To n \ 2 'деление нацело
If Mid(x, i, 1) <> Mid(x, n + 1 - i, 1) Then flag = 0
Next
If flag = 1 Then
s = "Да, является"
Else
s = "Нет, не является"
End If
Label3.Caption = s
End Sub
3 Результаты работы программы показаны на рис. 64.
Рис. 64. Результаты работы программы для примера 4
лабораторной работы № 10
Пример 5
Образовать последовательность символов, включив в нее символы данной последовательности, расположенные на нечетных позициях.
Выполнение:
1 Экранная форма будет иметь вид (рис. 65).
![]() |
2 Блок-схема алгоритма:
![]() |
3 Программный код задачи 5:
Private Sub CommandButton1_Click()
Dim x, y As String
Dim n, i As Byte
x = TextBox1.Text
n = Len(Trim(x))
y = ""
For i = 1 To n Step 2 'Берутся только нечетные номера начиная с 1
y = y & Mid(x, i, 1)
Next
TextBox2.Text = y
End Sub
4 Результат работы программы показан на рис. 66.
Рис. 66. Результаты работы программы для примера 5
лабораторной работы № 10
Варианты
1 Задан список из десяти гоpодов. Подсчитать количество названий, котоpые оканчиваются буквой «в».
2 Даны два слова одинаковой длины. Пpисвоить пеpеменной k число, pавное количеству попаpно различных букв.
3 Задан список из десяти гоpодов. Поменять местами название первого города таблицы и последнего города, заканчивающегося буквой «к».
4 Задан список из десяти гоpодов. Поменять местами название десятого города таблицы и последнего города, заканчивающегося буквой «а».
5 Задан список из пяти имен девочек. Поменять местами первое имя и последнее, заканчивающееся буквой «я».
6 Задан список из десяти гоpодов. Поменять местами название второго города таблицы и последнего города, начинающегося буквой «Н».
7 Образовать последовательность символов, включив в нее символы данной последовательности, расположенные на четных позициях.
8 Задан список из семи имен мальчиков. Поменять местами второе имя и последнее, начинающееся буквой «А».
9 Задан список из десяти городов. Поменять местами названия последнего города таблицы и последнего города, начинающегося буквой «К».
10 Задан список из пяти названий дисциплин. Поменять местами первое и последнее названия.
11 Задан список из десяти городов. Подсчитать количество названий, котоpые начинаются буквой «С».
12 Задан список из десяти городов. Подсчитать количество названий, котоpые оканчиваются на «град».
13 Дано слово. Посчитать количество букв «а» в нем.
14 Задан список из десяти городов. Поменять местами названия двух городов, начинающихся на «Нов».
15 Задан список из десяти городов. Поменять местами названия двух городов, оканчивающихся на «ов».
16 Задан список из пяти названий дисциплин. Поменять местами названия двух дисциплин, оканчивающихся на «ка».
17 Задан список из шести названий дисциплин. Посчитать количество названий, начинающихся с буквы «ф».
18 Задан список из десяти городов. Подсчитать количество названий, котоpые оканчиваются на «ск».
19 Задан список из десяти городов. Поменять местами название первого города таблицы и последнего города, заканчивающегося на «град».
20 Задан список из десяти городов. Поменять местами название второго города таблицы и последнего города, начинающегося на «Нов».
21 Задан список из пяти имен мальчиков. Поменять местами первое имя и последнее, заканчивающееся буквой «й».
22 Образовать последовательность символов, включив в нее символы данной последовательности, расположенные на позициях, кратных трем.
23 Задан список из десяти городов. Подсчитать количество названий, содержащих более семи букв.
24 Задан список из десяти городов. Поменять местами названия первого города и любого другого, которое содержит более семи букв.
25 Задан список из десяти стран. Поменять местами названия двух стран, оканчивающихся на «ия».
26 Задан список из семи пород собак. Поменять местами название первой породы и последней, заканчивающейся на «терьер».
27 Задан список из семи пород собак. Посчитать количество названий пород, оканчивающихся на «ка».
28 Задан список из десяти городов. Посчитать количество названий, у которых предпоследняя буква «с ».
29 Задан список из десяти городов. Поменять местами название первого города таблицы и любого другого, у которого вторая буква «о».
30 Задан список из десяти городов. Присвоить переменной K название города с максимальным числом букв.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.