pr1j_05_udajove_typy.ppt
Stiahnuť PPT · 406 kBPreber 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.
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
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.
nechodím na prednášky