java programozási nyelv netbeans€¦ · mi a különbség a java nyelv és a java platform...

84
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

Upload: others

Post on 09-Feb-2020

18 views

Category:

Documents


2 download

TRANSCRIPT

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

Sor­szá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 szerke­zete. 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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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á

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á

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é

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

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

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á

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á

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álto­ZÓ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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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

r­m

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é

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

­– T

ÉMA

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

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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

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

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

R C

ÍME:

A C

hara

cter

osz

tály

. str

ing

és s

trin

gbuf

fer

oszt

ályo

kSo

r­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.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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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

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á

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

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

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á

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

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

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

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 OSZ­TÁ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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

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á

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

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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á

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

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, kiad­vá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

R R

ÉSZ

LET

ES

LEÍ

SA

A T

AN

ÍTÁ

SI E

GY

SÉG

– T

ÉMA

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á

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

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

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