PPT

pr1j_05_udajove_typy.ppt

Formát
PPT
Veľkosť
406 kB
Pridané
Stiahnutí
832
Hodnotenie
4,0/5
Stiahnuť PPT · 406 kB

Preber si túto poznámku so svojou AI

Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto poznámky.

Otvoriť AI: ChatGPT · Claude · Gemini

Náhľad poznámky

Ú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ť
– 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

Základné údajové typy

 celočíselný (int)
 s plávajúcou desatinnou čiarkou (float)
 logický, pravdivostný (boolean)
 znakový (char)
 .... reťazcový, textový (string)

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

Celočíselné typy

počet bitov

meno typu

rozsah

8

byte

-27

až 27 – 1

16

short

-215

až 215 – 1

32

int

-231

až 231 – 1

64

long

-263

až 263 - 1

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

Reálne typy

počet bitov

meno typu

rozsah

32

float

-231

až 231 – 1

64

double

-263

až 263 - 1

Aritmetické operátory

operát

or

popis

príklad

príklad

+

súčet

a + b

10 + 3 = 13

-

rozdiel

a – b

10 - 3 = 7

*

súčin

a * b

10 * 3 = 30

/

celočíselný podiel

a / b

10 / 3 = 3

%

zvyšok po delení

a % b

10 % 3 = 1

++

unárny inkrementálny

operátor

a++

a=10; a++;

a je 11

--

unárny dekrementálny

operátor

a--

a=10; a--;

a je 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

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ž

Logický typ

 môže nadobúdať len dve hodnoty:

true – pravda
false – nepravda

 zmysel

– elegantný zápis podmienok

if (bolaNula) ....

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.

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

Operátory porovnania

operátor

popis

príklad

>

je väčší

a > b

>=

je väčší alebo rovný

a >= b

<

je menší

a < b

<=

je menší alebo rovný

a <= b

==

je rovný

a == b

!=

nie je rovný

a != b

Logické operátory

operátor

popis

príklad

&&

AND, a súčasne

(a > b) && (c > 3)

&

(a > b) & (c > 3)

||

OR, alebo

(a > b) || (c > 3)

|

(a > b) | (c > 3)

^

XOR, exclusive OR

a ^ b

!

not, logická negácia

!b; !(a > b)

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

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

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

Typy premenných II.

int num = 10;
String name = “Hello“

a tým sme sa dostali na hranicu našich aktuálnych možností...

Čí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

Čí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

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.

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);

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

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);

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);

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);

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);

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));
}

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

Ú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.

Document Outline


Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.