Linux E X P R E S

Facebook

Programovanie v jazyku C++: Typ premennej bool a kvalifikátor const

cplusplus.png

V tomto článku by som chcel ukázať ďalší typ premennej bool a kvalifikátor const. Pre nováčikov je to určite niečo nové a zároveň prizvukujem, i dôležité. Tak poďme na to!


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ú pomfalse 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!

Diskuze (2) Nahoru