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

Терещенко Мария. Результаты контрольной по 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