Chciałbym zdefiniować funkcję w języku Visual Basic, która oblicza podatek dochodowy w danym nawiasie. Dane wejściowe powinny być dochodem, krańcową stawką podatku, granicą dolnego wspornika i - opcjonalnie - granicą górnego wspornika. (Dla górnego nawiasu nie ma górnej granicy).Ustal, ile argumentów (opcjonalnych) faktycznie przekazano do funkcji VBA?
Oto, jak sobie z tym poradziłem. Po pierwsze, określenie funkcji "rampa" w następujący sposób:
Public Function ramp(x)
ramp = (x + Abs(x))/2
End Function
, który jest w zasadzie taki sam, jak gdyby (x < 0,0 X,). Potem określenia funkcji (w języku polskim) dla podatku jako
Public Function schijfbelasting(inkomen, ondergrens, bovengrens, tarief)
schijfbelasting = ramp(tarief * (inkomen - ondergrens)) - ramp(tarief * (inkomen - bovengrens))
End Function
Here „inkomen” = dochód, „ondergrens” = dolna granica wspornik „bovengrens” = górna granica wspornik, „tarief” = krańcowa stopa podatkowa , a wynik "schijfbelasting" = podatek w określonym nawiasie.
To wszystko działa w porządku, poza tym, że chciałbym, aby „bovengrens” (górnej granicy wspornik) Opcjonalnie za pomocą
Optional bovengrens
w Matlab, chciałbym użyć „nargin” (liczba argumentów) funkcji wykonać coś takiego:
Public Function schijfbelasting(inkomen, ondergrens, Optional bovengrens, tarief)
If nargin==4
schijfbelasting = ramp(tarief * (inkomen - ondergrens)) - ramp(tarief * (inkomen - bovengrens))
Elseif nargin==3
schijfbelasting = ramp(tarief*(inkomen-ondergrens))
End If
End Function
Jednak nie jestem świadomy funkcji podobnej do "nargin" w Visual Basic. Może to być również coś w stylu "jeśli argument" bovengrens "jest zdefiniowany". Czy ktoś wie, jak podejść do tego problemu? Z góry dziękuję.
P.S. Mam świadomość, że mogę uczynić kod "pracą", wypełniając bardzo dużą liczbę dla "granicy" klamry w górnym przedziale, ale nie uważam tego eleganckiego kodowania.
jeśli używasz 'Opcjonalnie parameter' w definicji funkcji wszystkie parametry, które następują po pierwszej' Optional' być 'Optional' też. Tak więc przenieś 'Opcjonalne bovengrens' na koniec listy parametrów lub utwórz' Opcjonalny tarief'. także. –