Терещенко Мария. Результаты контрольной по VBA.
вернуться на главную страницу можно, воспользовавшись ссылкой.
Оценка 7,2 балла (0,9+0,9+1+1+0,9+0,9+1,6).
Задание 1.
Мася ты гений:), ибо ты одна из немногих людей, кто описал здесь и далее типы переменных. Только от больших умов ты перемудрила – у тебя у типа Integer, то есть целого, а ответ, который равен y – вещественного (десятичного) типа Double. На самом деле, в ответе практически всегда получается число чуть меньше 1, и целый тип его округлял до 0, так что и y должна была быть вещественного типа.
0,9
Public Function zadanie1(x As Integer) As Double
Dim y As Integer
If x < -3 Then
y = 2 * Sqr(x)
ElseIf -3 <= x And x <= 7 Then
y = 2 * x / (5 * x + 3)
ElseIf x > 7 Then
y = (3 * x + 5) / (x * x + 1)
End If
zadanie1 = y
End Function
Задание 2.
А вот здесь пользователю надо было сказать, что положительных чисел нет, если их нет. Он исходя из нулевой суммы может быть и сам догадался бы, но правильнее было бы все-таки сообщение об этом сделать.
0,9
Public Function zadanie2(a As Integer, b As Integer, c As Integer) As Integer
Dim s As Integer
s = 0
If a > 0 Then s = s + a
If b > 0 Then s = s + b
If c > 0 Then s = s + c
zadanie2 = 2 * s
End Function
Задание 3.
ОК, умничка.
1
Public Function zadanie3() As Integer
Dim i As Integer, s As Integer
For i = 2 To 40 Step 2
s = s + i * (80 - i)
Next i
zadanie3 = s
End Function
Задание 4.
The best
1
Public Function zadanie4(x As Integer) As Integer
Dim s As Integer, i As Integer, k As Integer
i = Abs(x)
While i <> 0
k = i Mod 10
If k Mod 3 = 0 Then
s = s + k
End If
i = i \ 10
Wend
zadanie4 = s
End Function
Задание 5.
Супер, но за исключением одного - вот здесь уже B должно быть типа Variant, котрый по умолчанию. И еще - на будущее лучше число строк обозначать как n, а число столбцов -как m, просто так ориентироваться легче, строки – эта первая размерность, а n - ,более часто употрбляемая переменная, устоялось так.
0,9
Public Function zadanie5(b As Integer) As Integer
Dim m As Integer, n As Integer, i As Integer, j As Integer
Dim s As Integer
m = b.Rows.Count
n = b.Colums.Count
s = 1
For i = 1 To m
For j = 1 To n
If b(i, j) < 0 Then
s = s * b(i, j)
End If
Next i
Next j
zadanie5 = s
End If
End Function
Задание 6.
См. предыдущий пункт.
0,9
Public Function zadanie6(b As Integer)
Dim m As Integer, n As Integer, i As Integer, j As Integer
Dim s As Integer
m = b.Rows.Count
n = b.Colums.Count
s = 0
For i = 1 To m
For j = 1 To n
If b(i, j) > 0 And b(i, j) Mod 5 = 0 Then
s = s + 1
End If
Next i
Next j
zadanie6 = s
End If
End Function
Задание 8.
Масик, знаешь в чем прикол? В грамматической ошибке – Selection а не Selaction. И так два раза. Ну и еще - a As Integer – опять же не в тему здесь, сама понимаешь, почему. Не говоря уже об m = b.Rows.Count и n = b.Colums.Count – эти строчки уже появились, я так понял, когда обнаружилось, что программа не работает. Всего и дел-то было – Debug/Compile нажать, и посмотреть, какие ошибки отладчик показывает…
1,6
Public Sub zadanie8()
Dim a As Integer, m As Integer, n As Integer
a = Application.Selaction
m = b.Rows.Count
n = b.Colums.Count
n = UBound(a, 1)
m = UBound(a, 2)
'правый верхний a(1,m),правый нижний а(n,m)'
rez = a(1, m)
a(1, m) = a(n, m)
a(n, m) = rez
Application.Selaction = a
End Sub
|