Pętla - blok instrukcji wykonywanych wielokrotnie. Zależnie od sposobu zatrzymania pętli dzielimy je na kilka typów.
Przebieg (iteracja) - każde pojedyncze wykonanie bloku instrukcji
Licznik pętli - zmienna (całkowita) kontrolująca ilość przejść pętli (powtórzeń ciągu instrukcji) oznaczona najczęściej literami i, j, k.
Instrukcja break - przerywa wykonywanie pętli.
Instrukcja continue - przerywa działanie bieżącego obiegu pętli i rozpoczyna następny.
Postać ogólna:
for (inicjacja; warunek; krok)
{
instrukcje
}
Przykład: Wypisanie liczb od 0 do 10.
int main()
{
int k;
for (k=0; k<=10; k++)
{
cout << k << endl;
}
system ("PAUSE");
return 0;
}
Opis
Liczba powtórzeń ustalona przed rozpoczęciem działania pętli.
Pętla for składa się z 3 części:
inicjacja - ustawienie licznika (zmiennej sterującej - określa kroki iteracji/powtórzeń) na wartość początkową (zwyczajowo 0)
warunek (kontynuacji pętli) - porównanie licznika z wartością końcową przed każdym przebiegiem pętli; wpływa na ilość pętli tj. bloki instrukcji będą powtarzane dopóki warunek spełniony, a w przypadku niespełnienia pętla kończy się; pominięcie warunku - pętla wykonywana w nieskończoność
krok - zwiększenie lub zmniejszenie licznika na koniec każdego przebiegu (bezpośrednio przed wykonaniem obliczenia wyrażenia warunkowego)
#include <iostream>
using namespace std;
int main()
{
int i, j;
cout << "Prostakat o boku 10 na 20: "<< endl;
for(i=0; i<10; i++)
{
for(j=0; j<20; j++)
cout << "*";
cout << endl;
}
return 0;
}
w tym zadaniu Instrukcja iteracyjna for jest zagnieżdżone tzn. instrukcją powtarzaną w pętli jest kolejna instrukcja pętli Liczba kroków tej iteracji jest określona przez iloczyn: n · m, gdzie n i m to liczby powtórzeń odpowiednio w każdej pętli.
7. Zmodyfikuj program tak, aby narysował prostokąt (o bokach n,m) składający się z gwiazdek o wymiarach (ilości gwiazdek) podawanych z klawiatury, gdzie n - ilość gwiazdek w pionie, m - w poziomie
8. Napisz programy, które narysują przedstawione poniżej choinki (patrz poniżej) składające się z gwiazdek * lub innych znaków, których wysokość wczytywana będzie z klawiatury.
Postać ogólna
while (warunek) instrukcja;
lub
while (warunek)
{
ciąg instrukcji
}
Opis
Najpierw sprawdzany jest warunek (na początku każdego obiegu) i dopóki jest spełniony wykonywana jest zawarta w pętli instrukcja (instrukcja musi zmieniać wartość warunku bo inaczej pętla byłaby nieskończona)
Jeśli warunek będzie niespełniony (może tak być od razu) to obieg nie zostanie wykonany i program przejdzie do wykonywania kodu za instrukcją while.
Przykład
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int n;
cout<<"Ile kolejnych liczb naturalnych wyswietlic?";
cin>>n;
int i=0; //inicjacja licznika
while(i<n)
{
cout<<i<<" ";
i++; //inkrementacja licznika
}
cout<<endl;
system("PAUSE");
}
Postać ogólna
do instrukcja; while(warunek);
lub
do
{
ciąg instrukcji
} while(warunek);
Opis
Najpierw wykonywana jest instrukcja (czyli na pewno raz zostanie wykonana), a potem sprawdzany warunek (na końcu obiegu).
Jeśli warunek będzie spełniony, to pętla wykona następny obieg, powtarzając zawartą w niej instrukcje. Jeśli warunek będzie niespełniony to nastąpi wyjście z pętli i program przejdzie do wykonania kodu za instrukcją do while.
Przykład
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int n;
cout<<"Ile kolejnych liczb naturalnych wyswietlic?";
cin>>n;
int i=0; //inicjacja licznika
do
{
cout<<i<<" ";
i++; //inkrementacja licznika
}
while(i<n);
cout<<endl;
system("PAUSE");
}
Przykładowe zadania w których wykorzystywane są instrukcje iteracyjne:
Napisz program wypisujący kolejne liczby od 0 do 10.
Napisz program wypisujący kolejno liczby od 10 do 0. Zmienną k zdefiniuj bezpośrednio w pętli, co skróci zapis programu.
Liczby parzyste. Napisz program wypisujący kolejne liczby parzyste od 1 do 20
Liczby nieparzyste. Napisz program wypisujący kolejne liczby nieparzyste z przedziału od 1 do 20 (modyfikacja zad. wcześniejszego).
Liczby parzyste. Napisz program wypisujący n kolejnych liczb parzystych, gdzie n podajemy z klawiatury.
Napisz program, który narysuje z gwiazdek (*) prostokąt o bokach 10 na 20 (gwiazdek).
Napisz program wypisujący n kolejnych (gdzie n podajemy z klawiatury):
liczb naturalnych
liczb nieparzystych
liczb parzystych
liczb podzielnych przez 3
potęg cyfry 2
sum liczb naturalnych
liczb Fibonacciego