Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

информатика

.pdf
Скачиваний:
83
Добавлен:
10.05.2015
Размер:
4.53 Mб
Скачать

172

Выделение подстроки из строки символов

Для выделения подстроки из строки используются функции

Left(S,N), Right(S,N), Mid(S, Start, N), где:

S – строка;

N – количество выделяемых символов; Start – позиция начала замены.

Описание и назначение этих функций приведено в таблице 3.

Таблица 3

Описание и назначение функций Left, Right, Mid

Функция

Назначение

Тип аргумента

Тип результата

Left(S,N)

Выделяет N сим-

 

 

 

волов слева

S – String

 

Right(S,N)

Выделяет N сим-

 

N – Byte

String

 

волов справа

Start – Byte

Mid(S, Start, N)

Выделяет N сим-

 

 

волов начиная с

 

 

 

позиции start

 

 

Пример 8:

 

 

 

Sub Строки8()

 

 

Dim S As String

 

 

Dim S1 As String

 

 

S=" Моя строковая переменная"

 

S1=Left(S, 3)

'Результат: S="Моя"

S1=Right(S, 10)

'Результат: S="переменная"

S1=mid(S, 5,9)

'Результат: S="строковая"

End Sub

 

 

 

Определение позиции вхождения подстроки в строку

Для определения позиции вхождения подстроки в строку используются функции InStr([start, ] S1, S2[, compare]) InStrRev(S1, S2[, start[, compare]]), где:

173

start – позиция начала поиска;

S1 – строка, в которой будет происходить поиск; S2 – подстрока, которую будем искать в строке S1; compare – способ сравнения.

Описание и назначение этих функций приведено в таблице 4.

Таблица 4 Описание и назначение функций InStr и InStrRev

Функция

Назначение

Тип аргумента

Тип резуль-

 

 

 

 

тата

 

Определяет по-

 

 

InStr([start, ] S1,

зицию

первого

 

 

S2[, compare])

вхождения под-

start – Byte

 

 

строки

S2 в

S1 – String

 

 

строку S1

S2 – Srting

Byte

 

 

 

 

Определяет по-

compare – 0 или

InStrRev(S1,

1 (по умолча-

 

зицию

послед-

нию 0)

 

S2[, start[, com-

него вхождения

 

pare]])

подстроки S2 в

 

 

 

строку S1

 

 

Пример 9:

 

 

 

 

Sub Строки9()

 

 

 

Dim S As String

 

 

 

Dim S1 As String

 

 

 

Dim N As Byte

 

 

 

S=" Моя строковая переменная"

 

S1="о"

 

 

 

 

N= InStr(S, S1)

 

'Результат: N=2

 

N= InStrRev(S, S1)

 

'Результат: N=9

 

End Sub

 

 

 

 

174

Преобразование элементов массива в строку

Для преобразования элементов массива в строку можно использовать функцию, Join( array[, delimiter]), где:

array – массив, который нужно преобразовать;

delimiter – символ, который будет разделять элементы массива в конечной строке (по умолчанию пробел).

Преобразование строки в массив

Для преобразования строки в массив используется функция

Split(S[, delimiter[, limit[, compare]]]), где

S – строка, которую нужно преобразовать в массив delimiter – символ, который нужно принять за разделитель

элементов массива (по умолчанию пробел);

limit – ограничение возвращаемых элементов; compare – способ сравнения.

3.ПОРЯДОК ВЫПОЛНЕНИЯ

1.Получить задание у преподавателя.

2.Выполнить задание в соответствии с вариантом.

3.Ответить на контрольные вопросы.

4.ЗАДАНИЕ

Выполнить сортировку одномерного массива на языке программирования Visual Basic for Applications.

ВАРИАНТ № 1

Дана строка символов.

1)Определить количество слов, длина которых больше трех

именьше либо равно шести символам.

2)Определить длину самого длинного слова и напечатать

его.

3)Определить длину строки с символа с номером M по символ с номером N.

4)Определить количество слов, начинающихся на сочетание "ст".

175

ВАРИАНТ № 2

Дана строка символов.

1)Напечатать строку символов между второй и третьей запятыми.

