Pravdivostný typ premennej bool
Veľmi často v programoch potrebujeme rozhodnúť, či sa niečo uskutočnilo alebo neuskutočnilo a na tom základe vykonať ďalšie kroky v programe. Pre tieto aplikácie jazyk C++ pozná premennú typu bool. Je pomenovaná po významnom anglickom matematikovi, ktorý vyvinul matematické zákony logiky. Nazýval sa George Boole.
Boolovska premenná môže nadobúdať dve stavy, true a false. V číselnej hodnote je true reprezentované 1 a false 0. Ukážeme si dve možné deklarácie, ktoré ukazujú konverzie medzi typmi int a bool:
1. spôsob
int dom = true; // premenná pomenovaná ako dom získa hodnotu 1 int dom = false; // premenná dom získa hodnotu 0
2. spôsob
bool cislo = -133; // premenná cislo získa hodnotu true (1) bool cislo = 0; // premenná cislo získa hodnotu false (0)
Prvý spôsob je jasný, ale druhý trochu mätúci. V druhom spôsobe platí, že všetky nenulové hodnoty sa v prípade bool priradí 1 a v ak je hodnota nulová, tak 0.
1. program: Ukážka deklarácie premennej typu bool.
#include <iostream> // hlavičkový súbor iostream using namespace std; // priestor mien int main() // hlavná funkcia main { int dom = true; // deklarácie premenných int pes = false; bool macka = -25; bool obloha = 0; cout<<"Hodnota pre premennú dom: "<<dom; // výpisy na obrazovku cout<<"\nHodnota pre premennú pes: "<<pes; cout<<"\nHodnota pre premennú macka: "<<macka; cout<<"\nHodnota pre premennú obloha: "<<obloha; return 0; //koniec programu }
Výstup programu:
Hodnota pre premennú dom: 1 Hodnota pre premennú pes: 0 Hodnota pre premennú macka: 1 Hodnota pre premennú obloha: 0
2. program: Využitie premennej typu bool
#include <iostream> // hlavičkový súbor iostream using namespace std; // priestor mien int main() // hlavná funkcia main { int cislo; // deklarácie premenných bool pom = false; cout <<"Zadajte číslo od 0 do 99\n"; // výpis na obrazovku s požiadavkou cin>>cislo; // vstup od užívateľa if (cislo >= 0 && cislo < 100) // podmienka { pom = true; } if (pom == true) { if (cislo%2 == 0) // delenie so zvyškom cout << "Číslo je párne"; else cout << "Číslo je nepárne"; return 0; // koniec programu } cout << "Nevieš čítať? Za trest si program spusť ešte raz"; return 0; }
Rozbor programu: Na začiatku programu priradíme premenné. Program vypíše oznam pre užívateľa, ktorý má napísať jedno celé číslo v rozpätí od 0 do 99. Následne program skontroluje, či tak užívateľ zadal a ak áno, zmeníme boolovskú premennú pom z false na true.
Druhá podmienka bude úspešná len vtedy, ak užívateľ zadal číslo v rozsahu od 0 do 99. V ďalšej podminke rozhodneme na základe zvyšku z delenia, či je číslo párne alebo nie a vypíšeme výsledok a ukončíme program. Ak užívateľ nezadal v zadanom rozsahu, program vypíše pre používateľa jasnú odpoveď.
Kvalifikátor const
Často sa stáva, že potrebujeme premennú, ktorá počas behu programu nemení svoju hodnotu.
Napríklad máme nejaký dôležitý údaj, napríklad deň narodenia a určite by sme neboli radí, že by sa pri behu programu menil tento údaj. Zatiaľ nevieme o existencii paralelných vesmírov alebo sme nevynašli stroje času, takže v našom svete nemenné údaje majú ostať nemenné.
Na deklaráciu nemenných premenných použijeme magické slovo const. Pozrime sa na ukážku deklarácie:
const int vaha = 70; // kiež by sa počas života moc nemenila
Pozrieme sa na ukážku jednoduchého programu
3. program: Otestujeme si použitie kvalifikátora const
#include <iostream> // hlavičkový súbor iostream using namespace std; // priestor mien int main() // hlavná funkcia main { const int aktualnyRok = 2016; // deklarácia const int pom = 20; // deklarácia int aktualnyRok = aktualnyRok + pom; // experimenty a v nasledujúcom riadku výpis výsledku cout <<aktualnyRok; return 0; // koniec programu }
Výsledok: Program sa neskompiluje, pretože chceme nasilu meniť nemeniteľné. A budúcnosť veštiť nevieme!