Лабораторная работа №10. Строковый тип данных

  • doc
  • 07.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 87. Лабораторная работа №10. Строковый тип данных.doc

Лабораторная работа №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), являющееся строковым представлением числа

 

 Для сложения строк применяют следующую операцию:

[Строка1]&[Строка2]

 

Допустимо также использование операции [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):

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 58. Окно формы для примера 1 лабораторной работы № 10

 

 

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).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 65. Окно формы для примера 5 лабораторной работы № 10

 

 

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 название города с максимальным числом букв.