
- •2.1 Словесная запись алгоритма.
- •2.2 Графическая запись алгоритма.
- •4.1 Полная и сокращенная формы ветвления.
- •4.2 Применение сложных условий.
- •4.1 Арифметические операции и выражения
- •4.2 Функциональные операции
- •4.3 Операции отношения
- •4.4 Логические операции
- •4.5 Строковые операции
- •1. Цикл For…Next.
- •2. Оператор Do...Loop
- •3. Оператор While...Wend
- •NameList — наименование списка, задаваемое свойством Name;
- •Выражение — элемент списка. Если это символьная величина, то она должна быть помещена в кавычки;
- •NameList — наименование списка, задаваемое свойством Name;
- •Выражение — элемент списка. Если' это символьная величина, то она должна быть помещена в кавычки;
- •Index — порядковый номер элемента в списке.
- •Сортировка массива. Способы сортировки массива.
- •Сортировка вставкой. Сортировка выбором.
- •Сортировка методом простого обмена (пузырька). Рекурсивная сортировка.
- •Сортировка методом слияний.
- •Функции обработки строковых выражений.
- •InStrRev(Исходная_Строка, Искомая_Строка [, Начальная_Позиция])
InStrRev(Исходная_Строка, Искомая_Строка [, Начальная_Позиция])
Основное отличие состоит в том, что параметр Начальная_Позиция,указывающий начальную позицию в исходной строке, с которой будет начат поиск, располагаетсяпослесамих строк, а не перед ними, как у функции InStr().
Пример: Вывести номера позиций на которых встречается буква «к».
Private Sub Command1_Click()
Text1.Text = "Обычное праздничное блюдо на пикнике - шашлык. Однако можно придумать и что-нибудь оригинальное (запечённую в углях рыбу или мясо, жаренную на вертеле индейку)."
S = Text1
N = InStr(S, "к")
N2 = InStr(N + 1, S, "к")
N3 = InStr(N2 + 1, S, "к")
N4 = InStr(N3 + 1, S, "к")
Text2.Text = N & ", " & N2 & ", " & N3 & ", " & N4
End Sub
Выборка части строки
Задача выборки части текста из исходной строки возникает довольно часто, например, для выделения фамилии из полного имени клиента или для разделения введенной пользователем информации на части для помещения их в соответствующей записи базы данных. Такого типа задачи решаются в Visual Basic очень просто, благодаря наличию функций перечисленных в таблице:
Функция |
Описание |
Left |
Возвращает указанное количество символов с начала строки |
Right |
Возвращает указанное количество символов с конца строки |
Mid |
Возвращает указанное количество символов с середины строки |
При вызове функций Left() иRight()нужно указать исходную строку и количество выбираемых из нее символов. Синтаксис операторов, в которых используются функцииLeft() иRight(), выглядит следующим образом.
Результат = Left$(ИсходнаяСтрока, ЧислоСимволов)
Результат = Right$(Исходная Строка, ЧислоСимволов)
При вызове данных функций значение параметра ЧислоСимволовдолжно быть больше нуля. Если оно равно нулю, возвращается строка нулевой длины. Если значение описываемого параметра больше длины исходной строки, возвращается вся исходная строка целиком.
Для выделения символов из произвольной части исходной строки используется функция Mid(). Принцип ее применения практически такой же, как и функцийLeft() иRight(), но за одним исключением. У функцииMid() предусмотрен еще один дополнительный параметр, с помощью которого вы можете выделить одну букву, слово или целое предложение из любой части исходной строки.
Функция Mid() имеет два обязательных аргумента и один дополнительный. Ее синтаксис выглядит следующим образом:
Результат = Mid(ИсходнаяСтрока, НачальнаяПозиция [, ЧислоСимволов])
В параметре НачальнаяПозиция указывается номер символа в исходной строке, с которого будет начинаться новая строка. Если значение данного параметра превосходит длину строки, возвращается строка нулевой длины. С помощью дополнительного параметраЧислоСимволов указывается количество символов, которые нужно извлечь из исходной строки. Если данный параметр опущен, возвращается часть строки, начиная с указанной позиции и до конца строки. Ниже приведены несколько примеров использования функцииMid().
printMid("Александр Пушкин", 11) ' Возвращается "Пушкин"
printMid("Александр Пушкин", 11, 2) ' Возвращается "Пу"
Пример: Выделить в строке 2-3 слова, являющиеся подстрокой этой строки
Private Sub Command2_Click()
Dim S1 As String
Dim S As String
Text1.Text = "Обычное праздничное блюдо на пикнике - шашлык. Однако можно придумать и что-нибудь оригинальное (запечённую в углях рыбу или мясо, жаренную на вертеле индейку)."
S = Text1
N1 = Mid(S, 5, 2)
N2 = Mid(S, 61, 3)
N3 = Mid(S, 100, 3)
Text2.Text = N1 + ", " + N2 + ", " + N3
End Sub
С помощью функции MIDможно подсчитать количество символов встречающихся в тексте.
Пример. Составьте программу, определяющую, сколько раз встречается в слове буква "а". Например: шалаш 2 лось 0
Private Sub Command1_Click()
x = InputBox("Введите слово")
Text1.Text=x
N= 0 'счетчик количества букв а
For i = 1 To Len(x)
If Mid(x, i, 1) = "а" Then N = N + 1
Next i
If N = 0 Then
Text2.Text = "В слове нет букв а"
Else
Text2.Text = N
End If
End Sub
В противном случае
Пример. Составьте программу, выясняющую, какая из букв "а" или "о" встречается в слове Х чаще.
Private Sub Command1_Click()
x = InputBox("Введите слово")
Text1.Text = x
Счет_a = 0
Счет_o = 0
For i = 1 To Len(x)
If Mid(x, i, 1) = "а" Then Счет_a = Счет_a + 1
If Mid(x, i, 1) = "о" Then Счет_o = Счет_o + 1
Next i
If Счет_a = 0 And Счет_o = 0 Then
Text2.Text = "В слове нет букв а или о"
ElseIf Счет_a > Счет_o Then
Text2.Text = "а - встречается чаще"
ElseIf Счет_a < Счет_o Then
Text2.Text = "o - встречается чаще"
ElseIf Счет_a = Счет_o And Счет_a <> 0 Then _
Text2.Text = "одинаково часто встречаются а и о"
End IfEnd Sub
Пример: Определить, какой процент букв в тексте занимает буква «р»
Private Sub Command1_Click()
Dim S As String
Dim i As Integer
Text1.Text = "Различные буквы "
S = Text1
l = 0
For i = 1 To Len(S)
If Mid(S, i, 1) = "р" Then l = l + 1
w = (Len(S) / 100) * l
o = Int(w)
Text2.Text = o
Next i
End Sub
Удаление лишних пробелов
Большинство строк содержат пробелы, с помощью которых отделяются друг от друга отдельные слова, абзацы и др. Однако ничто не запрещает пользователю поставить несколько пробелов в начале и (или) конце исходной строки. Чаще всего эти "лишние" пробелы появляются в результате случайного нажатия клавиши <Пробел> перед или после ввода строки текста. Кроме того, дополнительные пробелы в конце строки появляются при использовании строк фиксированной длины, когда длина новой строки меньше, чем размер переменной, которой она присваивается.
Например, в результате выполнения приведенных ниже операторов будет напечатано разное значение функции Len(), хотя слова в исходной строке содержатся одни и те же.
Print Len("Hello, world!")
Print Len(" Hello, world!")
PrintLen("Hello,world! ")
Чаще всего лишние пробелы не причиняют никакого дополнительного беспокойства, за исключением того, что они напрасно занимают память. Однако, если вы попытаетесь объединить несколько строк, содержащих лишние пробелы в одну. результат, скорее всего, будет не таким, как вы ожидали.. Для решения подобных проблем в VisualBasicпредусмотрено несколько специальных функций, с помощью которых можно легко избавиться от ненужных пробелов. Они представлены в следующей таблице:
Функция |
Описание |
LTrim |
Удаляет пробелы в начале строки |
RTrim |
Удаляет пробелы в конце строки |
Trim |
Удаляет пробелы в начале и в конце строки |
Каждая из приведенных выше функций имеет одинаковый синтаксис.
Замена символов в строке
С помощью того же ключевого слова Midможно заменять, символы в исходной строке. Синтаксис использования данной функции будет несколько другой – ее имя указывается в левой части оператора присваивания, и называться она уже будет не функцией, а операторомMid.
Для замены одной строки другой, оператор Midиспользуется следующим образом:
Mid(ИсходнаяСтрока, НачальнаяПозиция[, ЧислоСимволов]) = НоваяСтрока
В данном случае вместо параметра Исходная_Строканужно подставить строку, в которой производится замена символов. Данный параметр должен быть только строковой переменной; литерал или строковую функцию использовать нельзя. Второй параметр—НачальнаяПозиция—определяет номер первого символа в исходной строке, с которого начнется замена. Данный параметр должен быть положительным целым числом. Необязательный параметрЧислоСимволовопределяет количество символов исходной строки, которые будут заменены. В правой части оператора присваивания указывается параметрНоваяСтрока.в котором содержится строка, заменяющая указанные символы исходной строки. Данный параметр может быть представлен литералом, строковой переменной или строковой функцией.
В результате выполнения оператора Midдлина исходной строки не меняется. Другими словами, если при замене новая строка не может целиком поместиться в исходной строке, она усекается по оставшейся длине исходной строки.
Пример: Составьте программу, заменяющую в слове Х все буквы "е" на "я". (Я несу в лесу сметану)
PrivateSubCommand1_Click()
x = InputBox("Введите слово")
Text1.Text = x
y = ""
For i = 1 To Len(x)
If Mid(x, i, 1) = "е" Then _
y = y + "я" Else y = y + Mid(x, i, 1)
Next i
Text2.Text = y
End Sub
Для замены одного символа в строке другим можно использовать функцию Replace следующим образом:
Replace (ИсходнаяСтрока, Заменяемая буква, Заменяющая буква = НоваяСтрока
Пример: Заменить в исходной строке символы «р»на «с».
Private Sub Command2_Click()
Dim S1 As String
Dim S As String
Text1.Text = "Обычное праздничное блюдо на пикнике - шашлык. Однако можно придумать и что-нибудь оригинальное (запечённую в углях рыбу или мясо, жаренную на вертеле индейку)."
S = Text1
Text2.Text = Replace(S, "р", "с")
End Sub
1Шеврон – маленький черный треугольник рядом с пиктограммой.