Programowanie 5
Instrukcja iteracyjna to inaczej instrukcja pętli. W języku C++ jedną z instrukcji iteracyjnych jest instrukcja for.
Do określenia liczby kroków iteracji (powtórzeń) stosujemy tzw. zmienną sterującą.
for (wyrażenie_początkowe; warunek; wyrażenie_pętli) - to zmienna sterująca.
lista_instrukcji;
Komputer najpierw wykonuje wyrażenie początkowe (np. i = 0). Następnie, dopóki spełniony jest warunek, komputer wykonuje listę instrukcji, apotem oblicza wartość wyrażenia pętli.
Na przykład instrukcja:
for (i=0; i<5; i++)
{
cout << "Podaj liczbe: ";
cin >> a;
}
oznacza, że polecenie ujęte w blok { } program wykona 5 razy.
Wyrażenie i++ oznacza - "zmiennej i przypisz wartość i zwiększoną o 1". Inaczej: i= i +1.
Komputer wykona polecenie w bloku gdy zmienna i jest mniejsza od 5 ( czyli dla zmiennej i równej kolejno: 1,2,3,4).
Przykład- algorytm wyszukiwania największej liczby spośród pięciu liczb.
Interpretacja działania programu
Np. Po wyświetleniu komunikatu Podaj liczbe - wprowadzamy liczbę z klawiatury a=5
(jest to w tej chwili Max- pierwsza liczba wprowadzona, nie ma innej liczby).
Rozpocznie się następna pętla, zgodnie z zasadą i=i+1 albo i=i++ (umownie: druga pętla) więc pojawi się ponownie komunikat Podaj liczbe.
Wprowadzimy liczbę 7 (która jest większa od 5). Max przyjmie wartość 7- zgodnie z zapisem: else if (a > max) max = a; i rozpocznie się kolejna pętla.
Wartość Max to oczywiście 7.
Wprowadzimy liczbę 3 (która jest mniejsza od 5 i 7). Max przyjmie wartość 7- zgodnie z zapisem: else if (a > max) max = a; i rozpocznie się kolejna pętla.
Wartość Max to oczywiście 7.
Wprowadzimy liczbę 9 (która jest większa od 5 i 7 oraz 3). Max przyjmie wartość 9- zgodnie z zapisem: else if (a > max) max = a;
Wartość Max to oczywiście 9.
Program wykona i<5 pętli czyli cykl: 0,1,2,3,4 i wybierze Max.
Dla przykładu Max dla 4 powtórzeń z poniższego zbioru wynosi 9.
a=5
a=7
a=3
a=9
Czy taka interpretacja powyższego programu jest prawidłowa?
ZADANIE:
Napisz program wyszukujący najmniejszą liczbę w zbiorze liczb. Użyj zmiennej Min.