1 / 31

Údajové typy

Údajové typy. údajový typ prezentácia typov a operácií nad nimi vstup údajov do programu ŕiešené úlohy. Pojem údajový typ. údajový typ určuje veľkosť pamäti, ktorá bude pre premennú vyhradená množinu hodnôt, ktorú možno do premennej uložiť

Download Presentation

Údajové typy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Údajové typy • údajový typ • prezentácia typov a operácií nad nimi • vstup údajov do programu • ŕiešené úlohy

  2. Pojem údajový typ • údajový typ určuje • veľkosť pamäti, ktorá bude pre premennú vyhradená • množinu hodnôt, ktorú možno do premennej uložiť • operácie a funkcie, ktoré možno na hodnoty daného typu použiť • dôvody? • zrýchlenie a obmedzenie operácií pre skupiny hodnôt • napr. • súčet čísel: 1+1=2 • súčet reťazcov 1 + 1 = 11

  3. Základné údajové typy • celočíselný (int) • s plávajúcou desatinnou čiarkou (float) • logický, pravdivostný (boolean) • znakový (char) • .... reťazcový, textový (string)

  4. Celočíselný typ • v zásade tri rôzne zápisy: • desiatkový • žiadna špeciálna predpona • napr. 205, 3 • hexadecimálny • začína 0x alebo 0X • napr. 0x12, 0xF1 • osmičkový • začína 0 • napr. 023, 017

  5. Celočíselné typy

  6. Reálny typ • delí číslo na dve časti – celú a desatinnú • možnosť zápisu • štandardný • 3.1415296536 • 583.25 • vedecký • 5.8345e2 znamená 5.8345 * 102

  7. Reálne typy

  8. Aritmetické operátory

  9. In- a dekrementálny operátor • operátory môžu byť umiestnené aj pred premennú: • ak sa použijú pred premennou v prípadnom výraze sa použije nová hodnota, inak stará int i = 10; int j = 3; int k = 0; k = ++j + i; //k = 4+10 = 14 a j = 4 //*************************************** int i = 10; int j = 3; int k = 0; k = j++ + i; //k = 3+10 = 13, ale j = 4

  10. Mixovanie číselných typov • keď sa vo výpočte kombinuje celočíselný a reálny typ, výsledkom je reálne číslo (číslo s plávajúcou desatinnou čiarkou) • celé číslo je konvertované na reálne pre samotným vykonaním operácie • operátory celočíselného delenia (%), dekrementálny (--) a inkrementálny (++) operátor fungujú tiež

  11. Logický typ • môže nadobúdať len dve hodnoty: • true – pravda • false – nepravda • zmysel • elegantný zápis podmienok if (bolaNula) ....

  12. Znakový typ • pôvodný 8-bitový ASCII formát bol nahradený 16-bitovým UNICODE formátom • UNICODE obsahuje v jednej sade znaky všetkých jazykov • okrem štandardných znakov sú k dispozícii i špeciálne, napr.: • \n – nový riadok • \t – tabulátor • \b – backspace a pod.

  13. Diskusia • je vhodné inicializovať hodnoty premenných už pri ich vytvorení • minimalizuje sa možnosť použitia neinicializovanej premennej (premenná môže mať nedefinovanú alebo náhodnú hodnotu) • napr.: int sucet = 0; • premennú stačí deklarovať v momente prvého použitia • napr.: int vys = a + b; for(int i=1;i<10;i++)... • pozor !!! riziko zneprehľadnenia kódu • je potrebné nájsť vhodný kompromis medzi čitateľnosťou kódu (oddelenie deklarácie premenných) a používaním neinicializovaných premenných

  14. Operátory porovnania

  15. Logické operátory

  16. Doplnenie • medzi operátormi && a &, resp. (|| a |) je rozdiel v tom, že: • && ukončí vyhodnocovanie logického výrazu v momente ak je podmienka nepravdivá • & vyhodnocuje výraz až do konca • príklad, kedy to má pre nás význam: int i = 0, j = 10; boolean test; test = (i > 10) && (j++ > 9); // test = false, j = 10 test = (i > 10) & (j++ > 9); // test = false, j = 11

  17. Doplnenie II. • výsledok operácie XOR • výsledok je true ak práve jeden operátor je true, resp. ak hodnoty operátorov sú rôzne

  18. Typy premenných • primitívne • hodnota premennej sa ukladá na mieste, kde je lokalizovaná premenná • všetky doposiaľ uvedené typy • referenčné (reference variables) • premenná obsahuje len odkaz na miesto v pamäti, kde je uložená hodnota • typ string

  19. Typy premenných II. int num = 10; String name = “Hello“ • a tým sme sa dostali na hranicu našich aktuálnych možností...

  20. Čítanie údajov • prostredníctvom tried (class) systému • prostredníctvom JOptionClass • poskytuje vizuálne rozhranie a pri čítaní textu mu automaticky vyhradí potrebné miesto v pamäti a uloží ho do nej

  21. Čítanie údajov public static void main(String[] args) { String meno = ""; meno = JOptionPane.showInputDialog("Kto si?"); JOptionPane.showMessageDialog(null,"Cau "+meno); } • pri prvom použití JOptionPane sa na začiatok zdrojového kódu doplní príkaz na používanie knižnice, ktorá ho obsahuje

  22. String – typ a objekt • String síce predstavuje v jazyku Java typ, ale súčasne je aj triedou (objektom) a ako taký disponuje mnohými užitočnými metódami.

  23. Počet znakov v reťazci • Zistite dĺžku zadaného mena. String meno = ""; int dlzka=0; meno = JOptionPane.showInputDialog("Kto si?"); dlzka = meno.length(); JOptionPane.showMessageDialog(null,"Mas dlzku "+dlzka);

  24. Práca s číselnými údajmi • Zistite obsah a obvod kruhu so zadanou stranou. String text = ""; int a = 0; text = JOptionPane.showInputDialog("Strana:"); a = Integer.valueOf(text); // konverzia JOptionPane.showMessageDialog(null,"obsah "+a*a); JOptionPane.showMessageDialog(null,"obvod "+4*a); • v prípade nečíselného vstupu aplikácia „spadne“ – skončí s chybovým hlásením

  25. Opakovanie cifry • Zistite koľko ráz sa v zadanom čísle opakuje cifra 3. String text = ""; int dlzka = 0, pocet = 0; text = JOptionPane.showInputDialog("Zadaj:"); dlzka = text.length(); for(int i = 0;i < dlzka; i++) { if (text.charAt(i) == '3'){ pocet++; } } JOptionPane.showMessageDialog(null, pocet);

  26. Maximálna cifra • Nájdite v zadanom čísle maximálnu cifru. String text = ""; int dlzka = 0, mx = 0; char cifra; text = JOptionPane.showInputDialog("Cislo:"); dlzka = text.length(); for(int i=0;i<dlzka;i++) { cifra = text.charAt(i); if (mx<cifra) { mx = cifra; // problemove miesto } } JOptionPane.showMessageDialog(null, mx);

  27. Maximálna cifra inak • Nájdite v zadanom čísle maximálnu cifru. String text = ""; int dlzka = 0, mx = 0, cifra = 0; text = JOptionPane.showInputDialog("Cislo:"); dlzka = text.length(); for(int i=0;i<dlzka;i++) { cifra = Integer.parseInt(text.substring(i,i+1)); if (mx<cifra) { mx = cifra; } } JOptionPane.showMessageDialog(null, mx);

  28. Ciferný súčet • Zistite ciferný súčet zadaného čísla. String text = ""; int dlzka = 0, sucet = 0, cifra = 0; text = JOptionPane.showInputDialog("Cislo:"); dlzka = text.length(); for(int i=0;i<dlzka;i++) { cifra = Integer.parseInt(text.substring(i,i+1)); sucet = sucet + cifra; } JOptionPane.showMessageDialog(null,sucet);

  29. Výpis reťazca od konca • Vypíšte načítaný reťazec od konca. String text = ""; int dlzka = 0; text = JOptionPane.showInputDialog("Text:"); dlzka = text.length(); for(int i = dlzka-1; i >= 0; i--) { System.out.print(text.charAt(i)); }

  30. String alebo integer? • diskutabilné a prípad od prípadu špecifické • v prípade prístupu k jednotlivým cifrám čísla je rýchlejšie (ako z programátorského, tak i zo systémového) a zrozumiteľnejšie použiť typ string • pri použití typu integer sme totiž nútení operovať s operáciami pre celočíselné delenie

  31. Úlohy na zamyslenie • Zistite, ktoré z dvoch zadaných čísel je väčšie. • Zistite, ktoré z troch zadaných čísel je väčšie. • Pre zadaný vek zistite rok narodenia používateľa. • Zistite počet výskytov párnych číslic v reťazci a zistite, či v ňom nachádza aj nula. • Pre zadané číslo zistite, či je väčší jeho ciferný súčet alebo ciferný súčin. • Zistite, na ktorej pozícii sa nachádza najmenšia cifra v zadanom čísle. • Prostredníctvom jediného cyklu nájdite najmenšiu aj najväčšiu cifru v zadanom čísle. • Zistite, koľko číslic sa nachádza v zadanom reťazci.

More Related