Rozwiązanie 5¶
Treść zadania¶
Napisz funkcję ZliczWyrazy
, która dla podanego tekstu zwróci liczbę wyrazów w nim zawartych. Za wyraz uznajemy ciąg znaków nie zawierający spacji, a wyrazy są oddzielone pojedynczą spacją.
Rozwiązanie¶
Function ZliczWyrazy(tekst As String) As Integer
Dim poz, wynik As Integer
poz = 1
wynik = 0
While poz > 0 And poz < Len(tekst)
poz = InStr(poz, tekst, " ")
If poz > 0 Then
poz = poz + 1
End If
wynik = wynik + 1
Wend
ZliczWyrazy = wynik
End Function
Opis rozwiązania¶
1. Definicja funkcji¶
Function ZliczWyrazy
rozpoczyna definicję funkcji o nazwieZliczWyrazy
.tekst As String
oznacza, że funkcja przyjmuje jeden argument (wejście) o nazwietekst
, który jest typuString
(ciąg znaków).As Integer
na końcu mówi, że funkcja zwraca wartość całkowitą (Integer
).
2. Deklarowanie i inicjalizacja zmiennych¶
Dim poz, wynik As Integer
deklaruje dwie zmiennepoz
iwynik
jako liczby całkowite.poz = 1
inicjalizuje zmiennąpoz
wartością 1, która będzie używana do śledzenia pozycji w tekście.wynik = 0
inicjalizuje zmiennąwynik
wartością 0, która będzie używana do zliczania wyrazów.
3. Pętla obliczeniowa¶
While poz > 0 And poz < Len(tekst)
rozpoczyna pętlę, która będzie się wykonywać, dopókipoz
jest większe od 0 i mniejsze od długości całego tekstu.
4. Szukanie spacji i zliczanie wyrazów¶
poz = InStr(poz, tekst, " ")
szuka pierwszej spacji w tekście zaczynając od pozycjipoz
. Jeśli znajdzie,poz
zostanie zaktualizowane do pozycji tej spacji.If poz > 0 Then poz = poz + 1
przesuwapoz
o jeden dalej, aby uniknąć ponownego zliczania tej samej spacji.wynik = wynik + 1
inkrementuje zmiennąwynik
o 1 za każdym razem, gdy znaleziono spację, co oznacza kolejny wyraz.
5. Koniec pętli¶
Wend
kończy pętlęWhile
.
6. Zwracanie wyniku¶
ZliczWyrazy = wynik
przypisuje ostateczną wartość zmiennejwynik
do samej funkcjiZliczWyrazy
, co oznacza, że funkcja zwróci tę wartość jako swój wynik.
7. Koniec funkcji¶
End Function
oznacza koniec definicji funkcji.