Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych. Autor artykułu: mgr Jerzy Wałaszek, wersja 1.0 |
©2008 mgr
Jerzy Wałaszek |
Instrukcja warunkowa (ang. conditional instruction) służy do tworzenia rozgałęzień w programach - dzięki niej komputer może podejmować decyzje, zatem będzie działał w sposób "rozumny", nie mechaniczny. Instrukcja ta posiada następującą składnię:
if(warunek) instrukcja1; else instrukcja2;
warunek | - | jest wyrażeniem, które może przyjmować wartość 0 - wtedy
jest traktowane jako niespełnione, fałszywe, albo wartość różną od 0 - wtedy
jest traktowane jako spełnione, prawdziwe. W warunkach często stosuje się
operatory porównań: < <= == >= > != - różny Operatory porównań zwracają wartość 0, jeśli porównanie jest negatywne, lub wartość 1, jeśli porównanie jest pozytywne. Wartości 0 i 1 w języku C++ mogą być reprezentowane stałymi false (0) i true (1). Mówimy o nich, że są to wartości logiczne fałszu i prawdy. Przykłady:
|
instrukcja1 | - | instrukcja wykonywana, gdy warunek ma wartość różną od 0, czyli gdy jest prawdziwy (true) |
instrukcja2 | - | instrukcja wykonywana, gdy warunek ma wartość równą 0,
czyli gdy jest fałszywy (false). Człon z else może być pominięty, jeśli nasz
algorytm nie przewiduje wykonania żadnej operacji przy fałszywym warunku.
Wtedy instrukcja warunkowa upraszcza się do postaci: if(warunek) instrukcja; |
Jeśli w instrukcji warunkowej if musimy wykonać więcej niż jedną operację, to stosujemy tzw. instrukcję złożoną, czyli grupę instrukcji objętych klamrami:
{
inst1;
inst2;
...;
}
Składnia instrukcji if będzie następująca:
if(warunek)
{
instrukcje wykonywane, gdy warunek jest różny od zera
}
else
{
instrukcje wykonywane, gdy warunek jest równy zero
}
Poniżej przedstawiamy kilka prostych przykładów użycia instrukcji warunkowej. Są to tzw. cegiełki, z których buduje się większe algorytmy, dlatego należy je dokładnie poznać i zrozumieć.
Dane wejściowe:
a, b - dwie dowolne liczby całkowite
Dane wyjściowe:
większa z liczb a i b
Lista kroków:
K01: Czytaj a,b
K02: Jeśli a > b, pisz a, inaczej
pisz
b
K03: Zakończ
Schemat blokowy:
Program w języku C++
// Większa z dwóch liczb // (C) I LO w Tarnowie //------------------------ #include <iostream> using namespace std; int main() { int a,b; cout << "Wyszukiwanie wiekszej z dwoch liczb\n" "-----------------------------------\n\n"; // odczytujemy liczby a i b cout << "a = "; cin >> a; cout << "b = "; cin >> b; cout << endl; // na wyjście wyprowadzamy większą liczbę cout << "Wieksze jest "; if(a > b) cout << "a = " << a; else cout << "b = " << b; cout << endl << endl; system("pause"); return 0; } |
Wyszukiwanie wiekszej z dwoch liczb ----------------------------------- a = 3 b = 10 Wieksze jest b = 10 Aby kontynuować, naciśnij dowolny klawisz . . . |
Dane wejściowe:
a - dowolna liczba całkowita
Dane wyjściowe:
jeden z napisów: a < 0, a = 0 lub a > 0 w zależności od wartości a
Lista kroków:
K01: Czytaj a
K02: Jeśli a = 0, pisz "a = 0" i zakończ
K03: Jeśli a < 0, pisz "a < 0", inaczej pisz
"a > 0"
K04: Zakończ
Schemat blokowy:
Program w języku C++
// Badanie znaku liczby // (C) I LO w Tarnowie //------------------------ #include <iostream> using namespace std; int main() { int a; cout << "Badanie znaku liczby calkowitej\n" "-------------------------------\n\n"; // odczytujemy liczbę a cout << "a = "; cin >> a; cout << endl; // badamy znak liczby a if(a == 0) cout << "a = 0"; else if(a < 0) cout << "a < 0"; else cout << "a > 0"; cout << endl << endl; system("pause"); return 0; } |
Badanie znaku liczby calkowitej ------------------------------- a = -13421 a < 0 Aby kontynuować, naciśnij dowolny klawisz . . . |
Wymiana zawartości dwóch zmiennych a i b polega na tym, iż po operacji w zmiennej a znajdzie się to, co było w zmiennej b i na odwrót, w zmiennej b będzie to, co zawierała zmienna a.
Operacja wymaga trzech kroków i dodatkowej zmiennej pomocniczej. Można to zrobić tak:
Operację wymiany zawartości zmiennej oznaczamy na liście kroków i na schemacie blokowym za pomocą symbolu ↔:
a ↔ b → | x ← b b ← a a ← x |
Wykorzystamy ten prosty algorytm do uporządkowania dwóch liczb. Na wejściu mamy dwie dowolne liczby a i b. Na wyjściu liczby a i b muszą spełniać nierówność:
a ≤ b
czyli muszą być uporządkowane rosnąco.
Dane wejściowe:
a, b - dowolne liczby
Dane wyjściowe:
liczby a i b spełniające nierówność a ≤ b
Dane pomocnicze:
x - zmienna do chwilowego przechowania liczby b
Lista kroków:
Wersja pełna | Wersja skrócona |
K01: Czytaj a,b K02: Jeśli a ≤ 0, to idź do K06 K03: x ← b K04: b ← a K05: a ← x K06: Pisz a,b K07: Zakończ |
K01: Czytaj a,b K02: Jeśli a > b, to a ↔ b K03: Pisz a,b K04: Zakończ |
Schemat blokowy:
Program w języku C++
// Porządkowanie dwóch liczb // (C) I LO w Tarnowie //------------------------ #include <iostream> using namespace std; int main() { int a,b,x; cout << "Porzadkowanie dwoch liczb\n" "-------------------------\n\n"; // odczytujemy liczby a i b cout << "Wpisz dwie dowolne liczby\n\n"; cin >> a >> b; cout << endl; // Jeśli liczby a i b są w złej kolejności, zamieniamy je if(a > b) { x = b; b = a; a = x; } cout << a << " " << b << endl << endl; system("pause"); return 0; } |
Porzadkowanie dwoch liczb ------------------------- Wpisz dwie dowolne liczby 32 18 18 32 Aby kontynuować, naciśnij dowolny klawisz . . . |
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe