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");