Rozwiązanie 6¶
Treść zadania¶
Napisz funkcję IleCyfr
zgodną z poniższą specyfikacją.
Specyfikacja¶
Dane¶
- \(n\) - liczba naturalna
Wynik¶
- Liczba cyfr liczby \(n\).
Rozwiązanie¶
Function IleCyfr(n As Long) As Integer
Dim wynik As Integer
wynik = 1
While n > 9
n = n / 10
wynik = wynik + 1
Wend
IleCyfr = wynik
End Function
Opis rozwiązania¶
1. Definicja funkcji¶
Function IleCyfr
rozpoczyna definicję funkcji o nazwieIleCyfr
.n As Long
oznacza, że funkcja przyjmuje jeden argument (wejście) o nazwien
, który jest typuLong
. TypLong
to typ danych służący do przechowywania dużych liczb całkowitych.As Integer
na końcu mówi, że funkcja zwraca wartość całkowitą (Integer
).
2. Inicjalizacja zmiennej wynikowej¶
Dim wynik As Integer
deklaruje zmiennąwynik
jako liczbę całkowitą.wynik = 1
inicjalizuje zmiennąwynik
wartością 1, ponieważ nawet liczba jednocyfrowa ma jedną cyfrę.
3. Pętla obliczeniowa¶
While n > 9
rozpoczyna pętlę, która będzie się wykonywać, dopókin
jest większe niż 9. Liczba większa niż 9 ma przynajmniej dwie cyfry.
4. Dzielenie liczby i zliczanie cyfr¶
n = n / 10
dzielin
przez 10. To efektywnie "usuwa" ostatnią cyfrę z liczby. Na przykład, 123 podzielone przez 10 daje 12.wynik = wynik + 1
inkrementuje zmiennąwynik
o 1. Każde podzielenie przez 10 oznacza, że znajdujemy kolejną cyfrę.
5. Koniec pętli¶
Wend
kończy pętlęWhile
. Pętla będzie kontynuowana, dopóki nie zostanie osiągnięty warunekn > 9
.
6. Zwracanie wyniku¶
IleCyfr = wynik
przypisuje ostateczną wartość zmiennejwynik
do samej funkcjiIleCyfr
, co oznacza, że funkcja zwróci tę wartość jako swój wynik.
7. Koniec funkcji¶
End Function
oznacza koniec definicji funkcji.