Функции преобразования данных

 

Среди встроенных функций 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

 

вернуться к содержанию