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

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

Оценка 5,3 балла (0,9+0,4+0,9+0,8+0,9+0,5+0,9).

Задание 1.

Юля, типы переменных и функции могла бы и описать. Хотя это многие не сделали, соответственно, у всех, кто не сделал снято 10% (или в данном случае, 0,1 балла).

0,9

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

Задание 2.

Юля, увы, но речь шла об "удвоенной сумме неотрицательных чисел"… Про типы я уже не говорю.

0,4

Public Function Fun2(a, b, c)
If a >= 0 And b >= 0 Or b >= 0 And c >= 0 Or a >= 0 And c >= 0 Then
Fun2 = "Введите хотя бы 2 отрицательных числа"
ElseIf a >= 0 Then
Fun2 = b * c
ElseIf b >= 0 Then
Fun2 = a * c
ElseIf c >= 0 Then
Fun2 = a * b
Else
Fun2 = a * b * c
End If
End Function

Задание 3.

См. п.1

0,9

Public Function Fun3()
s = 0
For i = 12 To 40 Step 2
s = s + i * (80 - i)
Next i
End Function

Задание 4.

Юля, входная переменная – только одно число n. А у тебя еще и с почему-то. И способ поиска и суммирования какой-то нетрадиционный, хотя как бы работающий даже.

0,8

Public Function Fun4(ByVal n, c As Integer)
s = 0
While n <> 0
c = n Mod 10
n = n \ 10
If c Mod 5 = 0 Then
c = 0
End If
s = s + c
Wend
End Function

Задание 5.

Рекомендации на будущее - лучше и начинать со строк, то есть с Rows, и присваивать их количество переменной n, - устоялось как то так. Соответственно, первый индекс – номер строки - будет от I до n. Ну и типы переменных.

0,9

Public Function Fun5(a As Variant)
n = Columns.Count
m = Rows.Count
p = 1
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
Fun5 = p
End Function

Задание 7.

Нарисовать форму – это вариант показать, что ты что-то умеешь, но не более..

0,5

Задание 8.

Знаешь, почему не работало? Потому что такое написание программы предполагает, что во первых сработает оно только тогда, когда максимум будет больше 1, а минимум меньше, что как ты понимаешь, не всегда верно – надо было и тому и другому присвоить значение перового элемента массива, и в добавок, еще и сохранить его индексы до цикла: imin = 1: jmin = 1 : imax = 1: jmax = 1. Ну а потом – в самом конце - еще и обратную операцию сделать для той которая в самом начале проделана – Selection=a. Ну и твою последнюю строчку - a(imin, imax) = t – надо было правильно написать - a(imin, imin) = t

0,9

Public Sub Sub8()
a = Selection.Value
m = UBound(a, 1)
n = UBound(a, 2)
Max = 1
Min = 1
For i = 1 To m
For j = 1 To n
If a(i, j) < Min Then
Min = a(i, j): imin = i: jmin = j
End If
If a(i, j) > Max Then
Max = a(i, j): imax = i: jmax = j
End If
Next j
Next i
t = a(imax, jmax)
a(imax, jmax) = a(imin, imax)
a(imin, imax) = t
End Sub