Функции преобразования данных
Среди встроенных функций VBA следует выделить такие, которые работают с различными типами данных и выполняют соответствующие преобразования строковых и числовых значений. В таблице 24 представлен синтаксис таких функций, их описание и примеры использования.
Таблица 24
Краткие сведения о функциях преобразования данных
Синтаксис функции | Описание функции | Пример | |
Вызов функции | Результат | ||
Val(строка) | Возвращает число, содержащееся от начала строки до первого символа, не распознаваемого в качестве числа. Игнорируются символы пробела, табуляции и перевода строк | Val(" 1 2.3") Val(" 1 2,3") Val("1" & chr(10) & "2") | 12.3 |
Str(число) | Возвращает строковое представление числа с учётом знака | Str(1+3) Str(1-3) | " 4" "-2" |
Len(выражение) | Возвращает размер памяти в байтах, занимаемый числовым типом данных, или длину строки-аргумента | Len(a%) Len("123") | |
Chr(код) * | Возвращает строку, состоящую из символа, соответствующего коду ANSI. | Chr(62) Chr(65) Chr(225) | ">" "A" "б" |
Asc(строка) * | Возвращает число, представляющее ASCII или ANSI код первого символа строки | Asc(">") Asc(Chr(65)) Asc("бр-р…") | |
Format(выражение[, формат]) * | Возвращает значение выражения, преобразованное согласно описанию формата. Описанию этой функции в справочной системе VBA посвящено около десяти страниц | Format(4) Len(Format(4)) Format(12.3, "##0.00") Format(0.05, "0.0%") Format("xYz", ">") | "4" "12.30" "5.0%" "XYZ" |
Вопросы и тестовые задания для самоконтроля
1. Даны выражения, записанные на алгоритмическом языке VBA. Запишите эти выражения в виде математических формул: sin(x)^2+cos(x)^2; a^2*i+exp(c*d); (b+sin(x))/(c+d); sin(x)^2+cos(x^2); a^(2*i)+exp(c)*d; b+sin(x)/c+d.
2. Укажите приоритет выполнения операций и определите значения логического выражения при X=0 и Y=1.5, а также при X=2.5 Y=0.5.
X+Y<4 AND X^2 + Y^2>=4
3. Укажите приоритет выполнения операций и определите значения логического выражения при X=0.5 и Y=0.5, а также при X=1.5 и Y=0.5.
ABS(X) + ABS(Y)<=1
4. Укажите приоритет выполнения операций и определите значения логического выражения при X=0.5 и Y=0.5, а также при X=1.5 и Y=1.5.
(ABS(X)>=1 OR ABS(Y)>=1) AND X^2+Y^2<9
5. Дан фрагмент программы:
If x<1 Then
y=x+1
Elseif x<2 Then
y=x+3
Elseif x<4 Then
y=x^2
Else
y=x-2
End If
z=2*y
MsgBox "X=" & x & " Y=" & y & " " & "Z=" & z
Укажите результат работы этого фрагмента в каждом из следующих случаев: x=0.5; x=1.5; x=3; x=5.
6. Дан фрагмент программы:
x = val(InputBox("Введите координату x”))
y = val(InputBox("Введите координату y"))
sR = "точка (" & x & " , " & y & ") находится"
If x+y<2 and x>0 and y>0 Then
MsgBox sR & "в треугольнике"
Elseif (x+1)^2+(y+1)^2<1 Then
MsgBox sR & "внутри круга"
Else
MsgBox sR & "вне областей"
End If
Укажите результат работы этого фрагмента для каждого из случаев: x=0.5 и y=0.8; x=2.5 и y=1.5; х=-0.7 и y=1; x=-0.7 и y=1.
7. Назовите операторы языка VBA, с помощью которых организуется циклический вычислительный процесс, назначение и отличительные особенности выполнения каждого из них.
8. Можно ли выйти из цикла FOR … NEXT до его завершения и если можно, то как?
9. Укажите назначение оператора WHILE … WEND?
10. Укажите, какой результат будет выведен на экран (в файл) при выполнении следующего фрагмента программы:
For t=1 To 7
Print t; t+2;
Next t
11. Укажите, какой результат будет выведен на экран (в файл) при выполнении следующего фрагмента программы:
For f=0 To 9 Step 3
Print 2*f; f*f;
Next f
12. Определите, сколько раз будет выполнено тело цикла в приведенном фрагменте программы:
For i = 2 To n Step 1
s = s + i
Next i
при n, равном: а) 2; б) 0; в) 4; г) 5.
13. Определите значение переменной a после выполнения каждого из фрагментов программы:
1) a = 0 For i =1 To 7 a = a + i Next i | 2) a = 1: n = 7 For i = n To 2 Step –1 a = a + i Next i | 3) a = 0 For i = 2 To 7 a = a + i Next i |
14. Определите значение переменной с после выполнения каждого из фрагментов программы:
1) c=0 For i=1 To 4 c=c+(i+2) Next i | 2) c=1 For i=1 To 4 Step 2 c=c*(i+1) Next i | 3) c=0 For i=2 To 5 Step 2 c=c+i^2 Next i |
15. * Укажите, какое значение примет строковая переменная N$ в результате работы фрагмента программы:
W$="Я ХОРОШО УМЕЮ РАБОТАТЬ НА IBM PC"
N$=MID$(W$,3,7)+MID$(W$,15)
1) Я УМЕЮ
2) РАБОТАТЬ УМЕЮ
3) ХОРОШО РАБОТАТЬ
4) РАБОТАТЬ ХОРОШО
5) ХОРОШО РАБОТАТЬ НА IBM PC
6) Я УМЕЮ РАБОТАТЬ НА IBM PC
вернуться к содержанию
Дата добавления: 2015-10-26; просмотров: 795;