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 IleCyfrrozpoczyna definicję funkcji o nazwieIleCyfr.n As Longoznacza, że funkcja przyjmuje jeden argument (wejście) o nazwien, który jest typuLong. TypLongto typ danych służący do przechowywania dużych liczb całkowitych.As Integerna końcu mówi, że funkcja zwraca wartość całkowitą (Integer).
2. Inicjalizacja zmiennej wynikowej¶
Dim wynik As Integerdeklaruje zmiennąwynikjako liczbę całkowitą.wynik = 1inicjalizuje zmiennąwynikwartością 1, ponieważ nawet liczba jednocyfrowa ma jedną cyfrę.
3. Pętla obliczeniowa¶
While n > 9rozpoczyna pętlę, która będzie się wykonywać, dopókinjest większe niż 9. Liczba większa niż 9 ma przynajmniej dwie cyfry.
4. Dzielenie liczby i zliczanie cyfr¶
n = n / 10dzielinprzez 10. To efektywnie "usuwa" ostatnią cyfrę z liczby. Na przykład, 123 podzielone przez 10 daje 12.wynik = wynik + 1inkrementuje zmiennąwyniko 1. Każde podzielenie przez 10 oznacza, że znajdujemy kolejną cyfrę.
5. Koniec pętli¶
Wendkończy pętlęWhile. Pętla będzie kontynuowana, dopóki nie zostanie osiągnięty warunekn > 9.
6. Zwracanie wyniku¶
IleCyfr = wynikprzypisuje ostateczną wartość zmiennejwynikdo samej funkcjiIleCyfr, co oznacza, że funkcja zwróci tę wartość jako swój wynik.
7. Koniec funkcji¶
End Functionoznacza koniec definicji funkcji.