2)Определить количество слов, заканчивающихся на "ь".

3)Длину самого короткого слова и напечатать его.

4)Определить количество слов, длина которых меньше семи символов.

ВАРИАНТ № 3

Дана строка символов.

1)Напечатать часть строки от первого символа "5" до последнего символа "!".

2)Определить количество слов, содержащих букву "й".

3)Определить количество букв "а" во втором слове.

4)Напечатать слова, начинающиеся на "кр".

ВАРИАНТ № 4

Дана строка символов.

1)Напечатать часть строки от предпоследней до последней запятой.

2)Определить количество слов, заканчивающихся на сочетание "ай".

3)Определить напечатать среднее (по расположению в строке) слово.

4)Определить количество слов, длина которых более 10 символов.

ВАРИАНТ № 5

Дана строка символов.

1)Определить количество символов "=" после предпоследней запятой.

2)Определить и напечатать слова, начинающиеся на "ст" и заканчивающиеся на "нь".

3)Определить количество букв "о" во втором слове.

4)Напечатать второе слово в обратном порядке.

176

ВАРИАНТ № 6

Дана строка символов.

1)Определить и напечатать слово, содержащее максимальное количество букв "о".

2)Определить количество слов, начинающихся на букву "к"

идлиной от трех до семи символов.

3)Определить количество символов между первым символом "7" и последним символом "?".

4)напечатать предпоследнее слово в обратном порядке.

ВАРИАНТ № 7

Дана строка символов.

1) Определить количество слов. Длина которых больше длины первого слова.

2) Определить длину самого длинного слова и напечатать

его.

3)Определить длину строки с символа с номером M по вторую встреченную запятую.

4)Определить количество слов, заканчивающихся на "ок".

ВАРИАНТ № 8

Дана строка символов.

1)Напечатать строку символов между второй и предпоследней точками.

2)Определить количество слов, в которых встречается бук-

ва "я".

3)Длину самого короткого слова и напечатать его.

4)Определить количество слов, длина которых меньше 8 символов, но больше длины самого короткого слова.

ВАРИАНТ № 9

Дана строка символов.

1)Напечатать часть строки от третьего символа "5" до последнего символа ";".

2)Определить количество слов, начинающихся и заканчивающихся на букву "о".

3)Определить количество букв "к" в предпоследнем слове.

177

4) Напечатать слова, начинающиеся на "рос". ВАРИАНТ № 10 Дана строка символов.

1)Напечатать часть строки от предпоследней запятой до первой точки.

2)Определить количество слов, заканчивающихся на сочетание "ин".

3)Определить напечатать среднее (по расположению в строке) слово.

4)Определить количество слов, длина которых не менее 8 символов.

ВАРИАНТ № 11

Дана строка символов.

1)Определить количество символов "+" после второй точки.

2)Определить и напечатать слова, начинающиеся на "ст" и содержащих символ "5".

3)Определить количество букв "о" в строке.

4)Напечатать последнее слово в обратном порядке.

ВАРИАНТ № 12

Дана строка символов.

1)Определить и напечатать слово, содержащее минимальное количество букв "о".

2)Определить количество слов, начинающихся на букву "т"

идлиной не более семи символов.

3)Определить количество символов между последним символом "7" и последним символом "?".

4)напечатать предпоследнее слово.

ВАРИАНТ № 13 Дана строка символов.

1)Определить количество слов, содержащих более трех за-

пятых.

2)Определить длину слова, содержащего наибольшее число символов "о" и напечатать его.

3)Определить длину строки до третьего с конца строки сло-

ва.

178

4) Определить количество слов, начинающихся на сочетание

"ви".

ВАРИАНТ № 14 Дана строка символов.

1)Напечатать строку символов между второй запятой и началом последнего слова.

2)Определить количество слов, содержащих "ъ".

3)Длину самого длинного слова и напечатать его.

4)Определить количество слов, длина которых меньше семи символов и больше трех символов.

ВАРИАНТ № 15

Дана строка символов.

1)Напечатать часть строки от первого символа "к" до последнего символа "р".

