50 Godzina 4
IA:
Podaj dwie liczby. Pierwsza: 10 Druga: 2
Dzieła sie bez reszty
Wprowadzane są dwie liczby. Następnie są porównywane. Pierwsza instrukcja if, w linii 19, sprawdza, czy pierwsza z podanych liczb jest większa lub równa drugiej. Jeśli nie, to wykonywana jest linia 31 (po alternatywie else).
Jeśli pierwszy if jest prawdziwy, to rozpoczyna się wykonywanie bloku kodu zaczynającego się w linii 20. W linii 21 sprawdzany jest kolejny warunek if. Sprawdza on, czy reszta z dzielenia pierwszej liczby przez drugą jest równa zero. Jeśli tak, to pierwsza liczba dzieli się bez reszty przez drugą lub liczby są sobie równe. Instrukcja if w linii 23 sprawdza ten warunek i wyświetla odpowiedni komunikat.
Jeśli warunek if w linii21 jest fałszywy, wykonywana jest instrukcja po else w linii
Klamry można pomijać, gdy instrukcja kontrolowana przez if jest pojedyncza. Można również zagnieżdżać warunki np. tak:
if (x > y) // jeśli x jest większe niż y
if (x < z) //i jeśli x jest mniejsze od z
x = y; // to podstaw y pod x
Jednak pisząc duże, zagnieżdżone instrukcje warunkowe można spowodować powstanie dużego bałaganu. Musisz pamiętać, że białe znaki i graficzny wygląd tekstu programu są znaczące tylko dla człowieka, nie mają one znaczenia dla kompilatora. Łatwo jest popełnić błąd polegający na nieświadomym przypisaniu else do niewłaściwej instrukcji if. Listing 4.5. ilustruje ten problem.
1
2
3
4
5
6 7
// Listing 4.5 - ilustracja dlaczego klamry // sa ważne w instrukcjach if - else #include <iostream.h> int main()
{
int x;
cout « "Podaj liczbę mniejsza niz 10 albo większa niz 100:
8: cin » x;
9: cout « ”\n";
10:
EFEKT DZIAŁANIA:
Podaj dwie liczby. Pierwsza: 10 Druga: 2
Dzieła sie bez reszty
ANALIZA:
Wprowadzane są dwie liczby. Następnie są porównywane. Pierwsza instrukcja if, w linii 19, sprawdza, czy pierwsza z podanych liczb jest większa lub równa drugiej. Jeśli nie. to wykonywana jest linia 31 (po alternatywie else).
Jeśli pierwszy if jest prawdziwy, to rozpoczyna się wykonywanie bloku kodu zaczynającego się w linii 20. W linii 21 sprawdzany jest kolejny warunek if. Sprawdza on, czy reszta z dzielenia pierwszej liczby przez drugą jest równa zero. Jeśli tak, to pierwsza liczba dzieli się bez reszty przez drugą lub liczby są sobie równe. Instrukcja if w linii 23 sprawdza ten warunek i wyświetla odpowiedni komunikat.
Jeśli warunek if w linii21 jest fałszywy, wykonywana jest instrukcja po else w linii 28.
Klamry można pomijać, gdy instrukcja kontrolowana przez if jest pojedyncza. Można również zagnieżdżać warunki np. tak:
if (x > y) // jeśli x jest większe niż y
if (x < z) II i jeśli x jest niniejsze od z
x = y; // to podstaw y pod x
Jednak pisząc duże. zagnieżdżone instrukcje warunkowe można spowodować powstanie dużego bałaganu. Musisz pamiętać, że białe znaki i graficzny wygląd tekstu programu są znaczące tylko dla człowieka, nie mają one znaczenia dla kompilatora. Łatwo jest popełnić błąd polegający na nieświadomym przypisaniu else do niewłaściwej instrukcji if. Listing 4.5. ilustruje ten problem.
1
2
3
4
5
6 7
II
8:
9:
10:
II Listing 4.5 - ilustracja dlaczego klamry II sa ważne w instrukcjach if - else #include <iostream.h> int main()
{
int x;
cout « "Podaj liczbę mniejsza niz 10 albo większa niz 100: cin » x; cout « "\n";