JAVA7 kap 5. možné otázky na praktickú skúšku

27 novembra, 2012 | Posted by doc. Pančík in Analýza dat a modelování

JAVA 7 kap.5

príklad UkazkaFronta.java (str. 178)

  1. Postavte, preložte a spustite  v Netbeans dvojtriedny projekt UkazkaFronta.java (projekt umiestnite do adresár, ktorého názov je Vaše priezvisko)
  2. Spustite ho v CMD okne so správnou diakritikou – použite na spustenie bat súbor
  3. Ukážte debagovací mód v Netbeans a ukážte debagovanie projektu
  4. opíšte prvky triedy Fronta (členske premenné, konštruktor, jednotlivé metódy)
  5. načo je dobrá fronta – voľne opíšte načo slúži
  6. opíšte podmienky vzniku hlásení – Fronta je plná a – Fronta je prázdná (za akých okolností sa realizujú)
  7. debageri nastavte zastavenie programu (breakpoint) a aj ho zastavte v mieste kde dochádza k  výpisu horeuvedených hlásení – vysvetlite príčiny zastavenia programu
  8. v kóde metódy char vyzvedni() vysvetlite existenciu a význam riadku:  return (char) 0;
  9. vysvetlite riadok kódu (main, prvý for  : velkaF.vloz((char) (‚A‘ + i));  prečo je tam nuté pretypovanie
  10. vysvetlite riadok kódu (main, druhý for :   if (zn != (char) 0) System.out.print(zn); )

UkazkaZobrazBity, str.202

  • ot: zostrojte dvojtriedny projekt
  • ot: overte vypisy na konzolu z programu pomocou programu calc (su 4, pozor na ten posledny)
  • ot: co robi kontruktor triedy ZobrazBity (ma parameter)
  • ot: co robi metoda zobraz – pouzit calc
  • ot: ukazte debagovanie volania metody zobraz (dat breakpoint do nej a oddebagovat jej volanie)

príklad PrirazeniPole.java  (str.174)

  • 1. vysvetlite riadok kódu :    cisla2 = cisla1; a ukážte na debageri čo sa stane keď sa tento riadok kódu vykoná
  • 2. vysvetlite prečo sa vykonanie riadku     cisla2[3] = 99; prejaví aj v poli cisla1
  • 3. rozšírte program o postupné kopírovanie prvkov pola cisla1 do cisla 2 pomocou premennej for
  • riešenie:
  • 1.vykonaním tohoto riadku sa ukazovateľ na pole cisla1 (zároveň obsah premennej cisla1) – má značku SHARP prekopíruje do premennej poľa cisla2
  • 2. preto lebo ide o to isté pole

príklad UkazkaLength.java (str.174)

  • vysvetlite všetky výpisy na konzolu
  • ukážte v debaggeri hodnoty dl´žok jednotlivých polí

príklad KopirovaniPole.java (str.175)

  • v prvom cykle vysvetlite podmienku cyklu:   i < cisla1.length;
  • vysvetlite funkciu  riadku:  if (cisla2.length >= cisla1.length)
  • v poslednom cykle for vysvetlite podmienku cyklu:  i < cisla2.length;

príklad UkazkaFronta.java (str. 178)

  1. Postavte, preložte a spustite  v Netbeans dvojtriedny projekt UkazkaFronta.java (projekt umiestnite do adresár, ktorého názov je Vaše priezvisko)
  2. Spustite ho v CMD okne so správnou diakritikou – použite na spustenie bat súbor
  3. Ukážte debagovací mód v Netbeans a ukážte debagovanie projektu
  4. opíšte prvky triedy Fronta (členske premenné, konštruktor, jednotlivé metódy)
  5. načo je dobrá fronta – voľne opíšte načo slúži
  6. opíšte podmienky vzniku hlásení – Fronta je plná a – Fronta je prázdná (za akých okolností sa realizujú)
  7.  debageri nastavte zastavenie programu (breakpoint) a aj ho zastavte v mieste kde dochádza k  výpisu horeuvedených hlásení – vysvetlite príčiny zastavenia programu
  8. v kóde metódy char vyzvedni() vysvetlite existenciu a význam riadku:  return (char) 0;
  9.  vysvetlite riadok kódu (main, prvý for  : velkaF.vloz((char) (‚A‘ + i));  prečo je tam nuté pretypovanie
  10. vysvetlite riadok kódu (main, druhý for :   if (zn != (char) 0) System.out.print(zn); )

riešenie :

  • 6. podmienky sú v obidvoch  výrazoch if
  • 7. 2.riadok : System.out.println(“ – Fronta je plná.“);
  • 7 2.riadok :  System.out.println(“ – Fronta je prázdná.“);
  • 8.metóda musí vrátiť premennú typu char aj keď je fronta prázdna – preto vracia v prípade prázdnej fronty pretypovanú na char  hodnotu 0 (niečo musí vrátiť ….)
  • 9. volanie metódy vloz objektu velkaF s parametrom typu char. Pretypovanie na char je nutné lebo súčet  ‚A‘ + i je typu integer
  • 10. v prípade, že metóda vyzvedni() narazí na prázdnu forntu vracia znak (char) 0 a výraz v if to potom ošetrí

 

príklad CyklusForEach (str.182)

  • vysvetlite kód :
    • int cisla[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    • soucet += x;
  • nechajte v cykle vypisovať priebežnú  hodnotu premennej soucet

príklad Hledani.java (str.185)

  • 1. doplňte kód tak aby vypísal aj Hodnota nenalezena!
  • 2. zmeňte kód (zmenou jednej z premenných progarmu) tak, aby sa uplatnil aj tento výpis  Honota nenalezena!
  • riešenie :
    • 1.doplniť kód //….
    •   if (nalezeno)       System.out.println(„Hodnota nalezena!“);
    •   else System.out.println(„Hodnota nenalezena!“);
    •   2.napríklad int hodnota = 15;

priklad RetezcoveOperace (str.188)

  • 1.vysvetlite   kód :   String retezec2 = new String(retezec1);
  • riešenie :1. objekt retezec 1 je argumentom konštruktora String ()
  • ot : vyvetlit každý výpis programu odpoveď:
  • ot : vyvetlit funkciu prvého for a čo robí kód:  retezec1.charAt(i)
  • ot : prečo je kód retezec1.equals(retezec2) uvedený ako výraz v if … ?

PoleRetezcu str.189 :

  • ot: ako zistím verziu JDK na svojom počítači  odpoveď: ovládací panel-Programy-Programy a súčasti, s tým že JDK 1.7 znamená že ide o JAVA SE a JRE 7
  • ot: oddebagujte tento program, ukážte pole reťazcov
  • ot : čo je kód :    for (String s : retezce) odpoveď : kód cyklu for each

SwitchRetezec str.192

  • ot: čo s stane ak urobíte zmenu v kóde (zmením malé z na veľké Z): prikaz=“Zrušit“

UkazkaPrikRadek, 192

  • ot : spustite program v IDE NetBeans s parametrami jedna, dva , tri alebo jano palo duro
  • ot: spustite program bez IDE Netbeans s parametrami jedna, dva , tri alebo jano palo duro odpoveď: do vybraneho adresára napr. C:TEMP nakopírovať java.exe a UkazkaPrikRadek.java a v tomto vybranom adresári spustiť cmd a potom napísať príkaz za promptom :  java -jar „UkazkaPrikRadek.jar“

VelkaPismena, 195

  • ot : ako funguje zmena z malých na veľké písmená
  • ot : vysvetlite zmenu kódu na – čo sa udeje : zn = (char) ((int) zn & 0xFFDF);
  • ot: vysvetlite funkciu pretypovania na char a int
  • ot: ukážte maskovanie 5 bitu pomocou programu calc

MalaPismena,196

  • ot: vysvetlite kód, v ktorom sa kód pre veľké A (0x41) zmení na kód pre malé a (0x61)
  • // Tento příkaz zapne piaty bit (nie siesty ).
  • //     zn = (char) ((int) zn | 32); // zn je nyní malé písmeno
  •      zn = (char) ((int) zn | 0x20);

Zakodovani,197

  • ot: preco sa musi pretypovat na char pri operacii XOR (  zakodZprava = zakodZprava + (char) (zprava.charAt(i) ^ klic);)
  • ot: opiste princip kodovania správy s vyuzitim programu calc – prve znaky :
    •   for (int i=0; i < zprava.length(); i++)
    •   zakodZprava = zakodZprava + (char) (zprava.charAt(i) ^ klic);
  • ot :opiste princip dekodovania správy s vyuzitim programu calc – prve znaky   :
    •   for (int i=0; i < zprava.length(); i++)
    • dekodZprava = dekodZprava + (char) (zakodZprava.charAt(i) ^ klic);
  • ot : premenna int klic=88 //hexa : 0x58 – co sa stane v programe ked je typu char ?

ZobrazBity, str.196 :

  • ot : vysvetlite parametre deklaracie  cyklu v programe for (t = 128; t > 0; t = t/2) – pracujte s vyjadrenim premennych formou hexa
  • ot: na priklade hodnota =123 (0x7B) a s vyuzitim kalkulacky calc vysvetllite cinnost cyklu – pracujte s vyjadrenim premennych formou hexa :
    •     for (t = 128; t > 0; t = t/2) {
    •        if ((hodnota & t) != 0) System.out.print(„1 „);
    •       else System.out.print(„0 „);

UkazkaPosun, str.200

  • ot: ukazte princip programu na kalkulacke calc (pouzite hodnotu 1 pre posun vlavo, a hodnotu 128 pre posun vpravo)
  • ot : vysvetlite cinnost programu – pouzite program calc a pouzite hexa a bin vyjadrenie hodnot

UkazkaZobrazBity, str.202

  • ot: zostrojte dvojtriedny projekt
  • ot: overte vypisy na konzolu z programu pomocou programu calc (su 4, pozor na ten posledny)
  • ot: co robi kontruktor triedy ZobrazBity (ma parameter)
  • ot: co robi metoda zobraz – pouzit calc
  • ot: ukazte debagovanie volania metody zobraz (dat breakpoint do nej a oddebagovat jej volanie)

You can follow any responses to this entry through the RSS 2.0 Both comments and pings are currently closed.