Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_3_1_Лс_27_11_2011.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4.63 Mб
Скачать

Лабораторна робота № 15. Обробка символьної інформації.

Значительная часть информации, с которой работает комъютер, текстовая, т.е. строковая. Строка — это последовательность символов; символ — это знак, для которого на компьютере установлен определенный АSСII-код (число от 0 до 255). Среди, символов есть такие, которые не отражены на клавиатуре. Строка заключается в кавычки, например "Visuaal Basic". Число символов строки, включая пробелы, называется длиной строки.

Строка может быть пустой, что обозначается двумя кавычками. В обозначении пустой строки пробел между кавычками отсутствует, так как пробел — тоже символ. Длина пустой строки равна нулю. Для строки должен быть установлен тип String. Любая программа может обрабатывать текстовую информацию не менее эффективно, чем числовую. Познакомимся с операциями, которые можно совершать над строками и наиболее распространенными встроенными функциями обработки строк.

Операция конкатенации (соединения). Для выполнения этой операции Visua! Basic допускает использование знаков + и &.

Пример 1

Dim Строка1 as String, Строка2 as String, Строка3 as String

Строка1= "Visual"

Строка2= "Basic"

Строка3 = Строка l + " " + Строка2

Print Строка3 ‘ код напечатает текст: Visual Basic

Если код

Строка3 = Строка l + " " + Строка2

заменить на код

Строка3= Строка1 & "" & Строка2,

то результат не изменится. Знак & позволяет производить конкатенацию не только строк, но и чисел, причем числа сначала преобразуются в строки.

Пример 2

Dim Строка! as String, Строка2 as String, Строка3 as String

Строка1 = "Visual"

Строка2 = "Basic"

Строка 3 = Строка 1 &"" & Строка 2 &"" & 6 & "." & 0

Print Строка3

Результат: Visual Basic 6.0

Операция сравнения. При сравнении строк сравниваются их АSСII-коды. Сравнение символьных величин производится посимвольно слева направо. Это можно использовать при упорядочивании символьных данных по алфавиту.

Например 3:

"1977" > "1975"

"Петров" > "Перов"

В словах две первые буквы одинаковые, а третья буква отличается:

АSСII-код т — 242 АSСII-код р - 240

Встроенные функции обработки строк. В форматах функций обработки строк (табл. 15.1) умышленно добавлен суффикс $, чтобы показать, какие аргументы функции обязательно должны иметь тип String (строка) и какие функции возвращают значение типа String. В примерах суффикc отсутствует, так как в них используется явное определение переменных, как мы делаем всегда. В столбце "Результат" представлено то, что будет напечатано на форме в результате выполнения фрагмента программы, приведенной в столбце "Примеры ".

Табл.15.1

Формат функции и ее назначение

Примеры

Результат

Len(x$)

Определение длины строки х$

Пример 4

Dim х As String

х = "замечательный день"

Print Len(x)

18

Мid$(x$,i[j])

Выделение строки длиной j символов, начиная с i-го

символа в строке х$

Пример 5

Dim а As String, b As String с As String,

а = "одна простая функция"

b= "один"

с =b + Mid(a, 5, 6) & "ой пример"

Print c

один простой пример

Left$(x$,i)

Выделение первых i символов в строке х$ (слева)

Пример 6

Dim р As String

р = "Пример"

Print Left(p, 1) ; " - " ; Left(p, 10)

П - Пример

Right$(X$,i)

Выделение последних i символов в строке х$ (справа)

Пример 7

Dim р As String, q As String

Dlm L As Integer, i As Integer

р = "Пример"

L = Len(р)

р=q

Fоr i = 1 to L

Print Left(q,1);"";

q = Right (q, L-l)

Next i

П р р р р р

InStr([i,]x$,y$)

Отыскание места первого появления строки у$ в x$, начиная с позиции i

Пример 8

Dim а As String, b As String

а = "VISUAL BASIC"

b= "A "

Print Instr(a, b); Instr(7, а, b)

5 9

Asс(х$)

Выдача цифрового значения, которое соответствует коду АSСII первого символа строки х$

Пример 9

Dim а As String

a="VISUAL BASIC"

Print Asс (а)

86

Chr$(i)

Выдача символа, код ASCII которого определяется аргументом функции

Пример 10

Print Chr (86)

Print Chr (Аsс("э")+ 1)

V

ю

Space$(i)

Выдача строки, содержащей i пробелов

Пример 11

Print "Пример"; Space(5); 5

Пример 5

LCase$(x$)

Перевод всех прописных букв строки х$ в строчные

Пример 12

Print LСаsе("СТроКА")

строка

UCase$(x$)

Перевод всех строчных букв строки х$ в прописные

