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

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