Konverzia medzi typy premenných
V jazyku C++ je možné priraďovať jeden typ premennej na druhý. Poznáme tri typy konverzie:
- konverzia pri priradení
- konverzia vo výrazoch
- 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.