Пример 13

Print UСаsе("СТроКА")

СТРОКА

StrConv$(x$, VbStrConv.

vbProperCase)

Перевод первых букв всех слов строки х$ в прописные

Пример 14

Print StrConv("visual basic" VbStrConv. vbProperCase)

Visual Basic

LТrim$(x$)

Удаление пробелов в начале строки

Пример 15

Dim а As String

а = " Иванов Петр"

Print LТrim (а)

Иванов Петр

RTrim$(x$)

Удаление пробелов в конце строки

Пример 16

Dim а As String

а = " Иванов "

Print RTrim (а) ; " Петр"

Иванов Петр

Trim$(x$)

Удаление пробелов в начале и в конце строки

Пример 17

Dim а As String

а = " Иванов "

Print Trim (а) ; " Петр"

Иванов Петр

Vаl(х$)

Преобразует строку в число

Пример 18

Print Vа1 ("20 км. и 800 м.")

Print Vа1(" - 21 800 м.")

Print 3 * Vа1 ("2" & "0")

Print Vа1("В строке нет цифр")

20

-21800

60

0

Str$(i)

Преобразует число

в строку

Пример 19

Print Str (5 * 5)

25

ЗАВДАННЯ 15.1. Постановка задачи: ВЫПОЛНИТЬ ПРОЕКТ — СТРОКОВЫЙ КАЛЬКУЛЯТОР. На рис. 15.1 представлен возможный вид приложения после его запуска и щелчка по кнопке <UCase>. На рис. 15.2 - 15.3 показана работа приложения после щелчка по кнопке <Mid>.

Порядок действий

1. Ознакомьтесь с функциями обработки строк (см. табл. 15.1) и внимательно разберите примеры.

2. Выберите по своему усмотрению пять-семь функций, которые выполняют различные виды обработки строк (определение длины строки, возвращение символов строки, изменение регистра, удаление пробелов и др.).

3. В зависимости от выбранных функций разработайте интерфейс.

4. Установите по своему усмотрению значения свойств объектов, определяющих внешний вид калькулятора.

5. Самостоятельно напишите программные коды в соответствии с тем, какие функции Вы выбрали.

6. Проверьте правильность работы калькулятора.

7. Сохраните проект в папке ЛАБ15 под именем Лр15_Зад1_ Строковый калькулятор

Рис. 15.1

Рис. 15.2

Рис. 15.3

ЗАВДАННЯ 15.2. Постановка задачи: НАПИСАТЬ ПРОГРАММУ, КОТОРАЯ ОПРЕДЕЛЯЕТ, КАКИЕ ГЛАСНЫЕ СОДЕРЖАТСЯ В НЕКОТОРОЙ ВВЕДЕННОЙ ВАМИ ФРАЗЕ НА РУССКОМ ЯЗЫКЕ. ПРИ ЭТОМ СТРОЧНЫЕ И ПРОПИСНЫЕ ГЛАСНЫЕ РАЗЛИЧАЮТСЯ. ТО, КАК ДОЛЖНО РАБОТАТЬ ДАННОЕ ПРИЛОЖЕНИЕ, МОЖНО ПОНЯТЬ ИЗ РИС. 15.4 - 15.6.

Рис. 15.4 Рис. 15.5 Рис. 15.6

Порядок действий

1. Расположите на форме два текстовых поля, две метки и одну кнопку.

2. Установите значение свойства Name для меток – LblФраза и LblГласные соответственно.

3. Установите значение свойства Caption верхней метки — Введите фразу, нижней метки – Встреченная гласная.

4. Установите значение свойства Caption формы — Гласные.

5. Установите значение свойства Name для текстовых полей — txtФраза и txtГласные соответственно.

6. Установите значение свойства Name для командной кнопки —cmdПуск.

7. Значения свойств объектов, определяющих внешний вид приложения, установите по своему усмотрению.

8. Проанализируйте представленный ниже программный к а затем наберите его.

Private Sub сmdПуск_ ()

Dim ВсеГласные As String, фраза As String, ВстреченныеГласные As String, t As String

Dim L As Integer, i As Integer, d As Integer

ВсеГласные = "аеёиоуыэюяАЕЁИОУЫЭЮЯ" ' все гласные буквы

фраза = txtФраза.Text 'фраза

ВстреченныеГласные = "" 'Множество гласных букв во введенной фразе

L = Len(фраза) 'Длина введенной фразы

For i = 1 To L

t = Mid(фраза, i, 1) 'Выделенный символ

If InStr(ВсеГласные, t) <> 0 Then 'Если очередной cимвол гласная

If InStr(ВстреченныеГласные, t) = 0 Then 'и если она еще не встречалась

