Никишина Ирина. Результаты контрольной по VBA.
вернуться на главную страницу можно, воспользовавшись ссылкой.
Оценка 3,6 балла (1+0,9+0,9+0,8).
Задание 1.
Ира, даже и придраться не к чему. Ну, на всякий случай на будущее - x ^ (1 / 2) лучше все-таки было написать в форме Sqr(x).
1
Public Function y(x As Double) As Double
If x > 10 Then
y = x ^ (1 / 2)
End If
If x <= 10 And x > 5 Then
y = (10 * x) / (2 * (15 * x - 5))
Else
y = (3 * x + 5) / (x ^ 2 + 1)
End If
End Function
Задание 2.
А вот здесь уже можно начинать придираться. Для начала: ты типы, кроме используемого по умолчанию Variant, знаешь? Из предыдущего задания вроде бы следует, что знаешь. Так почему не используешь? В остальном же ОК, хотя есть и более рациональные варианты того же самого. Но не буду вносить сумятицу – этот вариант вполне работоспособен, а -0,1 – за типы.
0,9
Разработать функцию пользователя, вычисляющую произведение отрицательных чисел, из трех заданных. (1 балл)
Public Function d(a, b, c)
If a >= 0 And b >= 0 And c >= 0 Then
d = "введите хотя бы одно отрицательное число"
End If
If a >= 0 Then
d = b * c
ElseIf b >= 0 Then
d = a * c
ElseIf c >= 0 Then
d = a * b
End If
If a >= 0 And b >= 0 Then
d = c
ElseIf b >= 0 And c >= 0 Then
d = a
ElseIf a >= 0 And c >= 0 Then
d = b
End If
End Function
Задание 3.
Продолжаю придираться к типам – другого ничего нет. Задание 4 ниасилила?
0,9
Разработать функцию пользователя, вычисляющую сумму: 13*87+16*84+19*81...+31*70 (1 балл)
Public Function f()
s = 0
For i = 13 To 31 Step 3
s = s + i * (100 - i)
Next i
f = s
End Function
Задание 5.
Ира, все-таки лучше было как-то дать знать, что речь идет именно о задании 5 а не 4.
Знаешь, почему не работает? Потому что, во-первых, внешний цикл ты закрываешь как next n, а открывался он по переменной r. Соответственно, и закрыть надо было как next r. Во-вторых, еще одно, наводящее на грустные мысли. Строчка s = o вместо s=0 (т.е. нулю) заставляет думать, что ты переписывала – например, со шпоры - не очень понимая, что именно ты переписываешь – просто эта "ошибка" носит массовый характер и я каждому ее допустившему именно так и пишу. И, в-третьих, ошибка в строке n = a.Colums.Count – надо не Colums, а Columns – с буквой n. Будем считать, что я подумал обо всех трех траблах, что это просто описки, но исключительно для себя – советовал бы разобраться с каждой НАПИСАННОЙ ТОБОЙ строчкой – что именно она означает, зачем она здесь и т.д.
0,8
5. Разработать функцию пользователя, вычисляющую сумму положительных элементов массива (1 балл)
Public Function o(a As Variant)
n = a.Colums.Count
m = a.Rows.Count
s = o
For r = 1 To m
For c = 1 To n
If a(r, c) > 0 Then s = s + a(r, c)
Next c
Next n
o = s
End Function
|