Podstawy Programowania
- Ćwiczenia 2
Zasady, Ćw1, Ćw2, Ćw3, Ćw4, Ćw5, Ćw6, Ćw7, Ćw8, Ćw9, Ćw10, Ćw11,
Ćw12, Ćw13
Prowadzący: Rafał Witkowski
Temat: Instrukcje warunkowe. Pierwsze samodzielne rozwiązania zadań na sprawdzarce.
Zachęcam do uważnego przeczytania
wszystkiego co było na ćwiczeniach 1
Instrukcje warunkowe
Konstrukcja instrukcji warunkowej w C/C++ jest następująca:
if (wyrażenie) operacja_prawda;
else operacja_fałsz;
UWAGA! Nie ma słówka then,
które występowało w Pascalu.
Każda operacja (operacja_prawda lub
operacja_fałsz) może być
równie dobrze blokiem operacji rozpoczynającym się od znaku { a
kończącym znakiem }.
Jeśli wyrażenie jest
prawdziwe wykonana zostanie operacja
_prawda.
Jeśli wyrażenie jest fałszywe
wykonana zostanie operacja _fałsz.
Problem rozróżniania prawdy od fałszu w C sprowadza się do sprawdzania,
czy coś ma wartość 0, czy też ma inną wartość.
0 (zero) zawsze oznacza fałsz
Każda inna wartość oznacza prawdę.
Każde sprawdzenie wartości logicznej odbywa się poprzez umieszczenie
pewnego wyrażenia w nawiasach.
I tak np. fragment kodu:
i = 1;
if (i) printf("Prawda");
else printf("Fałsz");
Wypisz nam na ekranie słowo "Prawda". Gdyby jednak zrobić:
i = 0;
if (i) printf("Prawda");
else printf("Fałsz");
wówczas na ekranie pojawi się słowo "Fałsz".
W nawiasach można też umieszczać dowolne operacje arytmetyczne, a do
określenia prawdy lub fałszu wzięty zostanie wynik działań. Np:
i = 1;
if (2*i-3+1/i) printf("Prawda");
else printf("Fałsz");
Na ekranie pojawi się słowo "Fałsz".
Oczywiście w nawiasach mogą się pojawiać standardowe operacje
porównania takie jak:
równe: ==
nierówne: !=
mniejsze: <
mniejsze-równe: <=
większe: >
więsze-równe: >=
Wyrażenie umieszczone w nawiasie zwraca wówacz nam wartość 1 lub 0, w
zależności od tego, czy dane porównanie jest prawdą, czy też fałszem.
Np:
i = 1;
if (i==1) printf("Prawda");
else printf("Fałsz");
Na ekranie pojawi się słowo "Prawda".
UWAGA:
Z tego, co pojawiło się wcześniej wynika, ze można robić tak:
int x,i;
i = 1;
x = (i==1);
printf("%d",x);
Na ekranie pojawi się liczba 1, gdyż i==1 było prawdą, czyli wartość
logiczna wyrażenia wyniosła 1.
Operatory logiczne
Wartości logiczne można oczywiście ze sobą łączyć używając odpowiednich
operatorów logicznych. Najważniejsze z nich to:
Koniunkcja: &&
Alternatywa: ||
Negacja: !
Oczywiście można je dowolnie łączyć, używając odpowiedniego
ponawiasowania. Np:
i = 1;
if ((i>=0) && (i<=10) && !(i==5)) printf("Prawda"); //Prawda, jeśli i jest w przedziale od 1 do 10, ale nie jest 5
else printf("Fałsz");