JAVA progrAmozási nyelV netBeAns€¦ · mi a különbség a java nyelv és a java platform...
Transcript of JAVA progrAmozási nyelV netBeAns€¦ · mi a különbség a java nyelv és a java platform...
JAVA progrAmozási
nyelV netBeAns
fejlesztőkörnyezetben
Programozási Projektfeladatok
i/13. éVfolyAm
TANÁRI KÉZIKÖNYV
moduláris korszerű szakmai gyakorlatok informatika területre • Programozási Projektfeladatok
támop-2.2.3-07/1-2f-2008-0011
SZINFO13_TK.indd 1 2010.02.23. 9:57:37
A kiadvány a TÁMOP-2.2.3-07/1-2F-2008-0011 azonosító számú projekt keretében jelenik meg.
Szerző: Kovács Zsuzsanna
Lektor: Balogh Zoltán
Borító és tipográfia: Új Magyarország Fejlesztési Terv Arculati kézikönyv alapján
A mű egésze vagy annak részletei – az üzletszerű felhasználás eseteit ide nem értve – oktatási és tudományos célra korlátozás nélkül, szabadon felhasználhatók.
A tananyagfejlesztés módszertani irányítása: Observans Kft. Budapest, 2009.Igazgató: Bertalan Tamás
Tördelés: Király és Társai Kkt. • Cégvezető: Király Ildikó
SZINFO13_TK.indd 2 2010.02.23. 9:57:37
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 3
A tAnAnyAg áltAlános leírásA
TANANYAG CÍME JAVA PROgRAMOZÁSI NYElV NETBEANS fejleszTőKörnyezeTben
A TANANYAG ÓRASZÁMA 42ÁLTALÁNOS CÉLOK Általános cél
A java programozási nyelv alapvető elemeinek az elsajátítása.
Konkrét célokAz objektum-orientált programozási szemlélet alapjainak a –megismerése, megértése.Az alapvető adattípusok, adatstruktúrák és algoritmikus –szerkezetek megismerése.Az alapvető adattípusok, adatstruktúrák és algoritmikus –szerkezetek jAVA specifikus elemeinek a megismerése, megértése.Alapvető programtesztelési technikák elsajátítása. –A netbeans IDe lehetőségeinek megismerése. –
KAPCSOLÓDÁSOK Kapcsolódások az OKj 1144-06 moduljához: –165/1.2/1144-06 (Programozásmódszertan I.) –165/1.3/1144-06 (Programnyelvek (elméleti ismeretek)) –165/1.4/1144-06 (Programnyelvek (gyakorlat)) –165/4.2/1144-06 (A fejlesztés lépései) –165/5.1/1144-06 (A tesztelés lépései) –165/6.2/1144-06 (Alkalmazásfejlesztő eszközök) –
KIMENETI KÖVETELMÉNYEK
A tanulók ismerjék a Java programozási nyelv legfontosabb szer-kezeteit és szolgáltatásait, és legyenek képesek önállóan, eseten-ként a tanulói jegyzet felhasználásával alkalmazni azokat. Értsék a Java program felépítését, programjaikat modulárisan építsék fel, kezeljék a szükséges hibákat. Programjaikat úgy írják meg, hogy azt később ők maguk, vagy tanulótársuk fel tudja használni. Is-merjék a java hivatalos dokumentációját, képesek legyenek téma-köröket önállóan feldolgozni.Ismerjék a netbeans fejlesztői környezetet, annak kényelmi funk-cióit; készségszinten sajátítsák el a környezetben történő program-fejlesztést. Használatával legyenek képesek alkalmazást fejlesz-teni, azt futtatni, hibás működés esetén lépésenkénti futtatással megtalálni a hiba okát, és javítani azt.
SZINFO13_TK.indd 3 2010.02.23. 9:57:37
4 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
tAnmenet
Sorszám
Tanítási egység – témakör címe Időtartam A tanítási egység típusa
1.
A java technológia, a java nyelv jellemzői. A Java program szerkezete. Elemi output. A java/netbeans fejlesztői környezet telepítése, testreszabása és megismerése
3x45 perc gyakorlat (3x45 perc)
2.Azonosítók, egyszerű típusok. Változódeklaráció, inicializálás és literálok, konstansok. Kifejezések, operátorok
3x45 perc gyakorlat (3x45 perc)
3. Utasítás és blokk. Elágazás típusai, alkalmazása 3x45 perc gyakorlat (3x45 perc)
4. Ciklus típusai, alkalmazása 3x45 perc gyakorlat (3x45 perc)
5. Kivételkezelés. elemi input a Consol osztály segítségével 3x45 perc gyakorlat (3x45 perc)
6. egy- és többdimenziós tömbök definiálása és alkalmazása 3x45 perc gyakorlat (3x45 perc)
7. Típusosztályok. számosztályok. math és strictmath matematikai osztályok 3x45 perc gyakorlat (3x45 perc)
8. A Character osztály. string és stringbuffer osztályok 3x45 perc gyakorlat (3x45 perc)
9. Osztályok, objektumok definiálása és alkalmazása. Saját kivételosztály 3x45 perc gyakorlat (3x45 perc)
10. öröklődés. saját kivételosztály 3x45 perc gyakorlat (3x45 perc)
11. Csatorna fogalma, használata. A Consol osztály. Fájlkezelés alapjai 3x45 perc gyakorlat (3x45 perc)
12.Dátum és időkezelés. Date, Calendar és gregorianCalendar, Timezone osztályok alkalmazása
3x45 perc gyakorlat (3x45 perc)
13. Collection interfész. Halmaz, rendezett halmaz és lista interfészek 3x45 perc gyakorlat (3x45 perc)
14. Hashtábla, dinamikus vektor és verem osztályok 3x45 perc gyakorlat (3x45 perc)
SZINFO13_TK.indd 4 2010.02.23. 9:57:37
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 5
a tanÍtási egysÉg általános bemutatása
CÍM: A JAVA TEChNOLÓGIA, A JAVA NYELV jellemzőI. A jAvA progrAm szerkezete. elemI output. A jAvA/NetBeANs fejlesztőI körNyezet telepítése, testreszABásA és megIsmerése
Sorszám: 1.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok A java technológia alapjainak a megismerése. –A Java programkészítési folyamatának a megértése: a Java platform, Java –VM, forrásállomány, bájtkód, programértelmezés fogalmak megismerése, megértése.A java nyelv alapvető jellemzőinek a megismerése, megértése. –A Java szabványok megismerése. –A java nyelv alkalmazási lehetőségeinek a megismerése. –Az IDE fogalmának a megismerése. –A netbeans IDe internetes elérhetőségének a megismerése, a telepítés –módjának a kipróbálása.A NetBeans fontosabb beállításainak áttekintése. –A Java program szerkezetének megismerése és megértése. –Elemi output megvalósítása a Java programban. –A Hello Vilag alkalmazás megírása a NetBeans segítségével. –Paraméteres felhasználó input megértése és kipróbálása. –Paraméteres programok futtatása a NetBeans környezetben. –
Követelmények Képes legyen felsorolni és megmagyarázni a java technológiához kapcso- –lódó alapvető fogalmakat.Képes legyen felsorolni és értelmezni a java nyelv alapvető jellemzőit. –Képes legyen azonosítani a generált java programkódban az alapvető ele- –meket.Képes legyen a netbeans fejlesztői környezetet az internetről letölteni, –telepíteni.Képes legyen módosítani a NetBeans legfontosabb beállításait. –Ismerje a netbeans fejlesztői környezet legfontosabb részeit és azok funk- –cióját.Ismerje a Java NetBeans projekt fogalmát és szerepét. –Ismerje a csomag fogalmát. –Képes legyen reprodukálni a Hello Vilag program megírását. –Tudjon megfelelően elnevezett, a megfelelő könyvtárba elmentett projek- –tet létrehozni netbeansben.Képes legyen egy Java forrásfájlt lefordítani és futtatni a NetBeans segít- –ségével.Tudja, milyen állományok keletkeznek, és melyiket hol találja. –Tudjon paraméteres programot futtatni NetBeansben, és ismerje a para- –méterek elérésének módját.
SZINFO13_TK.indd 5 2010.02.23. 9:57:37
6 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 6 2010.02.23. 9:57:37
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 7
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
A j
ava
tech
noló
gia,
a j
ava
nyel
v je
llem
zői.
A j
ava
prog
ram
szer
keze
te. e
lem
i out
put.
A
java
/Net
Bea
ns fe
jlesz
tői k
örny
ezet
tele
píté
se, t
estr
esza
bása
és m
egism
erés
e
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.Ja
va n
yelv
ere
dete
, Jav
a pl
atfo
rmA
Java
ver
ziói
Szab
vány
, nyi
lt fo
rrás
kód
Java
App
let,
Java
Scrip
t
meg
figye
lés
Abs
ztra
kció
Cso
port
osítá
sÁ
ltalá
nosít
ás
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
.1.1
Taná
ri pr
ezen
táci
ó 1.
/01–
02.
N
2.A
Java
nye
lv je
llem
-ző
i: ob
jekt
umor
ient
ált,
plat
form
függ
etle
n, m
eg-
bízh
ató,
biz
tons
ágos
meg
figye
lés
Abs
ztra
kció
Cso
port
osítá
sÁ
ltalá
nosít
ás
5 Ta
nári
előa
dás
Prez
entá
ció
meg
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
.1.2
Taná
ri pr
ezen
táci
ó 1.
/03.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekk
el ö
ssze
veth
ető
a Ja
va n
yelv
.
3.A
Java
pro
gram
felé
píté
seH
ello
Vila
gPa
ranc
ssor
ból t
örté
nő
ford
ítás é
s fut
tatá
s
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
.2.1
Taná
ri pr
ezen
táci
ó 1.
/04–
05.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talt
ele-
mi o
utpu
ttal ö
ssze
veth
ető
a Ja
va m
egol
dása
.4.
IDE
foga
lma
Java
Net
Bea
ns te
lepí
tésé
-ne
k lé
pése
i
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
5 Ta
nári
előa
dás
Prez
entá
ció
meg
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
.3.1
–1.3
.3Ta
nári
prez
entá
ció
1./0
6–07
.N
5.V
álas
ztha
tó:
A J
DK
tele
píté
seÖ
nálló
ság
meg
figye
lés
10
Öná
lló m
unka
Vid
eó m
egte
-ki
ntés
e
Öná
lló m
unka
Tanu
lói j
egyz
et: 1
.3.2
Taná
ri pr
ezen
táci
ó 1.
/07.
Vid
eó: S
ZIN
FO13
_VID
_01_
01
N
6.V
álas
ztha
tó:
A N
etB
eans
tele
píté
seÖ
nálló
ság
meg
figye
lés
15
Öná
lló m
unka
Vid
eó m
egte
-ki
ntés
e
Öná
lló m
unka
Tanu
lói j
egyz
et: 1
.3.3
Taná
ri pr
ezen
táci
ó 1.
/07.
Vid
eó: S
ZIN
FO13
_VID
_01_
02
N
7.A
Net
Bea
ns te
stre
szab
ása
Öná
llósá
gm
egfig
yelé
s10
Ta
nári
előa
dás
Öná
lló m
unka
Vid
eó m
egte
-ki
ntés
e
Irán
yíto
tt ön
álló
m
unka
Tanu
lói j
egyz
et: 1
.3.4
Taná
ri pr
ezen
táci
ó 1.
/08.
Vid
eó: S
ZIN
FO13
_VID
_01_
03
N
SZINFO13_TK.indd 7 2010.02.23. 9:57:37
8 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
A j
ava
tech
noló
gia,
a j
ava
nyel
v je
llem
zői.
A j
ava
prog
ram
szer
keze
te. e
lem
i out
put.
A
java
/Net
Bea
ns fe
jlesz
tői k
örny
ezet
tele
píté
se, t
estr
esza
bása
és m
egism
erés
e
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
8.A
Net
Bea
ns k
örny
ezet
ré
szei
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
5 Ta
nári
előa
dás
Vid
eó m
egte
-ki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et: 1
.3.5
Taná
ri pr
ezen
táci
ó 1.
/09.
Vid
eó: S
ZIN
FO13
_VID
_01_
04
N
9.N
etB
eans
Java
pro
jekt
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
5 Ta
nári
előa
dás
Vid
eó m
egte
-ki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et: 1
.3.6
Taná
ri pr
ezen
táci
ó 1.
/10.
N
10.
Hel
loV
ilag
prog
ram
el
kész
ítése
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sÖ
nálló
mun
kaV
ideó
m
egte
kint
ése
Irán
yíto
tt ön
álló
mun
kaTa
nuló
i jeg
yzet
: 1.3
.7Ta
nári
prez
entá
ció
1./1
1.V
ideó
: SZI
NFO
13_V
ID_0
1_05
N
11.
Para
mét
eres
pro
gram
okar
gs tö
mb,
par
amét
eres
fu
ttatá
sM
ain
proj
ect
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sÖ
nálló
mun
kaV
ideó
m
egte
kint
ése
Fron
tális
os
ztál
ymun
kaTa
nuló
i jeg
yzet
: 1.3
.8Ta
nári
prez
entá
ció
1./1
2.V
ideó
: SZI
NFO
13_V
ID_0
1_06
N
12.
Vál
aszt
ható
:1.
4.1–
1.4.
4-es
fela
dato
k ön
álló
meg
oldá
sa
Öná
llósá
gV
issz
aem
léke
zés
öne
llenő
rzés
Ered
mén
yek
össz
evet
ése
10
Öná
lló te
vé-
keny
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
.4.1
–1.4
.4N
13.
Prog
ram
ozás
i fel
adat
ön
álló
meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
öne
llenő
rzés
10
Irán
yíto
tt te
vé-
keny
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
.4.5
N
14.
Prog
ram
ozás
i fel
adat
ok
páro
s meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
Koo
perá
ció
25
Koo
pera
tív
mód
szer
: Pá
ros p
rogr
a-m
ozás
Cso
port
os te
vé-
keny
ség
Tanu
lói j
egyz
et 1
.4.6
N
SZINFO13_TK.indd 8 2010.02.23. 9:57:38
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 9
1.4 felAdAtok megoldásA
1.4.1 felAdAt
mi a különbség a java nyelv és a java platform között?A java szó azonban nem csak egy programozási nyelvet jelöl, hanem a java programok megírásához és futtatásához szükséges szoftverkörnyezetet, azaz a java platformot is.A platform része a Java program, a Java fordító, és a programokat futtató virtuális gép is.A platform részét képezi továbbá egy igen bő és sokoldalú fejlesztői programcsomag, a java sDK (software Development Kit), vagy ahogy újabban hívják: jDK (java Development Kit) is, melyben előre kidolgozott és szabadon felhasználható komponenseket és könyvtárakat találunk.
1.4.2 felAdAt
mi a jvm, és mi a szerepe?A java egy másik fontos tulajdonsága a platformfüggetlenség, más néven hordozhatóság. ez azt jelen-ti, hogy ugyanaz a program különböző hardveren, más és más operációs rendszeren is változtatás nél-kül képes futni. A java esetében ezt úgy oldották meg, hogy a fordítóprogram csak ún. java bájtkódra fordítja le a forráskódot – ezt kapja meg a virtuális gép (jVm), és csak ő fordítja le azt gépi kódra (értelemszerűen az adott „gép” által értelmezhető gépi kódra). mivel a programból csak futás közben lesz gépi kód, a Java interpretált nyelv.
1.4.3 felAdAt
sorold fel a java programozási nyelv legfontosabb jellemzőit!magas szintű, teljesen objektumorientált nyelvplatformfüggetlen, más néven hordozhatóinterpretált nyelvmegbízható, avagy robusztusbiztonságosszintaktikája a C++-t követi
SZINFO13_TK.indd 9 2010.02.23. 9:57:38
10 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
1.4.4 felAdAt
magyarázd meg a felsorolt kifejezéseket!Töltsd ki a táblázatot!
a) JDK
A platform részét képezi továbbá egy igen bő és sokoldalú fejlesztői prog-ramcsomag, a java sDK (software Development Kit), vagy ahogy újab-ban hívják: jDK (java Development Kit) is, melyben előre kidolgozott és szabadon felhasználható komponenseket és könyvtárakat találunk.
b) nyílt forráskódúValamennyi java verzió szabvány is egyben, de az alapvető fejlesztőesz-közök 2006 óta nyílt forráskódúak, azaz bárki hozzáférhet és módosít-hatja őket.
c) Java Applet A java Applet egy HTml oldalból elérhető és a böngésző által futtatha-tó, Java forrásból készült program.
d) platformfüggetlen ez azt jelenti, hogy ugyanaz a program különböző hardveren, más és más operációs rendszeren is változtatás nélkül képes futni.
e) bájtkódA fordítóprogram csak ún. java bájtkódra fordítja le a forráskódot – ezt kapja meg a virtuális gép (jVm), és csak ő fordítja le azt gépi kódra (ér-telemszerűen az adott „gép” által értelmezhető gépi kódra).
f) interpretált A programból csak futás közben lesz gépi kód.
g) robusztusA java nyelv megbízható avagy robusztus, mert a programozási hibák egy részét megakadályozza, a másik részét pedig futás közben kiszűri, és támogatja a fejlesztőt azok professzionális kezelésében.
h) automatikus sze-métgyűjtés
(garbage Collector): a nyelv automatikusan felszabadítja a már nem használt erőforrásokat.
1.4.5 felAdAtA feladat forráskódja megtalálható a Tanulói jegyzetben.
1.4.6 felAdAt public static void main(String[] args) { System.out.print(„Vezetéknév: „); System.out.println(args[0]); // 1. paraméter kiírása System.out.print(„Keresztnév: „); System.out.println(args[1]); // 2. paraméter kiírása System.out.print(„Életkor: „); System.out.println(args[2]); // 3. paraméter kiírása }
SZINFO13_TK.indd 10 2010.02.23. 9:57:38
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 11
a tanÍtási egysÉg általános bemutatása
Cím: AzoNosítók, egyszerű típusok. váltoZÓDEKLARÁCIÓ, INICIALIZÁLÁS ÉS LITERálok, koNstANsok. kIfejezések, operáTOROK
Sorszám: 2.
Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok Azonosító fogalmának és az azonosító nyelvi szabályainak megismerése, –foglalt szavak felismerése.Adattípus fogalmának és fajtáinak átismétlése, a java egyszerű adattípu- –sainak megismerése.Változó és változódeklaráció fogalmának átismétlése, változódeklaráció –megismerése Javában. Inicializálás és literál fogalmának megértése, lehetséges literálok és azok –jelzésének áttekintése.Konstans fogalmának átismétlése, szintaktikájának megismerése. –Operátor és kifejezés fogalmának átismétlése, logikai és aritmetikai ope- –rátorok áttekintése, speciális értékadó illetve prefix és postfix operátorok megértése. Automatikus és explicit típuskonverzió fogalmának ismertetése. –Operátorok precedenciasorrendjének bemutatása. –
Követelmények legyen képes objektumait a nyelv szabályainak megfelelően elnevezni. –Ismerje a foglalt szavakat.legyen képes a feladatnak megfelelő elemi adattípust megválasztani. –Tudjon változókat deklarálni és inicializálni, változóknak értéket adni, is- –merje a literál fogalmát és annak jelölését.Tudjon konstanst definiálni. –Tudja megfelelően alkalmazni a különböző operátortípusokat. –Értse az automatikus és explicit típuskonverzió fogalmát, a kettő közötti –különbséget.Tudja, mikor és hogyan kell a feladatok megoldásakor explicit típuskon- –verziót alkalmazni.Tudjon szintaktikailag helyes kifejezéseket előállítani az operátorok alkal- –mazásával.Értse az operátorok precedenciájának fontosságát, hatását a kifejezések –kiértékelésére.
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
SZINFO13_TK.indd 11 2010.02.23. 9:57:38
12 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 12 2010.02.23. 9:57:38
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 13
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
Azo
nosít
ók, e
gysz
erű
típus
ok. v
álto
zóde
klar
áció
, ini
cial
izál
ás é
s lite
rálo
k, k
onst
anso
k.
Kife
jezé
sek,
ope
ráto
rok
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.A
zono
sítók
, fog
lalt
szav
akA
zono
sító
kons
truá
lása
és
anal
ízis
eFo
glal
t sza
vak
felis
mer
ése
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 2
.1.1
Taná
ri pr
ezen
táci
ó 2.
/01.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.
2.2.
4.1-
es fe
lada
t öná
lló
meg
oldá
sa é
s ért
ékel
ése
Azo
nosít
ó ko
nstr
uálá
sa é
s an
alíz
ise
öne
llenő
rzés
Ered
mén
yek
össz
evet
ése
5 Ir
ányí
tott
tevé
-ke
nysé
gEg
yéni
mun
-ka
, Cso
port
os
érté
kelé
s
Tanu
lói j
egyz
et 2
.4.1
N
3.A
dattí
pus,
egys
zerű
ad
attíp
usok
a Ja
vába
nA
bszt
rakc
ióel
emi a
dattí
puso
k ös
szeh
a-so
nlítá
saPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 2
.1.2
Taná
ri pr
ezen
táci
ó 2.
/02.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talt
egys
ze-
rű tí
puso
kkal
öss
zeve
thet
ő.
4.V
álto
zóde
klar
áció
, in
icia
lizál
ás, l
iterá
lok,
ko
nsta
nsok
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
25
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 2
.2Ta
nári
prez
entá
ció
2./0
3–04
.M
ás, t
anul
t pro
gram
ozás
i ny
elve
kben
tapa
szta
lt vá
lto-
zóde
klar
áció
val ö
ssze
haso
n-lít
ható
.5.
logi
kai é
s öss
zeha
sonl
í-tó
ope
ráto
rok
Arit
met
ikai
ope
ráto
rok
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 2
.3.1
–2.3
.3Ta
nári
prez
entá
ció
2./0
5.M
ás, t
anul
t pro
gram
ozás
i ny
elve
kben
tapa
szta
lt op
erát
o-ro
kkal
öss
zeha
sonl
íthat
ó.
6.Ér
téka
dó o
perá
toro
kPr
efix
és p
ostfi
x op
erá-
toro
k
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
seK
ülön
böző
meg
oldá
sok
össz
e-ha
sonl
ítása
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 2
.3.4
–2.3
.5Ta
nári
prez
entá
ció
2./0
6.N
SZINFO13_TK.indd 13 2010.02.23. 9:57:38
14 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
Azo
nosít
ók, e
gysz
erű
típus
ok. v
álto
zóde
klar
áció
, ini
cial
izál
ás é
s lite
rálo
k, k
onst
anso
k.
Kife
jezé
sek,
ope
ráto
rok
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
7.O
perá
toro
k ki
érté
kelé
se,
prec
eden
cia
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 2
.3.6
Taná
ri pr
ezen
táci
ó 2.
/07.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talt
kiér
té-
kelé
si so
rren
ddel
öss
zeha
son-
lítha
tó.
8.2.
4.2-
es fe
lada
t öná
lló
meg
oldá
sa é
s ért
ékel
ése
Azo
nosít
ó ko
nstr
uálá
sa é
s an
alíz
ise
öne
llenő
rzés
Ered
mén
yek
össz
evet
ése
15
Irán
yíto
tt te
vé-
keny
ség
Egyé
ni m
un-
ka C
sopo
rtos
ér
téke
lés
Tanu
lói j
egyz
et 2
.4.2
N
9.Pr
ogra
moz
ási f
elad
atok
ön
álló
meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
öne
llenő
rzés
35
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 2
.4.3
–2.4
.6
N
SZINFO13_TK.indd 14 2010.02.23. 9:57:38
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 15
2.4 felAdAtok megoldásA
2.4.1 felAdAt
melyik azonosító helyes szintaktikailag?Karikázd be azon azonosítók betűjelét, melyek megfelelnek a szabályoknak!
mi a probléma a hibás azonosítókkal?a) 5osOsztalyzatokSzama
b) _$_valtozo$A
c) new
d) newYorkbanLakokListaja
e) CIKLUS_VALTOZO
2.4.2 felAdAt
mi lesz a megadott kifejezések értéke?Töltsd ki a táblázatot! A szam változó kezdőértéke minden kifejezésnél 10. A log logikai változó
kezdőértéke mindig true.Kifejezés Eredmény
a) szam++*2 20
b) ++szam*2 22
c) (szam+10)%3 2
d) szam+10%3 11
e) 9<6 && (3==8 || 4!=7) hamis
f) 9<6 && 3==8 || 4!=7 igaz
g) !(log || 3<8) hamis
h) !log || 3<8 igaz
2.4.3 felAdAt public static void main(String[] args) { int a = Integer.parseInt(args[0]); // a oldal int b = Integer.parseInt(args[1]); // b oldal int c = Integer.parseInt(args[2]); // c oldal
int terfogat = a*b*c; int felszin = 2*(a*b + a*c + b*c);
System.out.print(„Térfogat: „); System.out.println(terfogat); System.out.print(„Felszín: „); System.out.println(felszin); }
SZINFO13_TK.indd 15 2010.02.23. 9:57:38
16 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
2.4.4 felAdAt public static void main(String[] args) { int szam1 = Integer.parseInt(args[0]); // egyik szám int szam2 = Integer.parseInt(args[1]); // másik szám int osszeg = szam1 + szam2; int kulonbseg = szam1 - szam2; int szorzat = szam1 * szam2; float hanyados = (float)szam1 / szam2;
System.out.print(„Összeg: „); System.out.println(osszeg); System.out.print(„Különbség: „); System.out.println(kulonbseg); System.out.print(„Szorzat: „); System.out.println(szorzat); System.out.print(„Hányados: „); System.out.println(hanyados); }
2.4.5 felAdAt public static void main(String[] args) { int szam1 = Integer.parseInt(args[0]); // 1. szám int szam2 = Integer.parseInt(args[1]); // 2. szám int szam3 = Integer.parseInt(args[2]); // 3. szám int szam4 = Integer.parseInt(args[3]); // 4. szám int szam5 = Integer.parseInt(args[4]); // 5. szám float szamtanikozep = (float)(szam1 + szam2 + szam3 + szam4 + szam5)/5;
System.out.print(„Számok: „); System.out.print(szam1); System.out.print(„, „); System.out.print(szam2); System.out.print(„, „); System.out.print(szam3); System.out.print(„, „); System.out.print(szam4); System.out.print(„, „); System.out.println(szam5); System.out.print(„Számtani közép: „); System.out.println(szamtanikozep); }
2.4.6 felAdAt public static void main(String[] args) { int a = Integer.parseInt(args[0]); // a int b = Integer.parseInt(args[1]); // b int c = Integer.parseInt(args[2]); // c
double diszkriminans = Math.sqrt(b*b-4*a*c); double x1 = (-b + diszkriminans)/2*a; double x2 = (-b - diszkriminans)/2*a;
System.out.print(„x1 = „); System.out.println(x1); System.out.print(„x2 = „); System.out.println(x2); }
SZINFO13_TK.indd 16 2010.02.23. 9:57:38
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 17
a tanÍtási egysÉg általános bemutatása
Cím: utAsítás és Blokk. elágAzás típusAI, ALKALMAZÁSA
Sorszám: 3.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok Utasítás és blokk fogalmának és nyelvi sajátosságainak megismerése. –lokális változó fogalmának átismétlése, blokkon belüli láthatóság bemu- –tatása.szekvencia és elágazás fogalmának átismétlése, egyszerű elágazás átte- –kintése.egyszerű elágazás szintaktikájának megismerése, egyszerű elágazások –egymás után fűzésének megtanulása.összetett elágazás áttekintése, a java switch szerkezetének megértése. –
Követelmények Tudjon utasításokat és blokkokat készíteni. –Ismerje fel egy programban az elágazás alkalmazásának a lehetőségét, –illetve szükségességét.Tudja alkalmazni az egyszerű, a két- és többirányú elágazásokat java –programban.legyen képes áttekinthetően kódolni az elágazás struktúrát. –legyen képes elágazásokat egymásba ágyazni. –
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 17 2010.02.23. 9:57:39
18 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
uta
sítás
és b
lokk
. elá
gazá
s típ
usai
, alk
alm
azás
a
Ssor
sz
ámté
ma
/ alté
ma
kés
zség
/ ké
pess
égId
őta
rtam
(p
erc)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.U
tasít
ás é
s blo
kkm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
5 Ta
nári
előa
dás
Prez
entá
ció
meg
-te
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 3
.1Ta
nári
prez
entá
ció
3./0
1.M
ás, t
anul
t pro
gram
ozás
i ny
elve
kben
tapa
szta
ltakk
al
össz
evet
hető
a ja
va sz
inta
k-tik
ája.
2.eg
ysze
rű e
lága
zás
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 3
.2.1
Taná
ri pr
ezen
táci
ó 3.
/02–
03.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.3.
Öss
zete
tt el
ágaz
ásm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
egys
zerű
és ö
ssze
tett
elág
azás
ös
szeh
ason
lítás
a
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eV
ideó
meg
teki
n-té
seM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 3
.2.2
Taná
ri pr
ezen
táci
ó 3.
/04.
Vid
eó: S
ZIN
FO13
_V
ID_0
3_01
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.
4.Pr
ogra
moz
ási f
elad
atok
ön
álló
meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
öne
llenő
rzés
90
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 3
.2.1
–3.2
.7Pr
ogra
moz
ási f
elad
atok
öná
l-ló
meg
oldá
sa
SZINFO13_TK.indd 18 2010.02.23. 9:57:39
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 19
3.2 felAdAtok megoldásA
3.2.1 felAdAt public static void main(String[] args) { int i = Integer.parseInt(args[0]);
if (i % 2 == 0) { // páros System.out.println(„A szám páros!”); } else { // nem páros System.out.println(„A szám páratlan!”); } }
3.2.2 felAdAt public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i % 2 == 0) { // oszthatóság: 2 System.out.println(„A szám osztható 2-vel!”); } else { System.out.println(„A szám nem osztható 2-vel!”); } if (i % 3 == 0) { // oszthatóság: 3 System.out.println(„A szám osztható 3-mal!”); } else { System.out.println(„A szám nem osztható 3-mal!”); } if (i % 5 == 0) { // oszthatóság: 5 System.out.println(„A szám osztható 5-tel!”); } else { System.out.println(„A szám nem osztható 5-tel!”); } }
3.2.3 felAdAt public static void main(String[] args) { int a = Integer.parseInt(args[0]); // a oldal int b = Integer.parseInt(args[1]); // b oldal int c = Integer.parseInt(args[2]); // c oldal
if (a+b > c && a+c > b && b+c > a) { // szerkeszthető System.out.println(„A háromszög megszerkeszthető!”); } else { // nem szerkeszthető System.out.println(„Nem megszerkeszthető!”); } }
SZINFO13_TK.indd 19 2010.02.23. 9:57:39
20 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
3.2.4 felAdAt public static void main(String[] args) { int szam = Integer.parseInt(args[0]);
if (0 <= szam && szam <= 1000000) { if (szam > 999999) { System.out.println(„A szám hétjegyű!”); } else if (szam > 99999) { System.out.println(„A szám hatjegyű!”); } else if (szam > 9999) { System.out.println(„A szám ötjegyű!”); } else if (szam > 999) { System.out.println(„A szám négyjegyű!”); } else if (szam > 99) { System.out.println(„A szám háromjegyű!”); } else if (szam > 9) { System.out.println(„A szám kétjegyű!”); } else if (szam >= 0) { System.out.println(„A szám egyjegyű!”); } } else { System.out.println(„A számnak 0 és 1000000 között kell lennie!”); } }
3.2.5 felAdAt public static void main(String[] args) { if (args.length == 2) { int szam1 = Integer.parseInt(args[0]); int szam2 = Integer.parseInt(args[1]); if (szam1 > szam2) { System.out.println(„Az első szám a nagyobb!”); } else if (szam1 < szam2) { System.out.println(„A második szám a nagyobb!”); } else { System.out.println(„A két szám egyenlő!”); } } else { System.err.println(„Két számot adj meg!”); } }
SZINFO13_TK.indd 20 2010.02.23. 9:57:39
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 21
3.2.6 felAdAt public static void main(String[] args) { int x = Integer.parseInt(args[0]); switch (x) { case 10: System.out.println(„tíz”); case 9: System.out.println(„kilenc”); case 8: System.out.println(„nyolc”); case 7: System.out.println(„hét”); case 6: System.out.println(„hat”); case 5: System.out.println(„öt”); case 4: System.out.println(„négy”); case 3: System.out.println(„három”); case 2: System.out.println(„kettő”); case 1: System.out.println(„egy”); case 0: System.out.println(„nulla”); break; default: System.err.println(„Túl nagy számot adtál meg!”); } }
SZINFO13_TK.indd 21 2010.02.23. 9:57:39
22 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
3.2.7 felAdAt public static void main(String[] args) { if (args.length == 3) { int a = Integer.parseInt(args[0]); // a int b = Integer.parseInt(args[1]); // b int c = Integer.parseInt(args[2]); // c if (a == 0) { System.out.println(„Az egyenlet nem másodfokú!”); double x = (double)-c/b; System.out.print(„x = „); System.out.println(x); } else { double diszkriminans = (double)b*b-4*a*c; if (diszkriminans >= 0) { diszkriminans = Math.sqrt(diszkriminans); double x1 = (-b + diszkriminans)/2*a; double x2 = (-b - diszkriminans)/2*a; System.out.print(„x1 = „); System.out.println(x1); System.out.print(„x2 = „); System.out.println(x2); } else { System.out.println(„Nincs megoldás!”); } } } else { System.err.println(„Három együtthatót kérek!”); } }
SZINFO13_TK.indd 22 2010.02.23. 9:57:39
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 23
a tanÍtási egysÉg általános bemutatása
Cím: CIklus típusAI, AlkAlmAzásASorszám: 4.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok Ciklus fogalmának átismétlése. –elöltesztelő ciklus fogalmának áttekintése, szintaktikájának megértése. –Hátultesztelő ciklus fogalmának áttekintése, szintaktikájának megértése. –for-ciklus megértése, hasznosságának felismerése. –
Követelmények Ismerje fel egy programban az ciklusok alkalmazásának a lehetőségét, –illetve szükségességét.Tudja alkalmazni a különböző típusú ciklusokat java programban. –legyen képes áttekinthetően kódolni a ciklusokat. –
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 23 2010.02.23. 9:57:39
24 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
Cik
lus t
ípus
ai, a
lkal
maz
ása
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.Ci
klus
, elö
ltesz
telő
cik
lus
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 4
.1.1
Taná
ri pr
ezen
táci
ó 4.
/01.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.2.
Hát
ulte
szte
lő c
iklu
sm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
öss
zeha
sonl
ítás
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 4
.1.2
Taná
ri pr
ezen
táci
ó 4.
/02.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.
3.Fo
r-cik
lus
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
seö
ssze
haso
nlítá
s
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 4
.1.3
Taná
ri pr
ezen
táci
ó 4.
/03.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.
4.N
etB
eans
cik
lus é
s kiír
ó kó
dsab
lono
kD
ebug
golá
s
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sV
ideó
meg
te-
kint
ése
Meg
besz
élés
Öná
lló m
unka
Taná
ri pr
ezen
táci
ó 4.
/04.
Vid
eó: S
ZIN
FO13
_VID
_04_
01V
ideó
: SZI
NFO
13_V
ID_0
4_02
N
5.Pr
ogra
moz
ási f
elad
atok
öná
l-ló
meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
öne
llenő
rzés
65
Öná
lló te
vé-
keny
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 4
.2.1
–4.2
.12
N
SZINFO13_TK.indd 24 2010.02.23. 9:57:39
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 25
4.2 felAdAtok megoldásA
4.2.1 felAdAt public static void main(String[] args) { System.out.println(„A paraméterek:”); if (args.length > 0) { for (int i = 0; i < args.length-1; i++) { System.out.print(args[i]); System.out.print(„, „); } System.out.println(args[args.length-1]); } else { System.err.println(„Nem adtál meg paramétert!”); } }
4.2.2 felAdAt public static void main(String[] args) { System.out.println(„Páros számok 1 és 20 között:”); for (int i = 1; i <= 20; i++) { if (i % 2 == 0) { System.out.print(i); System.out.print(„ „); } } System.out.println(); }
4.2.3 felAdAt public static void main(String[] args) { if (args.length == 2) { int tol = Integer.parseInt(args[0]); int ig = Integer.parseInt(args[1]); System.out.println(„3-mal osztahtó számok „+tol+” és „ +ig+” között:”); for (int i = tol; i <= ig; i++) { if (i % 3 == 0) { System.out.print(i+” „); } } System.out.println(); } else { System.err.println(„Két paramétert várok!”); } }
SZINFO13_TK.indd 25 2010.02.23. 9:57:39
26 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
4.2.4 felAdAt public static void main(String[] args) { if (args.length == 1) { int szam = Integer.parseInt(args[0]); int oszto = 0; System.out.println(szam + „ osztói: „); for (int i = 2; i <= szam/2; i++) { if (szam % i == 0) { System.out.print(i + „ „); oszto++; } } if (oszto == 0) { System.out.print(„A szám prím!”); } System.out.println(); } else { System.err.println(„Egy paramétert adj meg!”); } }
4.2.5 felAdAt public static void main(String[] args) { if (args.length == 2) { String szo = args[0]; int szor = Integer.parseInt(args[1]); for (int i = 0; i < szor; i++) { for (int j = 0; j<i; j++) { System.out.print(„ „); } System.out.println(szo); } } else { System.err.println(„Két paramétert várok!”); } }
4.2.6 felAdAt public static void main(String[] args) { if (args.length == 1) { int szam = Integer.parseInt(args[0]); int osztosum = 0; for (int i = 1; i <= szam/2; i++) { if (szam % i == 0) { osztosum += i; } } if (szam == osztosum) { System.out.println(„A szám tökéletes!”); } else { System.out.println(„A szám nem tökéletes!”); } } else { System.err.println(„Egy paramétert adj meg!”); } }
SZINFO13_TK.indd 26 2010.02.23. 9:57:39
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 27
4.2.7 felAdAt public static void main(String[] args) { if (args.length == 2) { int osztosum1 = 0, osztosum2 = 0; for (int k = 0; k < 2; k++) { int szam = Integer.parseInt(args[k]); for (int i = 1; i <= szam/2; i++) { if (szam % i == 0) { if (k == 0) { osztosum1 += i; } else { osztosum2 += i; } } } } if (Integer.parseInt(args[0]) == osztosum2 && Integer.parseInt(args[1]) == osztosum1) { System.out.println(„A két szám barátságban áll!”); } else { System.out.println(„Nem barátkoznak!”); } } else { System.err.println(„Két számot adj meg!”); } }
4.2.8 felAdAt public static void main(String[] args) { if (args.length > 0) { int osszeg = 0; for (int i = 0; i < args.length; i++) { int szam = Integer.parseInt(args[i]); osszeg += szam; } System.out.println(„Számtani közép: „+(float)osszeg/args.length); } else { System.err.println(„Nem adtál meg paramétert!”); } }
SZINFO13_TK.indd 27 2010.02.23. 9:57:39
28 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
4.2.9 felAdAt public static void main(String[] args) { if (args.length == 1) { int szam = Integer.parseInt(args[0]); if (szam>=100 && szam<=9999) { int szamjegysum = 0; for (int i = 1000; i >= 1; i/=10) { int szamjegy = szam / i; szamjegysum += szamjegy; szam -= szamjegy*i; } System.out.println(„Számjegek összege: „ + szamjegysum); } else { System.err.println(„100 és 9999 közötti számot adj meg!”); } } else { System.err.println(„Egy paramétert adj meg!”); } }
4.2.10 felAdAt public static void main(String[] args) { for (int i = 0; i < 10; i++) { // sor for (int j = 0; j < 40; j++) { // oszlop if (i<5 && j<15) { System.out.print(„*”); } else { System.out.print(„-”); } } System.out.println(); } }
4.2.11 felAdAt public static void main(String[] args) { int sor = 5, oszlop = 5; if (args.length == 2) { sor = Integer.parseInt(args[0]); oszlop = Integer.parseInt(args[1]); } for (int i = 1; i <= sor; i++) { // sor for (int j = 1; j <= oszlop; j++) { // oszlop if (i==1 || i==sor || j==1 || j==oszlop) { System.out.print(„*”); } else { System.out.print(„ „); } } System.out.println(); } }
SZINFO13_TK.indd 28 2010.02.23. 9:57:39
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 29
a tanÍtási egysÉg általános bemutatása
Cím: kIvételkezelés. elemI INput A CoNsol OSZTÁLY SEGÍTSÉGÉVEL
Sorszám: 5.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok szintaktikai és szemantikai hiba fogalmának átismétlése, biztonságos –program definiálása.Kivétel fogalmának megtanítása, az ezzel kapcsolatos fogalmak, kifeje- –zések ismertetése.ellenőrzött és nem ellenőrzött kivételek bemutatása. –Kivételkezelés bemutatása a Java nyelvben. –A Consol osztály bevezetése, elemi input bemutatása a segítségével. –
Követelmények Értse meg a biztonságos program fogalmát, a hibák kezelésének szüksé- –gességét.Ismerje fel programjai írása során, ha kivétel kezelésére van szükség. –Tudja kezelni a kivételeket. –legyen képes áttekinthetően kódolni a kivételek kezelését. –Tudjon elemi adatokat beolvasni a konzolról a Consol osztály segítségé- –vel.
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 29 2010.02.23. 9:57:40
30 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
kiv
étel
keze
lés.
elem
i inp
ut a
Con
sol o
sztá
ly se
gíts
égév
el
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rm
aK
épzé
si a
nyag
ok, e
szkö
zök
egy
éb ja
vasl
atok
1.Sz
inta
ktik
ai é
s sze
man
tikai
hi
ba, b
izto
nság
os p
rogr
amm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
-ki
ntés
eM
egbe
szél
és
Fron
tális
os
ztál
ymun
-ka
Tanu
lói j
egyz
et 5
.1.1
Taná
ri pr
ezen
táci
ó 5.
/01.
N
2.K
ivét
el, e
llenő
rzöt
t és n
em
elle
nőrz
ött k
ivét
elek
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
-ki
ntés
eM
egbe
szél
és
Fron
tális
os
ztál
ymun
-ka
Tanu
lói j
egyz
et 5
.1.2
Taná
ri pr
ezen
táci
ó 5.
/02–
03.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.3.
Kiv
étel
kez
elés
eTr
y-ca
tch
blok
kPé
lda
Fina
lly á
g
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
-ki
ntés
eM
egbe
szél
és
Fron
tális
os
ztál
ymun
-ka
Tanu
lói j
egyz
et 5
.1.3
Taná
ri pr
ezen
táci
ó 5.
/04–
07.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.5.
A C
onso
l osz
tály
bev
ezet
ése
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
5 Ta
nári
előa
dás
Prez
entá
ció
meg
te-
kint
ése
Meg
besz
élés
Fron
tális
os
ztál
ymun
-ka
Tanu
lói j
egyz
et 5
.2Ta
nári
prez
entá
ció
5./0
8–09
.N
6.A
Con
sol o
sztá
ly h
aszn
álat
a és
kiv
étel
keze
lést
tám
ogat
ó es
zköz
ök a
Net
Bea
nsbe
n
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sV
ideó
meg
teki
ntés
eM
egbe
szél
és
Fron
tális
os
ztál
ymun
-ka
Taná
ri pr
ezen
táci
ó 5.
/10.
Vid
eó: S
ZIN
FO13
_VID
_05_
01N
7.Pr
ogra
moz
ási f
elad
atok
öná
l-ló
meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
öne
llenő
rzés
85
Öná
lló te
véke
nysé
gÖ
nálló
m
unka
Tanu
lói j
egyz
et 5
.3.1
–5.3
.6N
SZINFO13_TK.indd 30 2010.02.23. 9:57:40
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 31
5.3 felAdAtok megoldásA
5.3.1 felAdAt public static void main(String[] args) { try { int szam = 0, i = 0; while (szam != 11) { szam = Consol.readInt(„Adj meg egy számot: „); i++; } System.out.println(„A 11-es a(z) „ + i + „. volt.”); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
5.3.2 felAdAt public static void main(String[] args) { try { int szam = Consol.readInt(„Adj meg egy számot: „); boolean paros = (szam%2 == 0); if (szam%3 == 0) { if (paros) { System.out.println(„A szám osztható 2-vel és 3-mal!”); } else { System.out.println(„A szám osztható 3-mal, de 2-vel nem!”); } } else { if (paros) { System.out.println(„A szám osztható 2-vel, de 3-mal nem!”); } else { System.out.println(„A szám nem oszható sem 2-vel sem 3-mal!”); } } } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 31 2010.02.23. 9:57:40
32 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
5.3.3 felAdAt public static void main(String[] args) { try { int szam1 = Consol.readInt(„Adj meg egy számot: „); int szam2 = Consol.readInt(„Adj még egy számot: „); int szam3 = Consol.readInt(„Adj még egy számot: „); int max = szam1; if (szam2>max) { max = szam2; } if (szam3 > max) { max = szam3; } System.out.println(„A legnagyobb szám: „ + max); if (szam1%3 == 0 && szam2%3 == 0 && szam3%3 == 0) { System.out.println(„Mindhárom szám osztható 3-mal!”); } else { System.out.println(„Nem osztható mind 3-mal!”); } } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
5.3.4 felAdAt public static void main(String[] args) { try { int szam1 = Consol.readInt(„Adj meg egy számot: „); int szam2 = Consol.readInt(„Adj még egy számot: „); int szam3 = Consol.readInt(„Adj még egy számot: „); int szam4 = Consol.readInt(„Adj még egy számot: „); int szam5 = Consol.readInt(„Adj még egy számot: „); if (szam3 == szam1 + szam2 && szam4 == szam2 + szam3 && szam5 == szam3 + szam4) { System.out.println(„Fibonacci sorozat!”); } else { System.out.println(„Nem Fibonacci sorozat!”); } } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 32 2010.02.23. 9:57:40
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 33
5.3.5 felAdAt public static void main(String[] args) { try { int szam1 = Consol.readInt(„Adj meg egy számot: „); int szam2 = Consol.readInt(„Adj még egy számot: „); int szam3 = Consol.readInt(„Adj még egy számot: „); int szam4 = Consol.readInt(„Adj még egy számot: „); int szam5 = Consol.readInt(„Adj még egy számot: „); float hanyados = (float)szam2 / szam1; if (szam3 / szam2 == hanyados && szam4 / szam3 == hanyados && szam5 / szam4 == hanyados) { System.out.println(„Mértani sorozat!”); } else { System.out.println(„Nem mértani sorozat!”); } } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 33 2010.02.23. 9:57:40
34 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
a tanÍtási egysÉg általános bemutatása
Cím: egy- és töBBdImeNzIós tömBök defINIáLÁSA ÉS ALKALMAZÁSA
Sorszám: 6.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok Tömb, vektor és mátrix fogalmának átismétlése. –Az egydimenziós tömb megvalósításának megismerése a Java nyelvben. –Konstans tömbök áttekintése. –Többdimenziós tömbök szintaktikájának megértése. –Változó méretű mátrixok bemutatása. –
Követelmények Tudjon tömbváltozót deklarálni, létrehozni, inicializálni. –legyen képes a tömbök elemeit egyedileg, vagy csoportosan elérni, fel- –dolgozni.Tudjon konstans tömböket definiálni. –Tudjon többdimenziós tömböt létrehozni és használni. –
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 34 2010.02.23. 9:57:40
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 35
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
egy
- és t
öbbd
imen
ziós
töm
bök
defin
iálá
sa é
s alk
alm
azás
a
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Időt
ar
tam
(p
erc)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.Eg
ydim
enzi
ós tö
mbö
k, k
ons-
tans
töm
bm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 6
.1.1
Taná
ri pr
ezen
táci
ó 6.
/01–
02.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.2.
Több
dim
enzi
ós tö
mb
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 6
.1.2
Taná
ri pr
ezen
táci
ó 6.
/03–
04.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.3.
Prog
ram
ozás
i fel
adat
ok ö
nál-
ló m
egol
dása
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
100
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 6
.2.1
–6.2
.7N
SZINFO13_TK.indd 35 2010.02.23. 9:57:40
36 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
6.2 felAdAtok megoldásA
6.2.1 felAdAt public static void main(String[] args) { try { int[] szamok = new int[10];
for (int i = 0; i < szamok.length; i++) { szamok[i] = Consol.readInt(„Adj egy számot: „); }
System.out.println(„A számok: „); for (int i = 0; i < szamok.length; i++) { System.out.print(szamok[i] + „ „); } System.out.println(); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
6.2.2 felAdAt public static void main(String[] args) { try { int db = Consol.readInt(„Hány számot szeretnél? „); float sum = 0; float[] szamok = new float[db];
for (int i = 0; i < szamok.length; i++) { szamok[i] = Consol.readFloat(„Adj egy számot: „); sum += szamok[i]; }
System.out.println(„A számok: „); for (int i = 0; i < szamok.length; i++) { System.out.print(szamok[i] + „ „); } System.out.println(); System.out.println(„A számok összege: „ + sum); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 36 2010.02.23. 9:57:40
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 37
6.2.3 felAdAt public static void main(String[] args) { try { int db = Consol.readInt(„Hány szám: „); int[] szamok = new int[db]; int sum = 0, dbparos = 0;
for (int i = 0; i < szamok.length; i++) { szamok[i] = Consol.readInt(„Adj egy számot: „); sum += szamok[i]; if (szamok[i]%2 == 0) { dbparos++; } }
System.out.println(„Átlag: „ + (float)sum/szamok.length); System.out.println(„Páros számok száma:” + dbparos); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
6.2.4 felAdAt (*) public static void main(String[] args) { try { String[] hetNapjai = {„hétfő”, „kedd”, „szerda”, „csütörtök”, „péntek”, „szombat”, „vasárnap”}; int index = Consol.readInt(„A hét napjának száma: „); System.out.println(hetNapjai[index-1]); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } catch (IndexOutOfBoundsException ex) { System.err.println(„Rossz index!”); } }
6.2.5 felAdAt public static void main(String[] args) { int[][] matrix = new int[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { matrix[i][j] = 10*i+j+1; } }
for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.print(matrix[i][j]+” „); } System.out.println(); } }
SZINFO13_TK.indd 37 2010.02.23. 9:57:40
38 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
6.2.6 felAdAt public static void main(String[] args) { int[][] matrix = new int[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { matrix[i][j] = 10*i+j+1; } }
int[][] ematrix = new int[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { ematrix[i][j] = 1; } }
int[][] summatrix = new int[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { summatrix[i][j] = matrix[i][j] + ematrix[i][j]; } }
for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.print(summatrix[i][j]+” „); } System.out.println(); } }
6.2.7 felAdAt (*) public static void main(String[] args) { int[][] matrix = new int[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { matrix[i][j] = 10*i+j+1; } }
int[][] tukormatrix = new int[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { tukormatrix[i][j] = matrix[j][9-i]; } }
for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.print(tukormatrix[i][j]+” „); } System.out.println(); } }
SZINFO13_TK.indd 38 2010.02.23. 9:57:40
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 39
a tanÍtási egysÉg általános bemutatása
Cím: típusosztályok. számosztályok. mAth ÉS STRICTMATh MATEMATIKAI OSZTÁLYOK
Sorszám: 7.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok A típusosztályok, csomagolóosztályok fogalmának megismerése; a void –kulcsszó megértése.A konstruktor és inicializálás jelentőségének megértése, a típuskonverzi- –ós lehetőségek felismerése.Az egész és lebegőpontos szám típusosztályok megismerése, azok –konstruktorainak, típuskonverziós lehetőségeinek, összehasonlítási esz-közeinek és egyéb metódusainak bemutatása.A math és strictmath osztályok legfontosabb metódusainak áttekintése –kipróbálása.
Követelmények megértse a típusosztályok fogalmát és jellemzőit. –Ismerje fel egy programban típusosztályok alkalmazásának lehetőségét, –és szükségességét.Tudja alkalmazni az egész és lebegőpontos szám típusosztályokat, tudja –őket példányosítani, konvertálni más típusokra, összehasonlítani az egyes típuspéldányokat, és ismerje a legfontosabb metódusaikat.Tudja alkalmazni a math és strictmath matematikai osztályok metódu- –sait.
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 39 2010.02.23. 9:57:40
40 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
típ
usos
ztál
yok.
szá
mos
ztál
yok.
mat
h és
str
ictm
ath
mat
emat
ikai
osz
tály
ok
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.Tí
puso
sztá
ly, c
som
agol
óosz
-tá
ly, k
onst
rukt
or é
s ini
cial
izá-
lás,
típus
konv
erzi
ó
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 7
.1Ta
nári
prez
entá
ció
7./0
1–02
.N
2.N
umer
ikus
kon
stan
sok,
egé
sz
szám
oszt
ályo
k ko
nstr
ukto
rai,
típus
konv
erzi
ó, ö
ssze
haso
n-lít
ás
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 7
.2.1
-7.2
.4Ta
nári
prez
entá
ció
7./0
3–06
.N
3.Va
lós s
zám
osz
tály
ok
kons
truk
tora
i, típ
usko
nver
zió,
eg
yéb
met
ódus
ok
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 7
.2.5
-7.2
.7Ta
nári
prez
entá
ció
7./0
7–08
.N
4.m
ath
és s
tric
tmat
h os
ztá-
lyok
kon
stan
sai,
font
osab
b m
etód
usai
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
25
Taná
ri el
őadá
sPr
ezen
táci
ó m
egte
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 7
.3Ta
nári
prez
entá
ció
7./0
9–10
.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
mat
emat
ikai
tá
mog
atás
a.
5.Pr
ogra
moz
ási f
elad
atok
öná
l-ló
meg
oldá
sa
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
60
Öná
lló te
vé-
keny
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 7
.4.1
–7.4
.5N
SZINFO13_TK.indd 40 2010.02.23. 9:57:41
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 41
7.4 felAdAtok megoldásA
7.4.1 felAdAt public static void main(String[] args) { System.out.println(„Byte: (min)” + Byte.MIN_VALUE + „ (max)”+ Byte.MAX_VALUE); System.out.println(„Short: (min)” + Short.MIN_VALUE + „ (max)”+ Short.MAX_VALUE); System.out.println(„Integer: (min)” + Integer.MIN_VALUE + „ (max)”+ Integer.MAX_VALUE); System.out.println(„Long: (min)” + Long.MIN_VALUE + „ (max)”+ Long.MAX_VALUE); System.out.println(„Float: (min)” + Float.MIN_VALUE + „ (max)”+ Float.MAX_VALUE); System.out.println(„Double: (min)” + Double.MIN_VALUE + „ (max)”+ Double.MAX_VALUE); }
7.4.2 felAdAt public static void main(String[] args) { Double pluszvegt = new Double(Double.POSITIVE_INFINITY); Double minuszvegt = new Double(Double.NEGATIVE_INFINITY); int szam = 10;
System.out.println(„Végtelen + szám = „ + (pluszvegt+szam)); System.out.println(„-Végtelen - szám = „ + (minuszvegt-szam)); System.out.println(„Végtelen * szám = „ + (pluszvegt*szam)); System.out.println(„-Végtelen * szám = „ + (minuszvegt*szam)); System.out.println(„Végtelen * -szám = „ + (pluszvegt*-szam)); System.out.println(„-Végtelen * -szám = „ + (minuszvegt*-szam)); System.out.println(„Végtelen / szám = „ + (pluszvegt/szam)); System.out.println(„-Végtelen / szám = „ + (minuszvegt/szam)); System.out.println(„Végtelen / -szám = „ + (pluszvegt/-szam)); System.out.println(„-Végtelen / -szám = „ + (minuszvegt/-szam));
System.out.println(„Végtelen + Végtelen = „ + (pluszvegt+pluszvegt)); System.out.println(„Végtelen - Végtelen = „ + (pluszvegt-pluszvegt)); System.out.println(„-Végtelen + -Végtelen = „+(minuszvegt+minuszvegt)); System.out.println(„-Végtelen + Végtelen = „ + (minuszvegt+pluszvegt)); System.out.println(„Végtelen * Végtelen = „ + (pluszvegt*pluszvegt)); System.out.println(„-Végtelen * -Végtelen = „+(minuszvegt*minuszvegt)); System.out.println(„-Végtelen * Végtelen = „ + (minuszvegt*pluszvegt)); System.out.println(„Végtelen / Végtelen = „ + (pluszvegt/pluszvegt)); System.out.println(„-Végtelen / -Végtelen = „+(minuszvegt/minuszvegt)); System.out.println(„-Végtelen / Végtelen = „ + (minuszvegt/pluszvegt)); }
SZINFO13_TK.indd 41 2010.02.23. 9:57:41
42 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
7.4.3 felAdAt public static void main(String[] args) { try { Integer szam1 = new Integer(Consol.readInt(„Adj meg egy számot: „)); Integer szam2 = new Integer(Consol.readInt(„Adj még egy számot: „)); Integer szam3 = new Integer(Consol.readInt(„Adj még egy számot: „)); int max = szam1.intValue(); if (szam2.intValue()>max) { max = szam2.intValue(); } if (szam3.intValue() > max) { max = szam3.intValue(); } System.out.println(„Legnagyobb szám: „ + max); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
7.4.4 felAdAt public static void main(String[] args) { double rand = Math.random()*50+50; System.out.println(„Randomszám 50 és 100 között: „ + rand); }
7.4.5 felAdAt public static void main(String[] args) { try { double r = Consol.readFloat(„Kör sugara: „); double kerulet = 2*r*Math.PI; double terulet = r*r*Math.PI; System.out.println(„Kerülete: „ + kerulet); System.out.println(„Területe: „ + terulet); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 42 2010.02.23. 9:57:41
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 43
a tanÍtási egysÉg általános bemutatása
Cím: A ChArACter osztály. strINg és strINgBuffer osztályok
Sorszám: 8.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok A Character osztály alapvető metódusainak és osztályfüggvényeinek a –megismerése, kipróbálása.A string osztály különböző konstruktorainak összehasonlítása. –A string és stringbuffer osztályok összehasonlítása, legfontosabb metó- –dusaik megismerése, kipróbálása.A megismert osztályok gyakorlati alkalmazási lehetőségeinek a feltérké- –pezése.
Követelmények Tudja alkalmazni a Character osztály konstruktorát, metódusait, osztály- –függvényeit a Java programban.Tudja alkalmazni a String osztály konstruktorait, metódusait a Java prog- –ramban.Tudja alkalmazni a StringBuffer osztály konstruktorait, metódusait a Java –programban.Ismerje fel egy programban a String és StringBuffer típusosztályok alkal- –mazásának lehetőségét és szükségességét; el tudja dönteni mikor melyikre van szükség.legyen képes tájékozódni a rendelkezésre álló metódusokról a NetBeans –kódkiegészítő funkciója segítségével.
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 43 2010.02.23. 9:57:41
44 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
A C
hara
cter
osz
tály
. str
ing
és s
trin
gbuf
fer
oszt
ályo
kSo
rsz
ámté
ma
/ alté
ma
kés
zség
/ ké
pess
égId
őta
rtam
(p
erc)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.C
hara
cter
osz
tály
, ko
nstr
ukto
rok,
típu
skon
ver-
zió,
öss
zeha
sonl
ítás,
egyé
b m
etód
usok
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 8
.1Ta
nári
prez
entá
ció
8./0
1–02
-03
.
N
2.St
ring
osz
tály
, kon
stru
ktor
ok,
típus
konv
erzi
ó, ö
ssze
haso
n-lít
ás
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 8
.2.1
–8.2
.3Ta
nári
prez
entá
ció
8./0
4–08
.M
ás, t
anul
t pro
gram
ozás
i ny
elve
kben
tapa
szta
ltakk
al
össz
evet
hető
a ja
va sz
trin
g típ
usa.
3.A
Str
ing
oszt
ály
egyé
b m
etó-
dusa
i: ke
resé
s, fe
ldol
gozá
sm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 8
.2.4
Taná
ri pr
ezen
táci
ó 8.
/09–
12.
N
4.A
Str
ingB
uffe
r osz
tály
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 8
.2.5
Taná
ri pr
ezen
táci
ó 8.
/13–
16.
N
5.Pr
ogra
moz
ási f
elad
atok
öná
l-ló
meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
öne
llenő
rzés
70
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 8
.3.1
–8.3
.8N
SZINFO13_TK.indd 44 2010.02.23. 9:57:41
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 45
8.3 felAdAtok megoldásA
8.3.1 felAdAt public static void main(String[] args) { try { int db = Consol.readInt(„Hány szót szeretnél? „); String[] szavak = new String[db];
for (int i = 0; i < szavak.length; i++) { szavak[i] = Consol.readString(„Adj egy szót: „); }
int minind = 0; for (int i = 1; i < szavak.length; i++) { if (szavak[i].compareTo(szavak[minind])<0) { minind = i; } } System.out.println(„A legkisebb szó: „ + szavak[minind]); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
8.3.2 felAdAt public static void main(String[] args) { try { String szo = Consol.readString(„Adj egy mondatot: „);
int indextol = 0, db = 0; while (szo.indexOf(„kutya”,indextol)>-1) { indextol = szo.indexOf(„kutya”,indextol)+1; db++; } System.out.println(„A kutya ennyiszer szerepel „ + db); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 45 2010.02.23. 9:57:41
46 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
8.3.3 felAdAt public static void main(String[] args) { try { String szo = Consol.readString(„Adj egy szót: „); boolean palindroma = true; for (int i = 0; i < szo.length()/2 && palindroma; i++) { palindroma = (szo.charAt(i) == szo.charAt(szo.length()-i-1)); } if (palindroma) { System.out.println(„A szó palindróma!”); } else { System.out.println(„A szó nem palindróma!”); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
8.3.4 felAdAt public static void main(String[] args) { try { String szo = Consol.readString(„Adj egy mondatot: „); String ujszo = szo.replaceAll(„egy”, „kettő”);
System.out.println(ujszo); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
8.3.5 felAdAt public static void main(String[] args) { try { String szo = Consol.readString(„Adj egy szót: „); StringBuffer ujszo = new StringBuffer(szo);
for (int i = 0; i < szo.length(); i++) { char ch = szo.charAt(i); if (ch==’a’ || ch==’e’ || ch==’i’ || ch==’o’ || ch==’u’) { ujszo.setCharAt(i, Character.toUpperCase(ch)); } } System.out.println(„Cserélve: „ + ujszo);
} catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 46 2010.02.23. 9:57:41
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 47
8.3.6 felAdAt public static void main(String[] args) { try { String szo = Consol.readString(„Adj egy szót: „); StringBuffer ujszo = new StringBuffer(szo);
int dbtorolt = 0; for (int i = 0; i < szo.length(); i++) { char ch = szo.charAt(i); if (Character.isDigit(szo.charAt(i))) { ujszo.deleteCharAt(i-dbtorolt); dbtorolt++; } } System.out.println(„Számok nélkül: „ + ujszo); } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 47 2010.02.23. 9:57:41
48 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
8.3.7 felAdAt (*) public static void main(String[] args) { if (args.length == 1) { int y, hol = 0, x = Integer.parseInt(args[0]); String szam = „”; if (x>=1 && x<=999) { while (hol<3) { if (x>=100) { y = x/100; x -= y*100; hol = 1; } else if (x>=10) { y = x/10; x -= y*10; hol = 2; } else { y = x; hol = 3; }
switch (y) { case 1: if ((hol==2) && (x>0)){ szam += „tizen”; } else if (hol==2) { szam += „tíz”; } else { szam += „egy”; } break; case 2: if ((hol==2) && (x>0)){ szam += „huszon”; } else if (hol==2) { szam += „húsz”; } else { szam += „kettő”; } break; case 3: if (hol==2) { szam += „harminc”; } else { szam += „három”; } break; case 4: if (hol==2) { szam += „negyven”; } else {
SZINFO13_TK.indd 48 2010.02.23. 9:57:41
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 49
szam += „négy”; } break; case 5: if (hol==2) { szam += „ötven”; } else { szam += „öt”; } break; case 6: if (hol==2) { szam += „hatvan”; } else { szam += „hat”; } break; case 7: if (hol==2) { szam += „hetven”; } else { szam += „hét”; } break; case 8: if (hol==2) { szam += „nyolcvan”; } else { szam += „nyolc”; } break; case 9: if (hol==2) { szam += „kilencven”; } else { szam += „kilenc”; } break; } //switch if (hol==1) { szam += „száz”; } } //while System.out.println(„Szám betűvel: „ + szam); } else { System.err.println(„1 és 999 közötti számot adj meg!”); } } else { System.err.println(„Egy paramétert adj meg!”); } }
SZINFO13_TK.indd 49 2010.02.23. 9:57:41
50 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
a tanÍtási egysÉg általános bemutatása
Cím: osztályok, oBjektumok defINIálásA és AlkAlmAzásA. sAját kIvételosztály
Sorszám: 9.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok Az osztály, tulajdonság és metódus, konstruktor létrehozásának megis- –merése, példányosítás bemutatása.A láthatósági módosítók ismertetése, metódusok túlterhelésének bemuta- –tása.Osztályszintű tagok ismertetése. –
Követelmények Ismerje fel egy java programban az OOP alapvető elemeit és tudja értel- –mezni azokat.Tudjon osztályt, abban tulajdonságokat és metódusokat definiálni. –Tudjon a definiált osztályokból példányokat létrehozni, a létrehozott pél- –dány mezőit, illetve metódusait felhasználni.Értse meg a láthatósági módosítók jelentőségét és alkalmazását. –Tudjon getter és setter metódusokat létrehozni, értse ezek alkalmazását. –Tudjon az osztályokban konstruktort definiálni. –Tudja azonosítani és alkalmazni az azonos nevű, de különböző szignatú- –rájú metódusokat; maga is tudjon metódusokat túlterhelni.Értse a java főprogram felépítését. –
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 50 2010.02.23. 9:57:41
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 51
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
kiv
étel
keze
lés.
elem
i inp
ut a
Con
sol o
sztá
ly se
gíts
égév
el
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.O
sztá
lyok
defi
niál
ása,
pél
dá-
nyos
ítás;
void
kul
cssz
óm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 9
.1.1
Taná
ri pr
ezen
táci
ó 9.
/01.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
osz
tály
-ke
zelé
se.
2.Tu
lajd
onsá
gok
és m
etód
usok
lá
that
óság
a; g
ette
r és s
ette
r m
etód
usok
; thi
s és r
etur
n;
met
ódus
ok tú
lterh
elés
e
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 9
.1.2
Taná
ri pr
ezen
táci
ó 9.
/02–
04.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
hoz
záfé
r-he
tősé
g-ke
zelé
se.
3.K
onst
rukt
or,
Osz
tály
szin
tű ta
gok
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 9
.1.3-
10.1.
4Ta
nári
prez
entá
ció
9./0
5–06
.M
ás, t
anul
t pro
gram
ozás
i ny
elve
kben
tapa
szta
ltakk
al
össz
evet
hető
a ja
va sz
inta
k-tik
ája.
4.A
java
főpr
ogra
mm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
5 Ta
nári
előa
dás
Prez
entá
ció
meg
-te
kint
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 9
.1.9
Taná
ri pr
ezen
táci
ó 9.
/07.
N
5.O
sztá
lyok
kés
zíté
se
Net
Bea
nsbe
nm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eV
ideó
m
egeb
szél
ése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Taná
ri pr
ezen
táci
ó 9.
/08.
Vid
eó: S
ZIN
FO13
_VID
_09_
01N
6.Pr
ogra
moz
ási f
elad
at m
egol
-dá
sa p
árba
nPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
Koo
perá
ció
Csa
patm
unka
Meg
besz
élés
, érv
elés
40
Páro
s pro
gram
o-zá
sÖ
nálló
mun
kaPá
ros m
unka
Tanu
lói j
egyz
et 9
.3.1
N
7.Pr
ogra
moz
ási f
elad
at ö
nálló
m
egol
dása
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
30
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 9
.3.2
N
SZINFO13_TK.indd 51 2010.02.23. 9:57:42
52 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
9.3 felAdAtok megoldásA 9.3.1 felAdAt
tanulo.java
public class Tanulo { private String nev; private int szuletesiEv; private int evfolyam; private String osztaly; private int[] angolJegyek; private int feleviAngol;
public Tanulo(String nev, int szuletesiEv) { this.nev = nev; this.szuletesiEv = szuletesiEv; }
public Tanulo(String nev, int szuletesiEv, int evfolyam, String osztaly) { this.nev = nev; this.szuletesiEv = szuletesiEv; this.evfolyam = evfolyam; this.osztaly = osztaly; }
public int[] getAngolJegyek() { return angolJegyek; } public void setAngolJegyek(int[] angolJegyek) { this.angolJegyek = angolJegyek; } public int getEvfolyam() { return evfolyam; } public void setEvfolyam(int evfolyam) { this.evfolyam = evfolyam; } public int getFeleviAngol() { return feleviAngol; } public void setFeleviAngol(int feleviAngol) { this.feleviAngol = feleviAngol; } public String getOsztaly() { return osztaly; } public void setOsztaly(String osztaly) { this.osztaly = osztaly; }
public void kiir() { System.out.println(„Név: „ + this.nev); System.out.println(„Születési év: „ + this.szuletesiEv); System.out.println(„Osztály:” + this.evfolyam +”.”+ this.evfolyam);
SZINFO13_TK.indd 52 2010.02.23. 9:57:42
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 53
System.out.print(„Angol jegyek: „); for (int i = 0; i < angolJegyek.length; i++) { System.out.println(angolJegyek[i]); } System.out.println(); System.out.println(„Félévi angol: „ + this.feleviAngol); }
public void kiirAngol() { System.out.println(„Név: „ + this.nev); System.out.println(„Félévi angol: „ + this.feleviAngol); }} public static void main(String[] args) { try { int dbtanulo = Consol.readInt(„Hány tanuló lesz? „); Tanulo[] tanulok = new Tanulo[dbtanulo];
for (int i = 0; i < tanulok.length; i++) { String nev = Consol.readString(i+”. tanuló neve: „); int szuletesiEv = Consol.readInt(„ születési éve: „); int evfolyam = Consol.readInt(„ évfolyama: „); String osztaly = Consol.readString(„ osztály: „); int[] angolJegy = new int[3]; angolJegy[0] = Consol.readInt(„angol jegy 1: „); angolJegy[1] = Consol.readInt(„angol jegy 2: „); angolJegy[2] = Consol.readInt(„angol jegy 3: „);
tanulok[i] = new Tanulo(nev, szuletesiEv, evfolyam, osztaly); tanulok[i].setAngolJegyek(angolJegy); int sumjegyek = 0; for (int j = 0; j < angolJegy.length; j++) { sumjegyek += angolJegy[j]; } float atlag = (float)sumjegyek/3; int feleviAngol = 1; if(atlag>=4.5){ feleviAngol = 5; } else if(atlag>=3.6) { feleviAngol = 4; } else if(atlag>=2.7) { feleviAngol = 3; } else if(atlag>=1.8) { feleviAngol = 2; } tanulok[i].setFeleviAngol(feleviAngol); } System.out.println(); for (int i = 0; i < tanulok.length; i++) { tanulok[i].kiirAngol(); } } catch (IOException ex) { System.err.println(„Hiba történt olvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Nem számot adtál!”); } }
SZINFO13_TK.indd 53 2010.02.23. 9:57:42
54 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
9.3.2 felAdAtpublic class Sikidom { private static final double PI = Math.PI; public static float getHaromszogKerulet(float a, float b, float c) { return a+b+c; } public static float getHaromszogTerulet(float a, float ma) { return a*ma; } public static double getKorKerulet(float r) { return 2*r*this.PI; } public static double getKorTerulet(float r) { return r*r*this.PI; } public static float getTeglapKerulet(float a, float b) { return 2*(a+b); } public static float getTeglapTerulet(float a, float b) { return a*b; } public static float getNegyzetKerulet(float a) { return 4*a; } public static float getNegyzetTerulet(float a) { return a*a; } public static float getParalelogrammaKerulet(float a, float b) { return 2*(a+b); } public static float getParalelogrammaTerulet(float a, float ma) { return a*ma; } public static float getDeltoidKerulet(float a, float b) { return 2*(a+b); } public static float getDeltoidTerulet(float e, float f) { return (e*f)/2; }}
SZINFO13_TK.indd 54 2010.02.23. 9:57:42
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 55
a tanÍtási egysÉg általános bemutatása
Cím: öröklődés. sAját kIvételosztálySorszám: 10.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok öröklődés bemutatása, statikus és dinamikus típus ismertetése, absztrakt –és végleges osztályok megismerése.saját kivételosztály definiálásának bemutatása. –
Követelmények legyen képes osztályokat egymásból származtatni, a megfelelő osztály- –hierarchiát implementálni.Értse meg a statikus és dinamikus típus közötti különbséget, az absztrakt –és végleges osztályok és metódusok fogalmát.Tudjon saját kivételosztályt létrehozni. –Képes legyen olyan metódusokat készíteni, melyek kivételt dobnak. –
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 55 2010.02.23. 9:57:42
56 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
ÉG –
TÉM
AK
ÖR
CÍM
E: ö
rökl
ődés
. saj
át k
ivét
elos
ztál
y
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.ö
rökl
ődés
, pro
tect
ed, t
his é
s su
per
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
0.1.1
Taná
ri pr
ezen
táci
ó 10
./01–
03.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.2.
Stat
ikus
és d
inam
ikus
típu
sm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
0.1.
2Ta
nári
prez
entá
ció
10./0
4.M
ás, t
anul
t pro
gram
ozás
i ny
elve
kben
tapa
szta
ltakk
al
össz
evet
hető
a ja
va sz
inta
k-tik
ája.
3.m
etód
usok
felü
ldefi
niál
ása,
ab
sztr
akt é
s vég
lege
s osz
tá-
lyok
és m
etód
usok
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
0.1.
3-10
.1.4
Taná
ri pr
ezen
táci
ó 10
./05–
06.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
szin
tak-
tikáj
a.4.
Sajá
t kiv
étel
oszt
ály
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
0.2
Taná
ri pr
ezen
táci
ó 10
./07–
08.
N
5.ö
rökl
ődés
t im
plem
entá
ló
péld
am
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
10
Taná
ri el
őadá
sV
ideó
meg
teki
n-té
seM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Taná
ri pr
ezen
táci
ó 10
./09.
Vid
eó: S
ZIN
FO13
_VID
_10_
01N
6.Pr
ogra
moz
ási f
elad
atok
ön
álló
meg
oldá
sa k
oráb
ban
elké
szíte
tt pr
ogra
meg
ység
új
rafe
lhas
znál
ásáv
al
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
75
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
0.3.
1N
SZINFO13_TK.indd 56 2010.02.23. 9:57:42
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 57
9.3 felAdAtok megoldásA
9.3.1 felAdAt
sikidom.javapublic abstract class Sikidom { protected float ker, ter;
public abstract void keruletSzamol(); public abstract void teruletSzamol(); public void adatKiir() { System.out.println(„Kerület: „ + ker); System.out.println(„Terület: „ + ter); System.out.println(); }}
Negyszog.javapublic abstract class Negyszog extends Sikidom { protected float a, b;
public Negyszog(float a, float b) { this.a = a; this.b = b; }
public void keruletSzamol() { ker = SikidomTerKer.getTeglapKerulet(a, b); }
public abstract void teruletSzamol();
public void adatKiir() { System.out.println(„Oldalak/ „ +”a: „+ a +”b: „+ b); super.adatKiir(); }}
teglalap.javapublic class Teglalap extends Negyszog{ public Teglalap(float a, float b) { super(a, b); }
public void teruletSzamol(){ ter = SikidomTerKer.getTeglapTerulet(a, b); }
public void adatKiir() { System.out.println(„-------TÉGLALAP-------”); super.adatKiir(); }}
SZINFO13_TK.indd 57 2010.02.23. 9:57:42
58 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
deltoid.javapublic class Deltoid extends Negyszog { private float e, f;
public Deltoid(float a, float b, float e, float f) { super(a, b); this.e = e; this.f = f; }
public void teruletSzamol(){ ter = SikidomTerKer.getDeltoidTerulet(e, f); }
public void adatKiir() { System.out.println(„-----DELTOID------”); System.out.println(„Átlók/ „ +”e: „+ e +”f: „+ f); super.adatKiir(); }}
paralelogramma.javapublic class Paralelogramma extends Negyszog { private float ma;
public Paralelogramma(float a, float b, float ma) { super(a, b); this.ma = ma; }
public void teruletSzamol(){ ter = SikidomTerKer.getParalelogrammaTerulet(a, ma); }
public void adatKiir() { System.out.println(„-----PARALELOGRAMMA------”); System.out.println(„Magasság: „ + ma); super.adatKiir(); }}
SZINFO13_TK.indd 58 2010.02.23. 9:57:42
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 59
haromszog.javapublic class Haromszog extends Sikidom { private float a, b, c, ma;
public Haromszog(float a, float b, float c, float ma){ this.a = a; this.b = b; this.c = c; this.ma = ma; }
public void keruletSzamol() { ker = SikidomTerKer.getHaromszogKerulet(a, b, c); }
public void teruletSzamol() { ter = SikidomTerKer.getHaromszogTerulet(a, ma); }
public void adatKiir() { System.out.println(„-----HÁROMSZÖG------”); System.out.println(„Oldalak/ „ +”a: „+ a +”b: „+ b +”c: „+ c); System.out.println(„a oldalhoz tartozó magasság” + ma); super.adatKiir(); }}
kor.javapublic class Kor extends Sikidom{ private float r;
public Kor(float r) { this.r = r; }
public void keruletSzamol() { ker = (float)SikidomTerKer.getKorKerulet(r); }
public void teruletSzamol() { ter = (float)SikidomTerKer.getKorTerulet(r); }
public void adatKiir() { System.out.println(„-----KÖR------”); System.out.println(„Sugár: „ +r); super.adatKiir(); }}
SZINFO13_TK.indd 59 2010.02.23. 9:57:42
60 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
főprogram public static void main(String[] args) { Teglalap t = new Teglalap(5, 7); t.keruletSzamol(); t.teruletSzamol(); t.adatKiir();
Kor r = new Kor(2); r.keruletSzamol(); r.teruletSzamol(); r.adatKiir(); ... }
SZINFO13_TK.indd 60 2010.02.23. 9:57:42
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 61
a tanÍtási egysÉg általános bemutatása
Cím: CsAtorNA fogAlmA és hAszNálAtA. A CoNsol osztály. fájlkezelés AlApjAI
Sorszám: 11.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok A csatorna fogalmának ismertetése, legfontosabb típusainak bemutatása. –A négy alapvető csatornaosztály megismerése, azok legfontosabb metó- –dusainak, illetve a belőle származtatott, gyakran használt csatornaosztá-lyok áttekintése.A szabványos kimenetre írás, onnan történő olvasás és a csatorna kapcso- –latának elmagyarázása.A Consol osztály tartalmának bemutatása. –A szöveges és bináris fájlok alapvető feldolgozásának ismertetése. –
Követelmények Értse meg a csatorna fogalmát, jelentőségét. –Értse a kimeneti és bemeneti; a karakteres és bináris csatornák közötti –különbséget.Ismerje a Reader, Writer, InputStream és OutputStream csatornaosztályok –legfontosabb metódusait és a belőle származtatott, gyakran használt csa-tornaosztályokat.Értse a képernyőre írás és onnan olvasás, illetve a csatornák közötti kap- –csolatot.Értse a Consol osztály tartalmát. –legyen képes a Consol osztály nélkül tetszőleges típusú adatot beolvasni –a képernyőről.Értse a szöveges és bináris fájlok közötti különbséget, tudja a feldolgozá- –suknál használt csatornaosztályok alkalmazását.legyen képes egyszerű szöveges és bináris fájlok létrehozására és feldol- –gozására.
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Projektor, tanári számítógépVetítővászonInternet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 61 2010.02.23. 9:57:42
62 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
ÉG –
TÉM
AK
ÖR
CÍM
E: C
sato
rna
foga
lma
és h
aszn
álat
a. A
Con
sol o
sztá
ly. f
ájlk
ezel
és a
lapj
ai
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.C
sato
rna
foga
lma,
ala
pvet
ő cs
ator
naos
ztál
yok
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
10
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
1.1.1
–11.1
.2Ta
nári
prez
entá
ció
11./0
1.N
2.R
eade
r, W
riter
, Inp
utSt
ream
és
Out
putS
tream
osz
tály
okm
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
25
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
1.1.3
–11.1
.6Ta
nári
prez
entá
ció
11./0
2–05
.N
3.Sz
abvá
nyos
kim
enet
és
bem
enet
A C
onso
l osz
tály
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
15
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
1.1.7
Taná
ri pr
ezen
táci
ó 11
./06–
07.
Más
, tan
ult p
rogr
amoz
á-si
nye
lvek
ben
meg
ism
ert
szab
vány
os k
i- és
bem
enet
ke
zelé
séve
l öss
zeve
thet
ő a
Java
meg
oldá
sa4.
Fájlk
ezel
és, s
zöve
ges é
s bin
á-ris
fájlo
k ke
zelé
sem
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
20
Taná
ri el
őadá
sPr
ezen
táci
ó m
eg-
teki
ntés
eM
egbe
szél
és
Fron
tális
osz
-tá
lym
unka
Tanu
lói j
egyz
et 1
1.2
Taná
ri pr
ezen
táci
ó 11
./08–
11.
Más
, tan
ult p
rogr
amoz
ási
nyel
vekb
en ta
pasz
talta
kkal
ös
szev
ethe
tő a
java
fájlk
eze-
lése
5.JD
K o
sztá
lyok
dok
umen
tá-
ciój
am
egfig
yelé
sA
bszt
rakc
ióPr
ogra
mkó
d an
alíz
ise
Szin
takt
ika
köve
tése
5 Ta
nári
előa
dás
Vid
eó m
egte
kin-
tése
Meg
besz
élés
Fron
tális
osz
-tá
lym
unka
Taná
ri pr
ezen
táci
ó 11
./12.
Vid
eó: S
ZIN
FO13
_VID
_11_
01M
ás, t
anul
t pro
gram
ozás
i ny
elve
kben
tapa
szta
ltakk
al
össz
evet
hető
a ja
va fá
jlkez
e-lé
se6.
Prog
ram
ozás
i fel
adat
ok ö
nál-
ló m
egol
dása
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
60
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
1.3.
1–11
.3.5
N
SZINFO13_TK.indd 62 2010.02.23. 9:57:43
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 63
11.3 felAdAtok megoldásA
11.3.1 felAdAt
datumformatumexception.javapublic class DatumFormatumException extends Exception { public DatumFormatumException(String message) { super(message); }}
SZINFO13_TK.indd 63 2010.02.23. 9:57:43
64 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
datum.javapublic class Datum { private static int ev, ho, nap;
public static int getEv() { return ev; }
public static int getHo() { return ho; }
public static int getNap() { return nap; }
public static void datumBeolvas() throws DatumFormatumException { try { BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); System.out.print(„Add meg az évet: „); ev = Integer.parseInt(r.readLine()); if (ev<1900 || ev>2100) { throw new DatumFormatumException(„Rossz évszám!”); } System.out.print(„Add meg a hónapot: „); ho = Integer.parseInt(r.readLine()); if (ho<1 || ho>12) { throw new DatumFormatumException(„Rossz hónap!”); } System.out.print(„Add meg a napot: „); nap = Integer.parseInt(r.readLine()); if (nap<1 || nap>31 || (ho==2 && nap>29) || (ho==4 && nap>30) || (ho==6 && nap>30) || (ho==9 && nap>30) || (ho==11 && nap>30)) { throw new DatumFormatumException(„Rossz nap!”); } } catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Ez nem szám!”); } }
public static String getDatum() { return Integer.toString(ev)+”.”+ Integer.toString(ho)+”.”+ Integer.toString(nap)+”.”; }}
SZINFO13_TK.indd 64 2010.02.23. 9:57:43
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 65
public static void main(String[] args) { try { Datum.datumBeolvas(); System.out.println(Datum.getDatum()); } catch (DatumFormatumException ex) { System.err.println(ex.getMessage()); } }
11.3.2 felAdAt
makestringfile.javapublic class MakeStringFile { public static void makeFile() { try { BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); System.out.print(„Hány szó lesz? „); int db = Integer.parseInt(r.readLine()); System.out.print(„Fájl neve? „); String fajlnev = r.readLine();
PrintWriter fajl = new PrintWriter(new FileWriter(fajlnev));
for (int i = 0; i < db; i++) { System.out.print(„Add meg a szót: „); String szo = r.readLine(); fajl.println(szo); }
fajl.close(); } catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Ez nem szám!”); } }}
public static void main(String[] args) { MakeStringFile.makeFile(); }
SZINFO13_TK.indd 65 2010.02.23. 9:57:43
66 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
11.3.3 felAdAt
makefloatfile.javapublic class MakeFloatFile { public static void makeFile() { try { BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); System.out.print(„Hány szám lesz? „); int db = Integer.parseInt(r.readLine()); System.out.print(„Fájl neve? „); String fajlnev = r.readLine();
DataOutputStream fajl = new DataOutputStream(new FileOutputStream(fajlnev));
for (int i = 0; i < db; i++) { System.out.print(„Add meg a szót: „); float szam = Float.parseFloat(r.readLine()); fajl.writeFloat(szam); }
fajl.close(); } catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Ez nem szám!”); } }
}
public static void main(String[] args) { MakeFloatFile.makeFile(); }
SZINFO13_TK.indd 66 2010.02.23. 9:57:43
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 67
11.3.4 felAdAt
makerandomfile.javapublic class MakeRandomFile { public static void makeFile(int dbszam, String fajlnev, int tol, int ig) { try { DataOutputStream fajl = new DataOutputStream(new FileOutputStream(fajlnev));
for (int i = 0; i < dbszam; i++) { int szam = (int)(Math.random()*(ig-tol)+tol); fajl.writeFloat(szam); }
fajl.close(); } catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Ez nem szám!”); } }}
public static void main(String[] args) { MakeRandomFile.makeFile(); }
11.3.5 felAdAt public static void main(String[] args) { try { String forras = „szoveg1.txt”; String cel = „szoveg1_bol.txt”; BufferedReader fajl1 = new BufferedReader (new FileReader(forras)); PrintWriter fajl2 = new PrintWriter(new FileWriter(cel));
String sor = fajl1.readLine(); while (sor != null) { fajl2.println(sor); sor = fajl1.readLine(); } fajl1.close(); fajl2.close(); } catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } }
SZINFO13_TK.indd 67 2010.02.23. 9:57:43
68 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
a tanÍtási egysÉg általános bemutatása
Cím: dátum és Időkezelés. dAte, CAleNdAr ÉS GREGORIANCALENDAR, TIMEZONE OSZTÁLYOK ALKALMAZÁSA
Sorszám: 12.
Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok A dátum- és időkezelés legfontosabb fogalmainak bevezetése. –A Date osztály bemutatása. –A Calendar osztály, legfontosabb konstansainak és műveleteinek ismerte- –tése, alkalmazásának bemutatása.A gregorianCalendar osztály fontos műveleteinek ismertetése, alkalma- –zásának bemutatása.A TimeZone osztály egy alkalmazásának bemutatása. –
Követelmények Értse meg a dátum- és időkezelés alapfogalmait, benne rejlő kihívásokat. –Ismerje a Date osztályt. –Ismerje a Calendar osztályt, annak fontos konstansait és műveleteit. –Tudja alkalmazni a Calendar osztályt dátum- és időkezeléshez. –Ismerje a gregorianCalendar osztályt és fontos műveleteit. –Tudja alkalmazni a gregorianCalendar osztályt programjai írása során. –Tudjon dátumot megfelelően megjeleníteni a képernyőn. –legyne képes dátumok manipulására, tetszőleges naptárral kapcsolatos –problémára találjon megoldást.Ismerje a TimeZone osztályt. –legyen képes adott időpont különböző időzónabeli megfelelőjének meg- –határozására.
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Internet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 68 2010.02.23. 9:57:43
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 69
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
ÉG –
TÉM
AK
ÖR
CÍM
E: d
átum
és i
dőke
zelé
s. d
ate,
Cal
enda
r és
gre
gori
anC
alen
dar,
tim
ezon
e os
ztál
yok
alka
lmaz
ása
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.D
átum
- és i
dőke
zelé
s ala
pfo-
galm
aiD
ate
és C
alen
dar o
sztá
lyg
rego
rianC
alen
dar o
sztá
lyTi
meZ
one
oszt
ály
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
50
Öná
lló fe
ldol
gozá
sÖ
nálló
mun
kaTa
nuló
i jeg
yzet
12.
1N
2.Pr
ogra
moz
ási f
elad
atok
ön
álló
meg
oldá
sa k
oráb
ban
elké
szíte
tt pr
ogra
meg
ység
ek
kibő
víté
séve
l
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
20
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
2.2.
1N
3.Pr
ogra
moz
ási f
elad
atok
öná
l-ló
meg
oldá
saPr
ogra
mkó
d írá
saTe
szte
lés
Tanu
ltak
alka
lmaz
ása
öne
llenő
rzés
65
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
2.2.
2–12
.2.4
N
SZINFO13_TK.indd 69 2010.02.23. 9:57:43
70 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
12.2 felAdAtok megoldásA 12.2.1 felAdAt
datum.javapublic class Datum { private static int ev, ho, nap, ora, perc; public static int getEv() { return ev; } public static int getHo() { return ho; } public static int getNap() { return nap; } public static int getOra() { return ora; } public static int getPerc() { return perc; }
public static void datumBeolvas() throws DatumFormatumException { try { BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); System.out.print(„Add meg az évet: „); ev = Integer.parseInt(r.readLine()); if (ev<-1000 || ev>2100) { throw new DatumFormatumException(„Rossz évszám!”); } System.out.print(„Add meg a hónapot: „); ho = Integer.parseInt(r.readLine()); if (ho<1 || ho>12) { throw new DatumFormatumException(„Rossz hónap!”); } System.out.print(„Add meg a napot: „); nap = Integer.parseInt(r.readLine()); if (nap<1 || nap>31 || (ho==2 && nap>29) || (ho==4 && nap>30) || (ho==6 && nap>30) || (ho==9 && nap>30) || (ho==11 && nap>30)) { throw new DatumFormatumException(„Rossz nap!”); } System.out.print(„Add meg az órát: „); ora = Integer.parseInt(r.readLine()); if (ora<0 || ora>24) { throw new DatumFormatumException(„Rossz óra!”); } System.out.print(„Add meg a percet: „); perc = Integer.parseInt(r.readLine()); if (perc<0 || perc>59) { throw new DatumFormatumException(„Rossz perc!”); }
SZINFO13_TK.indd 70 2010.02.23. 9:57:43
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 71
} catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Ez nem szám!”); } }
public static String getDatum() { return Integer.toString(ev)+”.”+ Integer.toString(ho)+”.”+ Integer.toString(nap)+”.”; }
public static void datumKiir(Calendar c) { if(c.get(Calendar.ERA) == 0) { System.out.print(„i.e. „); } else { System.out.print(„i.sz. „); } System.out.print(c.get(Calendar.YEAR)+”. „); switch (c.get(Calendar.MONTH)+1) { case 1: System.out.print(„január „); break; case 2: System.out.print(„február „); break; case 3: System.out.print(„március „); break; case 4: System.out.print(„április „); break; case 5: System.out.print(„május „); break; case 6: System.out.print(„június „); break; case 7: System.out.print(„július „); break; case 8: System.out.print(„augusztus „); break; case 9: System.out.print(„szeptember „); break; case 10: System.out.print(„október „); break; case 11: System.out.print(„november „); break; case 12: System.out.print(„december „); break; } System.out.print(c.get(Calendar.DAY_OF_MONTH)+”. „);
switch (c.get(Calendar.DAY_OF_WEEK)) { case 1: System.out.print(„(hétfő) „); break; case 2: System.out.print(„(kedd) „); break; case 3: System.out.print(„(szerda) „); break; case 4: System.out.print(„(csütörtök) „); break; case 5: System.out.print(„(péntek) „);
SZINFO13_TK.indd 71 2010.02.23. 9:57:43
72 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
break; case 6: System.out.print(„(szombat) „); break; case 7: System.out.print(„(vasárnap) „); break; }
System.out.print(c.get(Calendar.HOUR_OF_DAY)+”:”); System.out.println(c.get(Calendar.MINUTE)); }}
public static void main(String[] args) { try { Datum.datumBeolvas(); Calendar dat = new GregorianCalendar(Datum.getEv(), Datum.getHo(), Datum.getNap(), Datum.getOra(), Datum.getPerc()); Datum.datumKiir(dat); } catch (DatumFormatumException ex) { System.err.println(ex.getMessage()); } }
12.2.2 felAdAt public static void main(String[] args) { try { Datum.datumBeolvas(); GregorianCalendar dat = new GregorianCalendar(Datum.getEv(), Datum.getHo(), Datum.getNap(), Datum.getOra(), Datum.getPerc()); int nap = dat.get(Calendar.DAY_OF_WEEK); switch (nap) { case 1: System.out.println(„(hétfő) „); break; case 2: System.out.println(„(kedd) „); break; case 3: System.out.println(„(szerda) „); break; case 4: System.out.println(„(csütörtök) „); break; case 5: System.out.println(„(péntek) „); break; case 6: System.out.println(„(szombat) „); break; case 7: System.out.println(„(vasárnap) „); break; } } catch (DatumFormatumException ex) { System.err.println(ex.getMessage()); } }
SZINFO13_TK.indd 72 2010.02.23. 9:57:43
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 73
12.2.3 felAdAt public static void main(String[] args) { PrintWriter fajl = null; try { fajl = new PrintWriter(new FileWriter(„szokoevek.txt”)); GregorianCalendar dat = new GregorianCalendar(); for (int i = 1900; i <= 2010; i++) { if (dat.isLeapYear(i)) { fajl.println(Integer.toString(i)); } } fajl.close(); } catch (IOException ex) { System.err.println(ex.getMessage()); } }}
12.2.4 felAdAt public static void main(String[] args) { PrintWriter fajl = null; try { fajl = new PrintWriter(new FileWriter(„szokoevek.txt”)); for(int i = 0; i<TimeZone.getAvailableIDs().length; i++) { fajl.println(TimeZone.getAvailableIDs()[i]); } fajl.close(); } catch (IOException ex) { System.err.println(ex.getMessage()); } finally { fajl.close(); } }
SZINFO13_TK.indd 73 2010.02.23. 9:57:43
74 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
a tanÍtási egysÉg általános bemutatása
Cím: ColleCtIoN INterfész. hALMAZ, RENDEZETT hALMAZ ÉS LISTA INTERFÉSZEK
Sorszám: 13.Évfolyam: I/13.
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok Az interfész fogalmának ismertetése, a Collection framework bemutatá- –sa.A Collection interfész ismertetése, legfontosabb műveleteinek részletezé- –se.Az iterátor fogalmának bevezetése, jelentőségének felismerése. –A halmaz interfész bemutatása, alkalmazásának illusztrálása példával. –A rendezett halmaz interfész bemutatása, alkalmazásának illusztrálása –példával.A lista interfész bemutatása, alkalmazásának illusztrálása példával. –
Követelmények Értse meg az interfész fogalmát, gyakorlati hasznát. –Ismerje a Collection framework kifejezést és jelentését. –Értse a Collection interfész gyakorlati szerepét, ismerje a benne definiált –gyűjteményműveleteket.Ismerje az iterátor fogalmát, tudja alkalmazni azt. –felismerje programjai írásakor az iterátor alkalmazásának helyét és mód- –ját.Ismerje a halmaz interfészt és legfontosabb műveleteit. –Tudja alkalmazni a Hashset halmazosztályt. –Ismerje a rendezett halmaz interfészt és legfontosabb műveleteit. –Tudja alkalmazni a Treeset halmazosztályt. –Ismerje a lista interfészt és legfontosabb műveleteit. –Ismerje a listaiterátor fogalmát, tudja alkalmazni azt. –Értse az iterátor és listaiterátor közötti különbséget. –Tudja alkalmazni az Arraylist halmazosztályt. –
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Internet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 74 2010.02.23. 9:57:44
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 75
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
Col
lect
ion
inte
rfés
z. h
alm
az, r
ende
zett
hal
maz
és l
ista
inte
rfés
zek
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.In
terf
ész
foga
lma,
C
olle
ctio
n in
terf
ész
és m
űvel
etei
Iterá
tor f
ogal
ma
és a
lkal
maz
ása
Hal
maz
inte
rfés
zr
ende
zett
halm
az in
terf
ész
list
a in
terf
ész
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
75 p
erc
Öná
lló fe
ldol
gozá
sÖ
nálló
mun
kaTa
nuló
i jeg
yzet
13.
1–13
.2N
2.Pr
ogra
moz
ási f
elad
atok
öná
lló m
eg-
oldá
sa k
oráb
ban
elké
szíte
tt pr
ogra
m-
egys
ég ú
jrafe
lhas
znál
ásáv
al
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
65 p
erc
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
3.3.
1–13
.3.4
N
SZINFO13_TK.indd 75 2010.02.23. 9:57:44
76 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
13.3 felAdAtok megoldásA
13.3.1 felAdAt public static void main(String[] args) { try { BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
HashSet halmaz = new HashSet();
System.out.print(„Adj meg egy számot: „); Integer szam = new Integer(r.readLine()); while (!halmaz.contains(szam)) { halmaz.add(szam); System.out.print(„Adj meg egy számot: „); szam = new Integer(r.readLine()); } } catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } catch (NumberFormatException ex) { System.err.println(„Ez nem szám!”); } }
SZINFO13_TK.indd 76 2010.02.23. 9:57:44
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 77
13.3.2 felAdAt public static void main(String[] args) { HashSet halmaz1 = new HashSet(); HashSet halmaz2 = new HashSet();
for (int i = 0; i < 10; i++) { Integer szam = new Integer((int)(Math.random()*50+50)); halmaz1.add(szam); }
for (int i = 0; i < 5; i++) { Integer szam = new Integer((int)(Math.random()*50+50)); halmaz2.add(szam); }
System.out.print(„A: „); halmazKiir(halmaz1); System.out.print(„B: „); halmazKiir(halmaz2);
System.out.print(„AUB: „); HashSet unio = new HashSet(); unio.addAll(halmaz1); unio.addAll(halmaz2); halmazKiir(unio);
System.out.print(„AAB: „); HashSet metszet = new HashSet(); metszet.addAll(halmaz1); metszet.retainAll(halmaz2); halmazKiir(metszet);
System.out.print(„A-B: „); HashSet kul1 = new HashSet(); kul1.addAll(halmaz1); kul1.removeAll(halmaz2); halmazKiir(kul1);
System.out.print(„B-A: „); HashSet kul2 = new HashSet(); kul2.addAll(halmaz2); kul2.removeAll(halmaz1); halmazKiir(kul2); }
public static void halmazKiir(Collection c) { System.out.print(„[ „); for(Iterator it = c.iterator(); it.hasNext();) { Integer i = (Integer) it.next(); System.out.print(i + „, „); } System.out.println(„ ]”); }
SZINFO13_TK.indd 77 2010.02.23. 9:57:44
78 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
13.3.3 felAdAt public static void main(String[] args) { try { String forras = „proba.txt”; BufferedReader fajl = new BufferedReader (new FileReader(forras)); HashSet halmaz = new HashSet();
String sor = fajl.readLine(); while (sor != null) { sor = fajl.readLine(); halmaz.add(sor); } fajl.close();
System.out.println(„A különböző szavak száma: „ + halmaz.size()); } catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } }
13.3.4 felAdAt public static void main(String[] args) { try { String forras = „proba.txt”; BufferedReader fajl = new BufferedReader (new FileReader(forras)); TreeSet halmaz = new TreeSet(); ArrayList lista = new ArrayList();
String sor = fajl.readLine(); while (sor != null) { halmaz.add(sor); lista.add(sor); sor = fajl.readLine(); } fajl.close();
gyujtemenyKiir(lista); gyujtemenyKiir(halmaz);
} catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } }
public static void gyujtemenyKiir(Collection c) { System.out.print(„[ „); for(Iterator it = c.iterator(); it.hasNext();) { String szo = (String) it.next(); System.out.print(szo + „, „); } System.out.println(„ ]”); }
SZINFO13_TK.indd 78 2010.02.23. 9:57:44
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 79
a tanÍtási egysÉg általános bemutatása
Cím: hAshtáBlA, dINAmIkus vektor ÉS VEREM OSZTÁLYOK
Sorszám: 14.Évfolyam: I/13
Időtartam 135 perc A tanítási egység típusagyakorlat (3x45 perc)
Célok A hashtábla fogalmának ismertetése, a Hashtable osztály legfontosabb –műveleteinek bemutatása, alkalmazásának illusztrálása példával.A dinamikus vektor fogalmának ismertetése, a Vector osztály legfonto- –sabb műveleteinek bemutatása, alkalmazásának illusztrálása példával.A verem fogalmának ismertetése, a stack osztály legfontosabb művelete- –inek bemutatása, alkalmazásának illusztrálása példával.
Követelmények Értse meg a hashtábla fogalmát, gyakorlati hasznát. –Ismerje a Hashtable osztály legfontosabb műveleteit. –Tudja alkalmazni a hashtáblát programjai készítésekor. –Értse meg a dinamikus vektor fogalmát, gyakorlati hasznát. össze tudja –hasonlítani a statikus tömbökkel.Ismerje a Vector osztály műveleteit. –Tudja alkalmazni a dinamikus vektort programjai készítésekor. –Tudjon dinamikus vektorok segítségével kétdimenziós mátrixot konstru- –álni.Értse meg a verem fogalmát, gyakorlati hasznát. –Ismerje a stack osztály műveleteit. –Tudja alkalmazni a vermet programjai készítésekor. –
Informatikai, oktatástechnikai eszközök
számítógép (diákonként 1-1 db), hálózatba kötve, ajánlott min. 1 gHz-es pro-cesszor és 512 MB RAM. Operációs rendszer: Windows XP/Vista/7, vagy linuxszoftver: jDK 6u14 + netbeans IDe 6.7 (fejlettebb verzió is lehet)Internet-elérés
Források, javasolt tananyagok, kiadványok, internetes honlapok
Nyékyné gaizler Judit (2001): JAVA 2 – Útikalauz Programozóknak 1.3 / I. kö-tet, Budapest: ElTE TTK Hallgatói Alapítvány
http://java.sun.comhttp://www.netbeans.org
SZINFO13_TK.indd 79 2010.02.23. 9:57:44
80 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R R
ÉSZ
LET
ES
LEÍ
RÁ
SA
A T
AN
ÍTÁ
SI E
GY
SÉG
– T
ÉMA
KÖ
R C
ÍME:
has
htáb
la, d
inam
ikus
vek
tor
és v
erem
osz
tály
ok
Sor
szám
tém
a / a
ltém
ak
észs
ég /
képe
sség
Idő
tart
am
(per
c)
Mód
szer
Mun
kafo
rma
Kép
zési
any
agok
, esz
közö
ke
gyéb
java
slat
ok
1.H
asht
ábla
, Has
htab
le o
sztá
lyD
inam
ikus
vek
tor,
Vect
or o
sztá
ly
Vere
m, S
tack
osz
tály
meg
figye
lés
Abs
ztra
kció
Prog
ram
kód
anal
ízis
eSz
inta
ktik
a kö
veté
se
55
Öná
lló fe
ldol
gozá
sÖ
nálló
mun
kaTa
nuló
i jeg
yzet
14.
1N
2.Pr
ogra
moz
ási f
elad
atok
öná
lló
meg
oldá
sa k
oráb
ban
elké
szíte
tt pr
ogra
meg
ység
ek k
ibőv
ítésé
vel
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
10
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
4.2.
1N
3.Pr
ogra
moz
ási f
elad
atok
öná
lló
meg
oldá
sa
Prog
ram
kód
írása
Tesz
telé
sTa
nulta
k al
kalm
azás
aö
nelle
nőrz
és
70
Öná
lló te
véke
ny-
ség
Öná
lló m
unka
Tanu
lói j
egyz
et 1
4.2.
2–14
.2.4
N
SZINFO13_TK.indd 80 2010.02.23. 9:57:44
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 81
14.2 felAdAtok megoldásA 14.2.1 felAdAtpublic class Datum { private static int ev, ho, nap, ora, perc; private static Hashtable honapok; private static Hashtable napok;
public Datum() { honapok = new Hashtable(); honapok.put(new Integer(Calendar.JANUARY), „január”); honapok.put(new Integer(Calendar.FEBRUARY), „február”); honapok.put(new Integer(Calendar.MARCH), „március”); honapok.put(new Integer(Calendar.APRIL), „április”); honapok.put(new Integer(Calendar.MAY), „május”); honapok.put(new Integer(Calendar.JUNE), „június”); honapok.put(new Integer(Calendar.JULY), „július”); honapok.put(new Integer(Calendar.AUGUST), „augusztus”); honapok.put(new Integer(Calendar.SEPTEMBER), „szeptember”); honapok.put(new Integer(Calendar.OCTOBER), „október”); honapok.put(new Integer(Calendar.NOVEMBER), „november”); honapok.put(new Integer(Calendar.DECEMBER), „december”);
napok = new Hashtable(); napok.put(new Integer(Calendar.MONDAY), „hétfő”); napok.put(new Integer(Calendar.TUESDAY), „kedd”); napok.put(new Integer(Calendar.WEDNESDAY), „szerda”); napok.put(new Integer(Calendar.THURSDAY), „csütörtök”); napok.put(new Integer(Calendar.FRIDAY), „péntek”); napok.put(new Integer(Calendar.SATURDAY), „szombat”); napok.put(new Integer(Calendar.SUNDAY), „vasárnap”);
ev = new Integer(0); ho = new Integer(0); nap = new Integer(0); } ... public static void datumKiir(Calendar c) { if(c.get(Calendar.ERA) == 0) { System.out.print(„i.e. „); } else { System.out.print(„i.sz. „); } System.out.print(c.get(Calendar.YEAR)+”. „); int honap = c.get(Calendar.MONTH); System.out.print(honapok.get(honap)+” „); System.out.print(c.get(Calendar.DAY_OF_MONTH)+”. „); int hetnap = c.get(Calendar.DAY_OF_WEEK); System.out.print(„(„ + napok.get(hetnap)+ „) „);
System.out.print(c.get(Calendar.HOUR_OF_DAY)+”:”); System.out.println(c.get(Calendar.MINUTE)); }
SZINFO13_TK.indd 81 2010.02.23. 9:57:44
82 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
14.2.2 felAdAt public static void main(String[] args) { String szo = null;
System.out.print(„Adj meg egy szót: „); BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); try { szo = r.readLine(); } catch (IOException e) { System.err.println(e.getMessage()); }
Stack verem = new Stack(); Character ch;
for(int i=0; i<szo.length(); i++) { ch = szo.charAt(i); verem.push(ch); }
System.out.print(„Szó fordítva: „); while(!verem.isEmpty()) { System.out.print(verem.pop()); } System.out.println(); }
SZINFO13_TK.indd 82 2010.02.23. 9:57:44
PETRIK TISZK TÁMOP-2.2.3-07/1-2F-2008-0011 83
14.2.3 felAdAt public static void main(String[] args) { try { String forras = „proba.txt”; BufferedReader fajl = new BufferedReader (new FileReader(forras)); Vector v = new Vector();
String sor = fajl.readLine(); while (sor != null) { if(sor.charAt(0)==’b’) { v.add(sor); } sor = fajl.readLine(); } fajl.close();
gyujtemenyKiir(v);
} catch (IOException ex) { System.err.println(„Hiba történt beolvasáskor!”); } }
public static void gyujtemenyKiir(Collection c) { System.out.print(„[ „); for(Iterator it = c.iterator(); it.hasNext();) { String i = (String) it.next(); System.out.print(i + „, „); } System.out.println(„ ]”); }
SZINFO13_TK.indd 83 2010.02.23. 9:57:44
84 jAVA PrOgrAmOzásI nyelV neTbeAns fejleszTőKörnyezeTben • TAnárI KÉzIKönyV I/13. ÉVfOlyAm
14.2.4 felAdAt public static void main(String[] args) { String szo = null;
System.out.print(„Kifejezés: „); BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); try { szo = r.readLine(); } catch (IOException e) { System.err.println(e.getMessage()); }
Stack verem = new Stack(); boolean helyes = true; Character ch;
for(int i=0; i<szo.length() && helyes; i++) { ch = szo.charAt(i); if(ch==’(’ || ch==’[’ || ch==’{’) { verem.push(ch); } else if (ch==’)’) { Character nyito = (Character)verem.pop(); helyes = nyito.equals(new Character(’(’)); } else if (ch==’]’) { Character nyito = (Character)verem.pop(); helyes = nyito.equals(new Character(’[’)); } else if (ch==’}’) { Character nyito = (Character)verem.pop(); helyes = nyito.equals(new Character(’{’)); }
}
if (helyes) { System.out.println(„Helyes a zárójelezés!”); } else { System.out.println(„Nem helyes!”); } }
SZINFO13_TK.indd 84 2010.02.23. 9:57:44