Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych. Autor artykułu: mgr Jerzy Wałaszek, wersja1.0 |
©2013 mgr
Jerzy Wałaszek
|
W logice występują jedynie dwie wartości: prawda i fałsz.
W języku C++ zdefiniowane są specjalne stałe do reprezentowania wartości logicznych:
prawda | = true | = 1 |
fałsz | = false | = 0 |
// Wartości logiczne // (C)2013 mgr Jerzy Wałaszek // I LO w Tarnowie //--------------------------- #include <iostream> using namespace std; int main() { cout << false << endl << true << endl; return 0; } |
Oczywiście zamiast true można stosować 1, a zamiast false 0 - jednakże posługiwanie się tymi stałymi zwiększa czytelność programu.
Wyrażenie logiczne (ang. logical expresion) jest wyrażeniem, które może przyjmować tylko wartości logiczne true lub false. Tego typu wyrażenia powstają z operatorami porównań.
Operator | Nazwa | Przykład |
---|---|---|
== | równe | a == 15 |
!= | różne | a != b |
< | mniejsze | a < 15 |
<= | mniejsze lub równe | b + 5 <= a |
> | większe | a + 15 > c |
>= | większe lub równe | a >= b + c |
// Operatory porównań // (C)2013 I LO w Tarnowie //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a == 4) << endl << (a == 3) << endl; return 0; } |
// Operatory porównań // (C)2013 I LO w Tarnowie //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a != 4) << endl << (a != 3) << endl; return 0; } |
// Operatory porównań // (C)2013 I LO w Tarnowie //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a < 5) << endl << (a < 3) << endl; return 0; } |
// Operatory porównań // (C)2013 I LO w Tarnowie //--------------------------- #include <iostream> using namespace std; int main() { int a = 4; cout << (a >= 5) << endl << (a >= 3) << endl; return 0; } |
Instrukcja warunkowa pozwala wykonywać instrukcje programu w zależności od określonego warunku logicznego. Posiada ona następującą składnię:
if(warunek) instrukcja1;
else instrukcja2
;
if - jest słowem kluczowym języka C++ oznaczającym instrukcję warunkową
warunek - jest wyrażeniem logicznym lub arytmetycznym, które zostaje obliczone przez instrukcję if i którego wartość decyduje o sposobie wykonania następnych instrukcji.
instrukcja1 - jest dowolną instrukcją języka C++, która zostanie wykonana przez program tylko wtedy, gdy warunek będzie miał wartość logiczną true (lub różną od zera). Jeśli warunek ma wartość false (lub zerową), to instrukcja1 zostanie pominięta.
else - słowo kluczowe języka C++, składnik instrukcji warunkowej if.
instrukcja2 - jest dowolną instrukcją języka C++, która zostanie wykonana tylko wtedy, gdy warunek będzie miał wartość false (lub zero).
Zwróć uwagę, że zawsze wykonywana jest tylko jedna z instrukcji zawartych w instrukcji warunkowej if. Ta własność pozwala komputerowi działać logicznie, dostosowywać operację do zastanych warunków. To dzięki niej programy są "inteligentne".
// Znajdowanie większej z dwóch liczb // (C)2013 I LO w Tarnowie //----------------------------------- #include <iostream> using namespace std; int main() { int a,b; cin >> a >> b; if(a > b) cout << a; else cout << b; cout << endl; return 0; } |
// Badanie znaku liczby // (C)2013 I LO w Tarnowie //------------------------ #include <iostream> using namespace std; int main() { int a; cin >> a; if(a > 0) cout << "DODATNIA\n"; else if (a == 0) cout << "ZERO\n"; else cout << "UJEMNA\n"; return 0; } |
Często zdarza się tak, iż w instrukcji warunkowej potrzebna nam jest tylko instrukcja1. W takim przypadku fragment z else można pominąć.
if(warunek) instrukcja
;
instrukcja
jest wykonywana tylko wtedy, gdy
warunek jest prawdziwy. Gdy warunek ma wartość false,
to
instrukcja
zostaje pominięta.
// Obliczanie wartości bezwzględnej // (C)2013 I LO w Tarnowie //--------------------------------- #include <iostream> using namespace std; int main() { int a; cin >> a; if(a < 0) a = -a; cout << a << endl; return 0; } |
// Wyszukiwanie największej liczby z trzech // (C)2013 I LO w Tarnowie //----------------------------------------- #include <iostream> using namespace std; int main() { int a,b,c,x; cin >> a >> b >> c; x = a; if(b > x) x = b; if(c > x) x = c; cout << x << endl; return 0; } |
Jeśli w ramach instrukcji warunkowej if chcemy wykonać nie pojedynczą instrukcję ale kilka instrukcji, to stosujemy tzw. instrukcję blokową - dowolny ciąg instrukcji ujęty w klamerki. Po klamerkach nie musimy już wstawiać średników:
if(warunek)
{
ciąg instrukcji wykonywany, gdy warunek ma
wartość true
}
else
{
ciąg instrukcji wykonywanych, gdy warunek ma
wartość false
}
// Porządkowanie dwóch liczb // (C)2013 I LO w Tarnowie //-------------------------- #include <iostream> using namespace std; int main() { int a,b,x; cin >> a >> b; if(a > b) { x = a; a = b; b = x; } cout << a << " " << b << endl; return 0; } |
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