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

Омельченко Светлана. Результаты контрольной по 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