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

Никишина Ирина. Результаты контрольной по 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