Слайд 2
Строковые константы и переменные
Компьютер работает не только с
числами, но и с символами.
Последовательность символов, используемых в
программе, называется строкой.
Символьные или строковые константы представляют собой набор произвольных символов, принадлежащих языку Бейсик и заключенных в кавычки .
Языки программирования имеют специальные средства для работы со строками.
Слайд 3
Особенности работы со строками
Для того, чтобы переменная могла
иметь строковое значение, ее имя необходимо описать:
Dim name As
String или Dim name As String [10]
или имя может заканчиваться символом доллара: имя$. Верно и обратное: если имя заканчивается $, то переменная должна иметь строковое значение.
Значение строковой переменной тоже можно задавать оператором присваивания, но в правой части должно стоять не арифметическое, а строковое выражение, т.е. выражение, значением которого являются строки.
В такое выражение могут входить переменные и строковые константы. В языке VBA такие константы заключаются в кавычки.
Слайд 4
Особенности работы со строками
Операции со строками отличаются от
действий, которые можно выполнять с числами. Нелепо говорить о
сложении или вычитании строк, тем более об умножении или делении. Но можно говорить о слиянии строк. Такая операция называется
конкатенацией ≡ слияние строк.
Она объединяет две строки вместе (2-я присоединяется к 1-й) и обозначается знаком «+» или «&».
В отличие от Qbasic на VBA использование постфикса $ не выделяет в ОП отдельной ячейки, но постфикс позволяет менять тип переменной внутри одной программы
Например: b$ = "two”: b = 2: MsgBox b$ & b
Слайд 5
Примеры
строковых констант
”A”, ”Заяц”, “F(X)”, “!#%^&*_+()$”
строковых выражений:
” А ” + ” В ” ⇒
” АВ ”
оператора присваивания
A$=”ИВАНОВ ”: B$=”ИВАН ”: C$=”Иванович”
FIO$=a$+b$+c$’ можно не использовать знак $
FIO ⇒ ИВАНОВ ИВАН ИВАНОВИЧ
Слайд 6
Особенности работы со строками
Неправильное написание операторов (будет обнаружено
при выполнении программы)
c$ = 2 + "TEXT"
нельзя
«сливать» число и текстовую константу
При попытке присвоить текстовой переменной результат арифметической операции результат будет преобразован в строковое выражение числа, например:
Stroka$ = Sin(3) + 2
Слайд 8
ASCII
Для кодирования символов используется: ASCII код
(American Standard
Code for Information Interchange) – стандартный код для информационного
обмена,
который введен в действие
Институтом стандартизации США – ANSI
(American National Standard Institute).
Слайд 10
Стандартные функции
обработки символьных переменных
При решении задач появляется
необходимость выделить цепочку символов из строкового выражения: найти слово,
часть слова, букву или цифру, любой символ в символьной переменной или символьном массиве.
Для подобной обработки целесообразно использовать соответствующие функции обработки строковых данных.
В дальнейшем договоримся, что при описании встроенных функций переменные x$ и y$ означают любые строковые выражения, а переменные m,n – выражения целого типа.
Слайд 11
Стандартные функции обработки символьных переменных (2)
Len(x$) –
число символов в символьной строке, включая пробелы.
Cells(1,1) =
Len(“ИНФОРМАТИКА”) ⇒ 11.
Instr([n],x$,y$) – осуществляет поиск подстроки y$ в строке x$, начиная с символа n
если n не указано, то поиск осуществляется с 1-го символа, например:
Name$ = “ИНФОРМАТИКА”
cells(1,2)= Instr(1,name$,”ФОРМА”) ⇒ 3
Обнаружив подстроку y$ в x$ функция Instr возвращает номер позиции 1-го символа подстроки. Если подстрока не найдена, то возвращается ноль.
Слайд 12
Стандартные функции обработки символьных переменных (3)
Mid(x$,n[,m]) – выделяет
подстроку в m символов из строки x$, начиная с
символа n.
Если m опущено или кол-во символов Если m=0 или n>длины строки, то результатом выполнения функции будет пустая строка.
Пример: a$ = Mid(“ПАЛИТРА", 3, 4)
b$=MID («кон»,4,1)
a$=ЛИТР b$=””.
Слайд 13
Стандартные функции обработки символьных переменных (4)
Space(n) – формирует
строку из n пробелов.
String(n,x$) – формирует строку из n
одинаковых символов, равных первому символу строки x$.
stroka$ = String(80, «*») + Space(10) + String(5, «abc»)
Строка будет иметь вид:
80 ***_ _ _ _ _ _ _ _ _ _ aaaaa
Слайд 14
Стандартные функции обработки символьных переменных (4)
Lcase (x$) –
переводит все символы строки в строчные буквы
Ucase (x$) –
переводит все символы строки в прописные буквы.
Left (x$,n) – выбираются n символов из строки слева
Right (x$,n) – выбираются n символов из строки справа
Str (числовое выражение) – возвращает строковое представление числа (для положительных чисел слева добавляется пробел)
Val (строковое выражение) – превращает строковое представление числа в числовое. Если строка начинается с нецифрового знака (_ + - цифра), то результатом выполнения является нуль.
Пример:
”Поздравляем с Новым ” & Str(Val(Right(Date,4))+1) & ” Годом!”
Date= «13-12-2014» => 2014=> 2014+1=>
«Поздравляем с Новым 2015 Годом!»
Слайд 15
Некоторые стандартные (не математические) функции VBA
Функция DATE возвращает
текущую системную дату компьютера в формате дд-мм-гггг
Функция TIME
возвращает текущее системное время компьютера. Оператор TIME$ устанавливает текущее системное время в Вашем компьютере.
Cells(1,4)=TIME Будет выведено: 8:01:31
TIME = "08:00:58" 'Замечание: Новое системное время остается в силе, пока Вы снова не измените его.
cells(2,4)= "Установленное время" +TIME
Слайд 16
Перерыв: просто забавные картинки
Слайд 17
Пример 1. Чему будет равен результат работы функции?
Function
text (a as string, b as string) as string
nl
= Len(a)
For i = 1 To nl
i = InStr(i, a, b)
If i <> 0 Then GoTo 20
Next i
20 text = Right(a, nl - i + 1)
End Function
Поиск номера символа, равного b=“U”
Если такой символ найден, то выход из цикла к метке с номером 20
В данном случае I = 25
Выбираем справа из «а» 10 символов
Слайд 18
Пример 2: Ввести фразу «Thy Will be done
in Earth as it is in Heaven!»
Сколько букв
"e" в фразе стоит на четных местах?
Sub test2()
Dim text As String, nt As Byte
text = "Thy Will be done in Earth as it is in Heaven!"
nt = Len(text)
ne = 0
For i = 1 To nt
ie = InStr(i, text, "e")
If ie = 0 Then Exit For
If ie Mod 2 = 0 Then ne = ne + 1
i = ie
Next i
MsgBox "Number of ""e"" is equal = " & ne
End Sub
Слайд 19
Пример 3:Расшифровать слово. Ключ к шифру: буквы закодированного
слово стоят на каждой третьей позиции, начиная с конца
закодированного слова.
Пример: Берем слово: «ЕЛКА». Вставим его по указанному ключу в слово «Новогодний»:
ноАвоКгоЛднЕий
Слайд 20
Function decod_word(word As String) As String
Dim dw As
String
dw = ""
nw = Len(word)
For i = nw -
2 To 1 Step -3
dw = dw & Mid(word, i, 1)
Next i
decod_word = dw
End Function
Sub main()
Dim cod_word As String
cod_word = "ноАвоКгоЛднЕий”
dec_word = decod_word(cod_word)
MsgBox dec_word
End Sub
Слайд 21
Пример 2. Программа сортировки символьного массива.
Данная программа демонстрирует
не только возможности взаимодействия п/п друг с другом, но
и правило передачи массивов в п/п: имя массива указывается в качестве формального параметра с пустыми скобками.