Connected by... logo
  Главная
Market Connected by Velcom Connected by МТС Connected by БелСел Connected by Белтелеком Оборудование  

Рекун Татьяна. Результаты контрольной по VBA.
вернуться на главную страницу можно, воспользовавшись ссылкой.

Оценка 11,7. Из них за контрольную 0,9+0,9+0,9+0,9+0,8+0,8+2,7+1,8=9,7, два дополнительных балла – за попадание в призовую тройку при сдаче контрольной и реферата.

Задание 1.

А функция почему типа Variant?

0,9

Public Function zz1(x As Integer)
If x < -3 Then
zz1 = 2 * x ^ 0.5
ElseIf x >= -3 And x <= 7 Then
zz1 = (2 * x) / (5 * x + 3)
ElseIf x > 7 Then
zz1 = (3 * x + 5) / (x ^ 2 + 1)
End If
End Function

Задание 2.

То же функция типа Variant?

0,9

2. Разработать функцию пользователя, вычисляющую удвоенную сумму положительных чисел, из трех заданных. (1 балл)
Public Function zz2(a As Integer, b As Integer, c As Integer)
Dim s As Integer
s = 0
If a > 0 Then
s = s + a
End If
If b > 0 Then
s = s + b
End If
If c > 0 Then
s = s + c
End If
s = 2 * s
zz2 = s
End Function

Задание 3.

Все равно Variant? И еще, это не ошибка, но описывать переменные можно в одну строку - Dim i As Integer, s As Integer

0,9

3. Разработать функцию пользователя, вычисляющую сумму: 2*78+4*76+6*74...+40*40 (1 балл)
Public Function zz3()
Dim i As Integer
Dim s As Integer
s = 0
For i = 2 To 40 Step 2
s = s + i * (80 - i)
Next i
zz3 = s
End Function

Задание 4.

См. п.3

0,9

4. Разработать функцию пользователя, вычисляющую сумму кратных 3 цифр числа
Public Function zz4(n As Integer)
Dim s As Integer
Dim b As Integer
s = o
While n <> 0
b = n Mod 10
If b Mod 3 = 0 Then
s = s + b
End If
n = n \ 10
Wend
zz4 = s
End Function

Задание 5.

Таня, смотри: m – число колонок (столбцов), n – число строк. Первый индекс элемента массива, то есть тот, который стоит на первом месте – это номер его строки, второй – номер столбца. То есть если i=1 to m, как у тебя, то это не совсем правильно. Ну и тип функции…

0,8

5.Разработать функцию пользователя, вычисляющую произведение отрицательных элементов массива (1 балл)
Public Function zzz5(a As Variant)
Dim m As Integer
Dim n As Integer
Dim p As Integer
p = 1
m = a.Columns.Count
n = a.Rows.Count
For i = 1 To m
For j = 1 To n
If a(i, j) < 0 Then
p = p * a(i, j)
End If
Next j
Next i
zzz5 = p
End Function

Задание 6.

См. п.5

0,8

6.Разработать функцию пользователя, вычисляющую количество кратных 5, положительных элементов массива (1 балл)
Public Function zz6(a As Variant)
Dim m As Integer
Dim n As Integer
Dim k As Integer
k = 0
m = a.Columns.Count
n = a.Rows.Count
For i = 1 To m
For j = 1 To n
If a(i, j) > 0 And a(i, j) Mod 5 = 0 Then
k = k + 1
End If
Next j
Next i
zz6 = k
End Function

Задание 7.

Строчка ii = Abs(ii) в данном случае не имеет смысла. Но оценка снижена из-за отсутствия описания типов для переменных m, n, k, r, а также koren в функции prost.

2,7

7.На отрезке [n, m] найти сумму всех простых чисел, заканчивающиеся цифрой К. Для ввода исходных данных и вывода результатов, должна быть разработана пользовательская форма. (3 балла)
Private Sub CommandButton1_Click()
Dim ii As Integer
r = " "
m = Val(TextBox1.Value)
n = Val(TextBox2.Value)
k = Val(TextBox3.Value)
ii = Abs(ii)
For ii = m To n
If prost(ii) And ii Mod 10 = k Then
r = r & " " & Str(ii)
End If
Next ii
TextBox4.Value = r
End Sub
Public Function prost(l As Integer) As Boolean
Dim i As Integer
If l Mod 2 = 0 And l <> 2 Or l = 1 Then
prost = False
ElseIf l = 2 Then
prost = True
Else
i = 3
koren = Sqr(l)
While i <= koren And l Mod i <> 0
i = i + 2
Wend
If i > koren Then prost = True Else: prost = False
End If
End Function

Задание 7.

Строчка niz = a(n, m) в данном случае не имеет смысла. Но оценка снижена из-за отстуствия описания типов переменных.

1,8

8. Составить макрокоманду, которая в выделенном диапазоне рабочей таблицы , переставит правый верхний и правый нижний элементы (2 балла)
Public Sub zz8()
a = Application.Selection
n = UBound(a, 1)
m = UBound(a, 2)
verx = a(1, m)
niz = a(n, m)
rez = a(1, m)
a(1, m) = a(n, m)
a(n, m) = rez
Application.Selection = a
End Sub