Teoria programowania: Pętle

article-thumbnail

Instrukcje warunkowe są często częścią mechanizmu zwanego pętlą, która pozwala wykonać czynność ustaloną przez warunek, daną ilość razy. Pętle są tworzone w celu oszczędności kodu oraz czasu. Ciało funkcji zapisujemy w nawiasie klamrowym. Kolejne wykonania pętli nazywamy iteracjami. Często możemy spotkać trzy rodzaje pętli.

while, do…while, for.

while

Pierwszym typem pętli jest pętla while(warunek), która wykonuje się dopiero po sprawdzeniu warunku. Jeśli warunek nie jest spełniony, to czynności będące w ciele pętli zostaną pominięte.

Gra „zgadnij liczbę” z pętlą while:

int x, los; // definiowanie zmiennych los = losuj(-1, 99)+1; Wypisz "Zgadnij liczbę z zakresu od 0 do 100 \t".

/* powyżej jest przedstawiony pseudokod imitujący funkcję losującą liczby z C++, języki różnią się między sobą w implementacji tej cechy */

Przeczytaj wartość x; // pierwsze czytanie wartości

while(x != los){

if(x < los) Wypisz "\nPodałeś mniejszą liczbę niż wylosowana \t"; else Wypisz "\nPodałeś większą liczbę niż wylosowana \t";

Przeczytaj wartość x; }

/* pętla zaczyna działanie w momencie w którym użytkownik nie trafi liczby ze zmiennej los. Istnieje możliwość pominięcia działania pętli. */

Wypisz "Brawo, trafiłeś liczbę. "; Wypisz los;

Przykładowy wynik wykonania powyższego programu

Zgadnij liczbę z podanego zakresu od 0 do 100 50 Podałeś mniejszą liczbę niż wylosowana 70 Podałeś większą liczbę niż wylosowana 60 Brawo, trafiłeś liczbę. 60

do…while

Drugim często spotykanym rodzajem pętli jest do…while(warunek), który wykonuje się również raz przed sprawdzeniem warunku. Oznacza to, że jeśli warunek nie zostanie spełniony, to czynności zdefiniowane w pętli zostaną wykonane tylko raz.

Gra „zgadnij liczbę” z pętlą while:

int x, y, odp; // definiowanie zmiennych x = losuj(-1, 99)+1; y = losuj(-1, 99)+1;

do{ Wyświetl x; Wyświetl " + "; Wyświetl y; Wyświetl " = "; Przeczytaj odp; Przerzuć do następnej linii; }while(odp != x + y);

Wyświetl "Poprawna odpowiedź!";

Przykładowy wynik wykonania powyższego programu:

10 + 5 = 15 Poprawna odpowiedź.

for

Ostatnim rodzajem pętli jest for(definicja; warunek; działanie po każdej iteracji), w którym możemy zdefiniować zmienną, warunek oraz działanie po każdej iteracji.

Dekrementacja od dziesięciu z pętlą for:

for(zdefiniuj i = 10; warunek i >= 0; dekrementuj i) { Wypisz i; // wypisuje "10!, 9!, "... Wypisz "!, "; };

Przykładowy wynik wykonania powyższego programu:

10!, 9!, 8!, 7!, 6!, 5!, 4!, 3!, 2!, 1!, 0!,

Pętle w schematach blokowych oznaczamy za pomocą rombu instrukcji warunkowej, posiadającej dwa rozgałęzienia, z których jedno jest wyjściem z pętli (jeśli warunek nie jest spełniony), a drugi ją powtarza (czyli jeśli warunek jest spełniony), dochodząc przed warunek pętli. W poniższym przykładzie kolorem jasnożółtym są zaznaczone bloki w pętli.

Gra „zgadnij liczbę” z pętlą while:



Autor tekstu: Jacek Woźniak