2)Определить количество слов, содержащих сочетание "ай".

3)Определить количество букв "е" в предпоследнем слове.

4)Напечатать слова, начинающиеся на "11".

ВАРИАНТ № 16

Дана строка символов.

1)Напечатать часть от начала самого короткого слова до последней запятой.

2)Определить количество слов, заканчивающихся на сочетание "ть" и состоящих из 4 символов.

3)Определить напечатать третье с конца строки слово.

4)Определить количество слов, длина которых более 4 сим-

волов.

ВАРИАНТ № 17

Дана строка символов.

1) Определить количество символов "=" после второго сло-

ва.

2)Определить и напечатать слова, начинающиеся на "т".

3)Определить количество букв "о" во втором и предпоследнем словах.

4)Напечатать последнее слово в обратном порядке.

179

ВАРИАНТ № 18

Дана строка символов.

1)Определить и напечатать слово, содержащее максимальное количество символов, но не содержащее букв "о".

2)Определить количество слов, длиной пять или восемь символов.

3)Определить количество символов между последним символом "%" и третьим символом "!".

4)напечатать самое длинное слово в обратном порядке.

ВАРИАНТ № 19

Дана строка символов.

1)Определить и напечатать слово, содержащее M или N символов.

2)Определить количество слов, содержащих символ "?", но не начинающихся на "о".

3)Определить количество символов между последним символом "э" и символом под номером N.

4)Определить напечатать среднее (по расположению в строке) слово в обратном порядке.

5. КОНТРОЛЬНЫЕ ВОПРОСЫ

Как описывается область видимости и время существования переменных?

2.Чем характеризуется строка переменной длины?

3.Чем характеризуется строка постоянной длины?

4.Какие операции можно выполнять над строками?

5.Какие действия выполняют функции Val(St) и Str(Value)?

6.Какие действия выполняют функции UCase(S) и

LCase(S)?

7.Какие функции определяют позицию вхождения подстроки в строку?

180

Лабораторная работа № 10 Пользовательские процедуры и функции

1.ЦЕЛЬ РАБОТЫ

Изучение синтаксиса стандартных строковых процедур и функций, встроенных в язык программирования высокого уровня

Visual Basic for Applications (VBA), получение навыков примене-

ния строковых процедур и функций в программах пользователя при работе с данными строкового типа.

2.ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Общие положения

Описание и создание процедур

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

Процедура (функция) – это программная единица VBA, включающая операторы описания ее локальных данных и исполняемые операторы. Обычно в процедуру объединяют регулярно выполняемую последовательность действий, решающую отдельную задачу или подзадачу. Особенность процедур VBA в том, что они могут использовать в качестве элементарных действий большое количество встроенных методов и функций, оперирующих с разнообразными объектами этой системы. Поэтому струк-

181

тура управления типичной процедуры прикладной офисной системы довольно проста: она состоит из последовательности вызовов встроенных процедур и функций, управляемой небольшим количеством условных операторов и циклов. Обычно ее размеры не должны превышать нескольких десятков строк.

Классификация процедур

Процедуры VBA можно классифицировать по нескольким признакам: по способу использования (вызова) в программе, по способу запуска процедуры на выполнение, по способу создания кода процедуры, по месту нахождения кода процедуры в проекте.

Процедуры VBA подразделяются на подпрограммы и функции. Первые описываются ключевым словом Sub, вторые – Function. Различие между этими видами процедур только синтаксическое, так как преобразовать процедуру одного вида в эквивалентную процедуру другого вида не сложно.

По способу создания процедуры делятся на:

обычные, разрабатываемые "вручную";

процедуры, код которых создается автоматически генера-

тором макросов (MacroRecoder).

Это разделение можно считать условным, так как многие процедуры создаются генератором макросов, а затем изменяются

идописываются вручную.

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

По положению в проекте различаются процедуры:

находящиеся в специальных программных единицах – стандартных модулях, модулях классов и модулях, связанными с объектами;

реагирующие на события.

Еще один специальный тип процедур – процедуры-свойства

Property Let, Property Set и Property Get. Они служат для задания и получения значений закрытых свойств класса.