Омельченко Светлана. Результаты контрольной по VBA.
вернуться на главную страницу можно, воспользовавшись ссылкой.
Оценка 10,4 балла, за К.р. 9,4 (0,9+0,5+0,8+0,9+0,9+0,9+2,7+1,8)+1 балл за реферат.
Задание 1.
Света, все ОК, но только типы надо было указать, - за это 0,1 балла у всех снимается. Кстати, лучше все-таки специальную функция для корня использовать Sqrt (x)
0,9
Public Function zade_1(x)
If x < -3 Then
y = 2 * (x ^ 0.5)
End If
If x >= -3 And x <= 7 Then
y = (3 * x) / (5 * x + 3)
End If
If x > 7 Then
y = (4 * x + 5) / (x ^ 2 + 1)
End If
zade_1 = y
End Function
Задание 2.
Света, речь об "удвоенной сумме неотрицательных чисел, из трех заданных", то есть как раз отрицательные а не положительные надо было из суммы исключать. А строки "c > o" я от тебя вообще не ожидал – всем, у кого она есть, я очень рекомендовал разбираться в том, что списывается?. Да, а про типы здесь уже неуместно.
0,5
Public Function zade_2(a, b, c)
s = a + b + c
If a > 0 Then
s = s - a
End If
If b > 0 Then
s = s - b
End If
If c > o Then
s = s - c
End If
zade_2 = 2 * s
End Function
Задание 3.
Ай, Светик, Светик. Ну не 70-j a 80-j, типы опять же.
0,8
Public Function zade_3()
s = 0
For j = 68 To 40 Step -2
s = s + (j * (70 - j))
Next j
zade_3 = s
End Function
Задание 4.
Типы опять же не совсем те…
0,9
Public Function zad4(ByVal n As Variant) As Variant
Dim a As Double
zad4 = 0
While n <> 0
a = n Mod 10
If a Mod 5 <> 0 Then zad4 = zad4 + a
n = n / 10
Wend
End Function
Задание 5.
Ошибки нет, но лучше и начинать со строк, то есть с Rows, и присваивать их количество переменной n, более употребляемой, чем m. Ну и типы переменных.
0,9
Public Function zad5(a)
n = a.Columns.Count
m = a.Rows.Count
proizv = 1
For i = 1 To m
For j = 1 To n
If a(i, j) < 0 Then
proizv = proizv * a(i, j)
End If
Next j
Next i
zad5 = proizv
End Function
Задание 6.
ОК, только типы опять же надо было указать.
0,9
Public Function zad6(a)
n = a.Columns.Count
m = a.Rows.Count
zad6 = 0
For i = 1 To m
For j = 1 To n
If a(i, j) > 0 And a(i, j) Mod 7 = 0 Then
zad6 = zad6 + 1
End If
Next j
Next i
End Function
Задание 7.
Все ОК, кроме наличия отсутствия типов переменных.
2,7
Public Function Prostoe(a) As Boolean
a = Abs(a)
If a Mod 2 = 0 And a <> 2 Or a = 1 Or a = 0 Then
Prostoe = False
Else
i = 3
koren = Sqr(a)
While i <= koren And a Mod i <> 0
i = i + 2
Wend
If i > koren Then Prostoe = True Else Prostoe = False
End If
End Function
Private Sub CommandButton1_Click()
a = Val(TextBox1.Value)
b = Val(TextBox2.Value)
c = Val(TextBox3.Value)
For i = a To b
If Prostoe(i) = False Then
If i Mod 10 = c Then
ListBox1.AddItem (i)
End If
End If
Next i
End Sub
Private Sub CommandButton2_Click()
UF1.Hide
End Sub
Задание 8.
Ну типы пять же. И на будущее - одна переменная лишняя – вместо строчек rez = a(imin, jmin): a(imin, jmin) = a(imax, jmax): a(imax, jmax) = rez можно ограничиться a(imin, jmin) = maxi, a(imax, jmax) = mini – это не ошибка, конечно…
1,8
Public Sub zad8()
a = Application.Selection
n = UBound(a, 1)
m = UBound(a, 2)
Mini = a(1, 1)
Maxi = a(1, 1)
imin = 1: jmin = 1
imax = 1: jmax = 1
For i = 1 To n
For j = 1 To m
If Mini < a(i, j) Then Mini = a(i, j): imin = i: jmin = j
If Maxi > a(i, j) Then Maxi = a(i, j): imax = i: jmax = j
Next j
Next i
rez = a(imin, jmin)
a(imin, jmin) = a(imax, jmax)
a(imax, jmax) = rez
Application.Selection = a
End Sub
|