Linux E X P R E S

Facebook

Programovanie v jazyku C++: Konverzie, pretypovanie a podmienky

cplusplus.png

V článku sa pozrieme na konverzie a pretypovanie premenných. Zaujímavosťou bude i jednoduchá kalkulačka, kde si precvičíte podmienky.


Konverzia medzi typy premenných

V jazyku C++ je možné priraďovať jeden typ premennej na druhý. Poznáme tri typy konverzie:

  1. konverzia pri priradení
  2. konverzia vo výrazoch
  3. konverzia pri predávaní parametrov funkciam. Tento tretí spôsob si zatiaľ v článku neukážeme, pretože ešte nepoznáte funkcie. Aj k tomu behom seriálu dôjdeme.

1. program: Ukážka konverzie pri priradení

#include <iostream>
 
 using namespace std;
 
 int main()
 {
     float a = 25;
     cout << "Konverzia premennej int na float: "<<a<<"\n";
     int b = 25.5887;
     cout << "Konverzia premennej float na int: "<<b;
     return 0;
 }

Výsledok:

 25
 25

Rozbor programu:

V prvom prípade procesor číslo 25 berie ako typ premennej int ktorú uloží do premennej a a zároveň jej priradí typ float. Vizuálne sa nič neudeje. Avšak, ďalej s premennou môžete pracovať ako float.

Druhý opačný prípad je ale zaujímavejší. Prevod z float na int premenná stratí desatinná čiarka a bude z nej celé číslo.

2. program: Konverzia vo výrazoch

#include <iostream>
 
 using namespace std;
 
 int main()
 {
     float a = 5.4545;
     float b = 78.4444;
     int c;
     c = a + b;
     cout << c<<"\n";
     return 0;
 }

Výsledok:

83

Rozbor programu:

V programe deklarujeme dva premenné typu float a výsledok sčítania uložíme do int premennej.

Čo sa stane pri výpise? Premenná stratí desatinnú čiarku a výsledok je celočíselný. Došlo ku konverzii pomocou výrazov.

Pretypovanie premenných

Môžete si vynútiť zmenu premennej, kedy to potrebujete? Áno môžete. Úkon nazývame pretypovanie premenných.

V jazyku C++ poznáme len dva spôsoby pretypovania.

1. spôsob:

    float a;
     (int)a;

Najprv je premenná zadeklárovaná ako typ premennej float. Následne pretypujeme premennú z float na int.

2. spôsob:

    float a;
     int (a);

V tomto spôsobe sme inak pretypovali premennú a. Výsledne sme vytvorili premennú typu int.

Poďme sa pozrieť na príklad.

3. príklad: Príklad na pretypovanie

#include <iostream>
 
 using namespace std;
 
 int main()
 {
     float a = 5.4545;
     float b = 7.4444;
     cout << (int)a+(int)b<<"\n";
     cout << int(a)+int(b)<<"\n";
     return 0;
 }

Výsledok:

 12
 12

Podmienky

S podmienkami ste sa už stretli nepriamo i v minulých dielách. Vytvoríme si primitívnu kalkulačku,  pri ktorej si to preopakujeme.

4. program: Pomocou if, else if a else

#include <iostream>
 
 using namespace std;
 
 int main()
 {
     cout << "Zadajte prve cislo: "<<"\n";
 
     int a;
     cin >> a;
 
     cout << "Zadajte druhe cislo: "<<"\n";
 
     int b;
     cin >> b;
 
     cout << "Zadajte aritmeticku operaciu + alebo - alebo * alebo /"<<"\n";
 
     char vstup;
     cin>> vstup;
 
     int vysledok;
 
     if (vstup == '+')
         vysledok = a + b;
     else if (vstup == '-')
         vysledok = a – b;
     else if (vstup == '*')
         vysledok = a * b;
     else if (vstup == '/')
         vysledok = a / b;
     else 
     {
         cout << "Bud si slepy alebo fakt je pocitac pre teba nebezpecna vec"<<"\n";
         return 0;
     }
 
     cout << "Vysledok "<<vstup<<" je: "<<vysledok<<"\n";
     return 0;
 }

5. program: Pomocou switch a case a príkazu skoku break

#include <iostream>
 
 using namespace std;
 
 int main()
 {
     cout << "Zadajte prve cislo: "<<"\n";
 
     int a;
     cin >> a;
 
     cout << "Zadajte druhe cislo: "<<"\n"
 ;
     int b;
     cin >> b;
 
     cout << "Zadajte aritmeticku operaciu + alebo - alebo * alebo /"<<"\n";
 
     char vstup;
     cin>> vstup;
 
     int vysledok;
 
     switch(vstup) {
         case '+':
             vysledok = a + b;
             break;
         case '-':
             vysledok = a – b;
             break;
         case '*':
             vysledok = a * b;
             break;
         case '/':
             vysledok = a / b;
             break;
         default:
             cout << "Bud si slepy alebo fakt je pocitac pre teba nebezpecna vec"<<"\n";
             return 0;
     }
 
     cout << "Vysledok "<<vstup<<" je: "<<vysledok<<"\n";
     return 0;
 }

Poznámka šéfredaktora: Diskuse byla vymazána. Věcné poznámky k článkům jsou v pořádku a děkujeme za ně. Komentáře přecházející v osobní útoky a urážka v pořádku nejsou.

Diskuze (7) Nahoru