Слабко Руслан. Результаты контрольной по VBA.
вернуться на главную страницу можно, воспользовавшись ссылкой.
Оценка 1 балл (0,9+0,1).
Задание 1.
Руслан, и сама функция и входная переменная х при отсутствии описания типа становится Variant, что не самое рациональное решение. За это 0,1 балла и снято. То, что в первом If знак равенства отсутствует, а сама переменная box должна быть равна не корню из -3 (ты вдумайся, функция не зависит от х…возможно, конечно, теоретически, но редко встречается в такого родя задачах), а несколько иному выражению – это я, как бы не заметил, ну "типа" описАлся, бывает… Я бы рекомендовал тебе конструкцию 3 <= x <= 7 разделять впредь на две – x>=3 And x<=7 но учитывая то, что я увидел в следующей задаче, на момент написания контрольной эта рекомендация была не для тебя…
0,9
Public Function box(x)
If x < -3 Then
box Sqr(-3)
Else
End If
If -3 <= x <= 7 Then
box = (3 * x) / (5 * x + 3)
Else
End If
If x > 7 Then
box = (4 * x + 5) / (x * x + 1)
Else
End If
End Function
Задание 2.
Знаешь, как написанная тобой функция работает? НИКАК! Оператор And – [Логическое выражение] And [Логическое выражение] – это совсем не то, что у тебя записано. Да, я вижу, что оно у тебя что-то в ответе показывает – показывает оно кстати при любом a, b, c результат последней ветки – удвоенную сумму b и c. Условия записаны неправильно, я бы даже сказал абсолютно бредово, а VBA язык во многих случаях нечувствительный к типу переменных, и оно бредовые по сути условия воспринимает все как ИСТИНУ, т.е. последовательно заходит во все ветки, а в качестве ответа выдает то, что вычислено последним. Нет, про то, что ты перебрал не все возможные варианты – т.е. что делать если все числа положительные или все отрицательные, я уже как бы и не говорю.
0,1
Разработать функцию пользователя, вычисляющую удвоенную сумму неотрицательных чисел, из трех заданных. (1 балл)
Public Function service(a, b, c)
If a >= 0 & b >= 0 & c <= 0 Then
service = 2 * (a + b)
Else
End If
If a >= 0 & b <= 0 & c >= 0 Then
service = 2 * (a + c)
Else
End If
If a <= 0 & b >= 0 & c >= 0 Then
service = 2 * (b + c)
Else
End If
End Function
|