Przeczytaj
Algorytm iteracyjny w C++
Zanim napiszesz swój pierwszy program realizujący algorytm iteracyjny w języku C++, musisz się dowiedzieć, jak w takim programie zastosować pętle. PętlaPętla pozwala na wykonanie sekwencji instrukcji w programie określoną liczbę razy. Wyobraźmy sobie, że chcemy wypisać na ekranie wszystkie liczby z zakresu od 1 do 50 i dla każdej z nich wyświetlić komunikat, czy jest ona liczbą podzielną przez 4. Pięćdziesięciokrotne zapisanie ciągu tych samych poleceń byłoby bardzo żmudne i czasochłonne, a kod długi i niezbyt czytelny. Dlatego podczas pisania programu skorzystamy z instrukcji pętli, które znacząco przyspieszą i ułatwią pracę. Jakie instrukcje iteracyjne mamy zatem do dyspozycji w języku C++?
W języku C++ możemy korzystać z następujących instrukcji iteracyjnych:
while
do‑while
for
Pętla while
Zacznijmy od omówienia pętli while
. Jej składnia w języku C++ wygląda następująco:
Na początku pętli musi pojawić się słowo kluczowe while
. W przypadku spełnienia warunku warunekWykonaniaPętli
zostanie wykonany ciąg instrukcji wewnątrz nawiasów klamrowych. Instrukcje będą cyklicznie wykonywane do momentu, gdy warunek pętli przestanie być spełniony. Jeżeli już na początku warunek nie będzie spełniony, polecenia w pętli nie zostaną ani razu wykonane.
Algorytm iteracyjny z wykorzystaniem instrukcji while
Zobaczmy teraz, jak będzie wyglądała pętla dla konkretnego problemu. Napiszmy zatem część programu realizującego algorytm zadany na początku tej sekcji niniejszego e‑materiału. Niech zostaną wypisane wszystkie liczby z zakresu od 1 do 50 z odpowiednim komunikatem o podzielności liczby przez 4.
Algorytm ten jest algorytmem iteracyjnym. Na początku deklarujemy zmienną całkowitą i
, w której zapiszemy wartość 1. Dopóki wartość zapisana w i
będzie mniejsza lub równa 50, program będzie wypisywał ją na ekranie – dzięki temu zostaną wypisane wszystkie liczby z zakresu 1 do 50. Następnie sprawdzamy, czy reszta z dzielenia danej liczby przez 4 jest równa 0. Jeśli tak, oznacza to, że jest podzielna przez 4, wyświetlamy zatem odpowiedni komunikat. W przeciwnym razie wypisujemy, że liczba nie jest podzielna przez 4. Na koniec w pętli inkrementujemyinkrementujemy zmienną i
, aby móc poddać analizie kolejną liczbę.
Pętla do‑while
Przedstawmy teraz składnię pętli do‑while
w języku C++:
W przypadku tej instrukcji pętla rozpoczyna się słowem kluczowym do
, a kończy się while
. Ponownie wykonywany jest ciąg instrukcji zawarty w nawiasach klamrowych, gdy spełniony zostaje warunekWykonaniaPętli
. Tym razem jednak jest on sprawdzany na końcu pętli. Oznacza to, że mamy pewność, iż instrukcje zostaną wykonane co najmniej jeden raz.
Algorytm iteracyjny z wykorzystaniem instrukcji do‑while
Sprawdźmy instrukcję do‑while
w praktyce. Napiszmy algorytm iteracyjny, który wypisze liczby od 35 do 12, a na końcu wyświetli sumę wypisanych liczb.
W powyższym algorytmie deklarujemy zmienną, której nadajemy wartość 35. W tym przypadku zmienna i
będzie zmniejszana, ponieważ chcemy wyświetlać liczby malejąco. Deklarujemy także zmienną suma
, w której będą przechowywane aktualne wartości sumy wyświetlanych liczb.
Dzięki temu, że warunek w pętli do‑while
sprawdzany jest na końcu, od razu wykonywane są instrukcje w nawiasach klamrowych. Wewnątrz pętli wyświetlamy aktualną wartość zmiennej i
, po czym dodajemy tę wartość do zmiennej suma
. Następnie dekrementujemydekrementujemy zmienną i
. Na koniec sprawdzany jest warunek pozwalający na przejście do kolejnej iteracji.
Pętla for
Składnia pętli for
wygląda następująco:
Pętla for
zawiera na początku słowo kluczowe for
. Z kolei warunekPoczątkowy
służy do stworzenia potrzebnych zmiennych, np. iteratora. Następnie, jeżeli warunekWykonania
jest spełniony, zostaje wykonywany ciąg instrukcji wewnątrz pętli. Ostatni element, czyli modyfikacja
, jest instrukcją zmieniającą wartość wyrażenia inicjującego po każdej iteracji pętli.
Algorytm iteracyjny z wykorzystaniem instrukcji for
Napiszmy algorytm iteracyjny obliczający wartość z wykorzystaniem pętli for
.
W algorytmie deklarujemy zmienną podstawa
i przypisujemy do niej liczbę, z której chcemy obliczyć silnięsilnię. Z kolei w zmiennej silnia
będzie zapisywany wynik obliczenia silni.
Wyrażeniem inicjującym jest zmienna
i
, której przypisujemy wartość 1.Warunkiem wykonania pętli jest sprawdzenie, czy wyrażenie inicjujące jest mniejsze lub równe 4.
Wyrażeniem modyfikującym jest inkrementacja zmiennej
i
.
jest iloczynem liczb naturalnych mniejszych lub równych 4, czyli:
W związku z powyższym, zadaniem pętli będzie mnożenie wyniku silnia
przez kolejne liczby naturalne: 1, 2, 3, 4. Oto polecenia wykonywane w ramach pętli for
:
Zaczynamy od wyrażenia inicjującego - zmiennej
i
przypisywana jest wartość 1.Sprawdzamy, czy zmienna
i
jest mniejsza lub równa zmiennejpodstawa
. Jeżeli tak, przechodzimy do kolejnego kroku; jeżeli nie – wychodzimy z pętli.Następnie wykonywane są instrukcje wewnątrz pętli.
Zwiększona zostaje zmienna
i
w celu uzyskania kolejnej liczby.Następuje powrót do kroku 2.
Słownik
zmniejszenie wartości argumentu o 1
zwiększenie wartości argumentu o 1
instrukcja iteracyjna, która umożliwia cykliczne wykonywanie ciągu instrukcji
- iloczyn liczb naturalnych mniejszych lub równych n