ВстреченныеГласные = ВстреченныеГласные + t 'то добавляем ее к ‘множеству гласных

End If

End If

Next i

d = Len(ВстреченныеГласные) 'Длина сформированной фразы

Select Case d

Case 0

LblГласные.Caption = "Гласных нет"

txtГласные.Visible = False

Case 1

LblГласные.Caption = " Встреченная гласная :"

txtГласные.Visible = True

txtГласные.Text = ВстреченныеГласные

Case Else

txtГласные.Visible = True

LblГласные.Caption = "Встреченные гласные:"

txtГласные.Text = ВстреченныеГласные

End Select

End Sub

Private Sub Form_Activate()

txtФраза.SеtFосus

txtФраза.Text = “”

txtГласные.Техt =“”

End Sub

9. Сохраните проект под именем под именем Лр15_Зад2_Гласные

ЗАВДАННЯ 15.3. Постановка задачи: НАПИСАТЬ ПРОГРАММУ, ПОЗВОЛЯЮЩУЮ СГЕНЕРИРОВАТЬ СЛОВО, КОТОРОЕ ЯВЛЯЕТСЯ ЗЕРКАЛЬНЫМ ОТРАЖЕНИЕМ ВВЕДЕННОГО. ВИД РАБОТАЮЩЕГО ПРИЛОЖЕНИЯ ПРЕДСТАВЛЕН НА РИС. 15.7

Рис. 15.7

Порядок действий

1. Расположите на форме два текстовых поля, две метки и одну кнопку.

2. Установите значение свойства Name для текстовых полей — txtWord и txtDrow соответственно.

3. Установите значение свойства Caption для меток и формы в соответствии с рис.15.7.

4. Установите значение свойства Name для командной кнопки cmdZerkalo.

5. Установите по своему усмотрению значения свойств объектов, определяющих внешний вид приложения.

6. Проанализируйте представленный ниже программный к а затем наберите его.

Private Sub cmdZerkalo _ ClickO

Dim Word As String, Drow As String, с As String

Dim i As lnteger, L As Integer

Word = txtWord.Text 'Введенное слово

L = Len(Word) 'Длина введенного слова

Drow = '''' 'Создаваемое слово — отражение

For i = L То 1 Step -1

с = Mid(Word, i, 1) 'Выделенный символ

Drow = Drow + с

Next i

txtDrow. Text = Drow

End Sub

7. Сохраните проект под именем Лр15_Зад3_Перевертыш

ЗАВДАННЯ 15.4. Постановка задачи: НАПИСАТЬ ПРОГРАММУ, ОПРЕДЕЛЯЮЩУЮ, ЯВЛЯЕТСЯ ЛИ ПАЛИНДРОМОМ НЕКОТОРАЯ ВВЕДЕННАЯ ФРАЗА. ПАЛИНДРОМОМ НАЗЫВАЕТСЯ СЛОВО, ФРАЗА, А ТАКЖЕ ЦЕПОЧКА СИМВОЛОВ, КОТОРЫЕ ЧИТАЮТСЯ ОДИНАКОВО СЛЕВА НАПРАВО И СПРАВА НАЛЕВО. Вид работающего приложения после щелчка по кнопке <Нажми > представлен на рис. 15.8.

Рис. 15.8

Порядок действий

1. Расположите на форме текстовое поле, метку и кнопку.

2. Установите значение свойство Name для текстового поля — txtФраза.

3. Установите значение свойство Name для командной кнопки — cmdПуск.

4. Установите значение свойства Caption для меток и формы в соответствии с рис. 15.8.

5. 3начения свойств объектов, определяющих внешний вид приложения, установите по своему усмотрению.

6. IIроанализируйте представленный ниже программный код, а затем наберите его.

Private Sub сmdПуск_Сliсk()

Dim f As String

Dim L As Integer, Lh As Integer, k As Integer, i As Integer

f = txtФраза.Text 'Введенная фраза

L = Len(f) 'Длина введенной фразы

Select Case L

Case 1

MsgBox "Фраза не палиндром", vbOKOnly, "Проверка фразы"

Case Else

Lh = Int(L / 2)

k = 0 'k=0 —признак палиндрома

For i = 1 To Lh

If Mid(f, L - i + 1, 1) <> Mid(f, i, 1) Then k = 1: Exit For 'k=1 —слово не ‘палиндром

Next i

End Select

If k = 1 Then

MsgBox "Фраза - не палиндром", vbOKOnly, "Проверка фразы"

Else

MsgBox "Фраза - палиндром", vbOKOnly, "Проверка фразы"

End If

End Sub

7. Сохраните проект под именем Лр15_Зад4_Палиндром