racunalni tvo 1 / 3. uvod v javo - vladimir batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf ·...
TRANSCRIPT
![Page 1: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/1.jpg)
'
&
$
%
The Brick Testament / Deuteronomy 21:22
Racunalnistvo 15. Primeri
Vladimir BatageljUniverza v LjubljaniFMF, matematika
razlicica: 15. april 2007 / 23 : 12
![Page 2: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/2.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 2'
&
$
%
Kazalo1 Primeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
5 Pregled krmilnih stavkov v javi . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
21 Izpopolnjevanje razredov – podrazredi . . . . . . . . . . . . . . . . . . . . . . . 21
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 3: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/3.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 1'
&
$
%
Primeri
• programcki – uporaba v spletnih sestavkih (pravokotnik HTM,java);
• argumenti z ukazne vrstice (arglist java);
• znakovne datoteke – odpiranje, zapiranje, branje in izpis (vrsticejava);
• slucajna stevila in metoda Monte Carlo (Sandokan java);
• odpiranje z izbirnim oknom (vrsticeIzbira 1/java 2/java +ExampleFileFilter java) / razred JFileChooser;
• igre vislice – uporaba novih sestavin (hangman; vislice 1/java,2/java, 3/java).
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 4: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/4.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 2'
&
$
%
Vislice1.java
Najbrz ste ze kdaj igrali vislice. Poskusimo jih sprogramirati.
Osnovna zamisel igre je:
izberi nakljucno besedo;ugibaj.
Recimo, da imamo besede pripravl-jene na datoteki besede.sit.V prvi vrstici je napisano stevilobesed, v naslednjih pa v vsaki poena beseda.Predelajmo program vrstice zaizbor nakljucne besede.
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 5: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/5.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 3'
&
$
%
Vislice2.java
Razdelajmo se ugibanje. Zamisel je naslednja:
ponavljaj dokler igralec ne ugane ali je obesen:izpisi vprasanje;zahtevaj novo crko;preveri odgovor in posodobi stanje.
Trenutno poznavanje neznanebesede predstavimo z nizomvzorec. Spocetka je vzorec
sestavljen iz toliko vprasajev,kolikor je crk v besedi. V niziizbrane si zabelezimo zeuporabljene crke. Igralec lahkougiba le krat krat.
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 6: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/6.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 4'
&
$
%
Vislice3.java
Razdelajmo se preverjanje odgov-ora. Ce se vnesena crka znak na-haja v besedi, jo vstavimo na us-trezna mesta v nizu vzorec.Beseda je odkrita, ce je enakanizu vzorec.Risanje vislic je prepusceno zadomaco vajo.
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 7: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/7.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 5'
&
$
%
Pregled krmilnih stavkov v javi
Pogojni ali odlocitveni stavek ima dve obliki
in
Kadar sta stavka stavekRes in stavekLaz zdruzena stavka, po-drejenost nakazemo z zamikanjem
ali
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 8: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/8.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 6'
&
$
%
Pogoji
Pogoj je izraz, ki ima logicno vrednost. Do sestavin pogojev pridemo zuporabo predikatov in relacij. V razredu Character imamo npr. predikateisDigit, isLetter, isUpperCase in isLowerCase.
import java.lang.Character;
String s = "Nova Gorica";
System.out.println(Character.isLowerCase(s.charAt(0)));
Te lahko z operacijami && – in, || – ali in ! – ni povezemo v sestavljenepogoje. Operaciji in in ali se izracunavata leno (lazy evaluation) – ce izvrednosti levega clena izraza lahko dolocimo njegovo vrednost, vrednostidesnega clena ne racunamo. Pri sestavljanju pogojev si pomagamo z logiko(npr. De Morganova zakona) in enakovrednostmi kot je npr. !(a<b) ≡a>=b .
Vcasih se pogojnemu stavku lahko izognemo z operacijami kot sta min inmax ali stavkom pogoj ? izrazRes : izrazLaz; .
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 9: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/9.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 7'
&
$
%
. . . Pogoji
Realnih stevil ne primerjamo na enakost.
Pri nizih primerjava if (niz1 == niz2) ... primerja enakost kazalcev nepa nizov (vrednosti). Pravilno je if (niz1.equals(niz2)) ...
Podobno ima izraz niz1.compareTo(niz2) negativno vrednost, ce je niz1 (poabecedi) pred nizom niz2; vrednost 0, ce sta niza enaka; in pozitivno vrednost, ce jeniz1 za nizom niz2.
Poleg metode toString() naj bi vse spodobno napisane zvrsti poznale tudimetodi equals in compareTo.
Stavek Zvrst pred = null; pove, da predmet pred ni definiran. To
preverimo z if (pred == null) ... .
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 10: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/10.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 8'
&
$
%
Verizni pogoji
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 11: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/11.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 9'
&
$
%
Pozor !!!
Kaj zahteva del programa
Kot smo ze v uvodu omenili, pomeni
Ce bi zeleli zapisati drugo moznost, bi morali stavekRes dati v zaviteoklepaje
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 12: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/12.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 10'
&
$
%
Nastevne zvrsti
Java pozna tudi nastevne zvrsti
public enum DanvTednu {PON, TOR, SRE, CET, PET, SOB, NED }
DanvTednu danes = DanvTednu.PON;
if (danes == DanvTednu.NED)
...
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 13: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/13.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 11'
&
$
%
Razvejitveni stavek switch
vi so konstante, izraz in vi so lahko le zvrsti int, char, boolean alinastetja.
stavkij se praviloma konca s stavkom break;, sicer se izvajanjenadaljuje na naslednji moznosti. stavkij je lahko tudi prazen stavek.
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 14: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/14.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 12'
&
$
%
Zanka while
neskoncna zanka
redkeje se uporablja
ce ni gotovo, da se zanka konca, vpeljemo stevec ponovitev in izvajanjeprekinemo, ce preseze razumno mejo. Lahko jo nadomestimo tudi sstavkom for.
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 15: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/15.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 13'
&
$
%
Zanka for
v pogoju nikoli ne preverjamo na enakost – vselej na neenakost.
{
zacetek;
while (pogoj) {
stavek;
sprememba;
}
}
Doseg indeksne spremenljivke – vse spremenljivke vpeljane v stavku forso v njem lokalne – po izteku stavka izginejo.
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 16: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/16.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 14'
&
$
%
Stavka break in continue
v zankah lahko uporabljamo tudi (oznacena) stavka break in continue.
continue; zahteva, da se izvajanje nadaljuje na zacetku zanke.
break; zahteva, da se izvajanje nadaljuje za krmilnim ali zdruzenimstavkom, ki ga vsebuje.
for(c :s) stavek
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 17: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/17.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 15'
&
$
%
Predpostavke
Predpostavke zapisemo z:
Ce je preverjanje predpostavk vkljuceno in je pogoj lazen, se sprozi napaka.
Preverjanje lahko vkljucimo/izkljucimo s stikaloma
-enableassertions ali -ea
in
-disableassertions ali -da
java -ea:MojRazred -ea:paket -da:paket.ToNe MojRazred
DrJava: Edit/Preferences/Miscellaneous/Enable Assert
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 18: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/18.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 16'
&
$
%
Prekinitve
Prekinitve: napake (Error) in izjeme (Exception)
Throwable
Error
Exception
IOException
EOFException
FileNotFoundException
MalformedURLException
UnknowHostException
...
RunTimeException
ArithmeticException
IllegalArgumentException
NullPointerException
...
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 19: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/19.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 17'
&
$
%
Uporaba izjem
Ce pride do izjeme, za katero obstaja ustreznistavek catch, se izvrsijo pripadajoci stavki.Ko enkrat vstopimo v try, se stavki, ki pripadajofinally, zagotovo izvrsijo – tudi, ce pride doizjeme.Na izjemah lahko uporabimo metodigetMessage() in printStackTrace().
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 20: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/20.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 18'
&
$
%
Prestrezanje napake AssertionError
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 21: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/21.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 19'
&
$
%
Lastne izjeme
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6
![Page 22: Racunalni tvo 1 / 3. Uvod v Javo - Vladimir Batageljvlado.fmf.uni-lj.si/vlado/rac1/rac05.pdf · 2007. 4. 15. · V. Batagelj: Racunalniˇ stvo 1 / 5. Primeriˇ 6 Pogoji Pogoj je izraz,](https://reader035.vdocuments.pub/reader035/viewer/2022071408/6100f2bf0dd6c6423f0ab644/html5/thumbnails/22.jpg)
V. Batagelj: Racunalnistvo 1 / 5. Primeri 20'
&
$
%
Branje s spleta
Spredaj moramo dodati se
Univerza v Ljubljani, FMF, matematika s s y s l s y ss * 6