Bevezetés a programozásba a Jáva nyelven keresztül

 Szerzõk: Paller Gábor, Páskuj Attila

Az olvasó most egy merész kísérlettel fog találkozni. Ebben a cikksorozatban megpróbálkozunk azzal, hogy egy általános reál tudással rendelkezõ olvasót beavassunk a számítógépprogramozásba és erre eszközül a Jáva nyelvet használjuk fel. A szokásos módszer az lenne, hogy a tanuló elõbb ismerje meg az algoritmikus alapokat és legalább egy funkcionális nyelvet, majd ezután vágjon bele egy olyan relatíve bonyolult rendszer megismerésébe, mint a Jáva. Ezzel a módszerrel én egyetértek, ugyanakkor az elmúlt évben sok olyan panaszt hallottam, miszerint a "belépési szint" a Jávába túl magas, a tankönyvek megértéséhez az objektumorientált programozási paradigmát már ismerni kell. Nem mindenkinek van kedve, ideje vagy lehetõsége azonban végigjárnia az alapos tanuló útját és a tapasztalat azt mutatta, hogy ilyen esetekben is jó eredmények érhetõk el megfelelõen adaptált és fókuszált tananyaggal. A kezdõ tudás ugyan nem lesz olyan mély és a tanuló algoritmikus tudása is gyengébb lesz hagyományos képzést végzetteknél, azonban gyakorlattal sok minden pótolható és igen sok programozási feladatnál nincs szükség komplex algoritmusok kifejlesztésére vagy kódolására. Természetesen a fenti, redukált cél egyben intés is a diáknak: ne gondolja, hogy azért mert végigcsinálta ezt a leckesorozatot, azonnal képzett programozó lett belõle. Az algoritmikus alapok bõvítésére a késõbbiekben nagy szükség lesz és ez az anyag csak a kezdõ lépések megtételében segít. Mindenesetre leckék szorgos végigcsinálásával megismerhetjük, hogyan kell egyszerû algoritmusokat Jáva nyelvre lekódolni és ez egy olyan alap, amin bízvást építkezhetünk tovább, ha van kedvünk vagy idõnk a késõbbiekben.

A tananyagban két sajátos módszert használunk fel. Elõször is "munkafüzet" stílusban építkezünk, tehát az új ismereteket gyakorlatokkal rögzítjük. A gyakorlatok elvégzése az anyag integráns része, elvégzésük nélkül az ismeretek megfelelõ rögzítõdése nem várható. A második fogás a "varázselemek" módszere: tekintve, hogy az olvasó nem rendelkezik az alaptudással, viszont azonnal csinálunk valami mûködõt, nem magyarázhatunk meg rögtön mindent. Az ilyen részeket "varázselemnek" nevezzük, a példaprogramokban kékkel jelöljük és az olvasótól azt várjuk, fogadja el, hogy ezek "kellenek". Remélhetõen az anyag végére semmi nem marad "kék".

Ugyancsak tudatos választás az objektum fogalmának és használatuknak a késõi bevezetése. Felfogásom szerint az objektumok nagy méretû programok és újrahasználható komponensek írásában alapvetõek, kezdõ olvasónk problémái azonban másfélék lesznek az elején. Elkövetem azt az eretnekséget tehát, hogy a tananyag elsõ részében az objektumokról szót se ejtek és a Jávát mint sima funkcionális nyelvet használom, még ha ezzel ki is hívom az objektumorientált vallás híveinek átkait.

Még egy megjegyzés: ez a tananyag azért hozzáférhetõ a Weben, hogy folyamatosan nõjön, változzon. Írása közben jöttem rá, milyen régen voltam magam is kezdõ és mennyire nem láthatók már nekem, hol vannak a nehezen érthetõ részek. Ha tehát ilyet találsz, írj azonnal egy levelet nekem és én megpróbálom a kérdéses részt világosabbá tenni.

Külön köszönettel tartozunk kolléganõinknek, akik eljátszották a kísérleti nyúl szerepét és elõször szenvedték át magukat az anyagon, annak ellenére, hogy semmi közük nem volt korábban a számítógépes programozáshoz. Véleményük, visszajelzéseik nagy segítségünkre voltak az anyag taníthatóságának javításában.



Paller Gábor, Páskuj Attila

Tartalomjegyzék

1. fejezet Elõttünk egy számítógép: hogy jön mindez a Jávához? Processzor, memória és a maradék: mindezeket programok vezérlik. Programszöveg nekünk és program a számítógépnek: a fordítóprogramok. Egy érdekes megoldás a Jávában: a virtuális gép. Elsõ Jáva programunk.
2. fejezet Fiókos szekrény szilíciumból. A számítógép mindent képes tárolni, csak mi nem felejtsük el, mit hová tettünk: a változók. Fiókméretek és adattípusok. Két egyszerû adattípus, az egész és a lebegõpontos. Néhány alapmûvelet kezdetnek.
3. fejezet Terelgetjük a számítógépet; a program futásának menete. Struktúrált programozás, építkezés Matrjoska babákból. Elágazások és logikai kifejezések. Megdolgoztatjuk a gépet: a ciklusok.
4. fejezet Megjegyzések. Írni utálunk, ezért törekszünk az újra felhasználható programrészekre. Függvények a matematikában és Jávában. Paraméterek, visszatérési értékek és változó láthatósági szabályok.
5. fejezet Matematikai függvények, a Jáva matematikai függvényei és azok használata.Egyszerû matematikai problémák programnyelvi megoldásai. Feladatok a függvények használatára.
6. fejezet További gyakorló feladatok matematikai problémák megoldására. Cimke. Többszörös elágazás. Kilépés programblokkból: break. Kilépés ciklusból: continue. 2 ismeretlenes lineáris egyenletrendszerek megoldási módszerei és azok JAVA nyelvû megvalósítása. A mátrixelmélet elemei: mátrix, determináns. A 3- és többismeretlenes egyenletrendszerek megoldási lehetõségei és JAVA nyelvû megvalósítása.
7. fejezet Fiókos szekrények garmadája, mindegyik hozzá való mamával. A Jáva alapépítõelemei, az objektumok. Objektumok deklarálása változókkal és függvényekkel, amelyeket ezek után metódusoknak fogunk hívni. Objektumok létrehozása és halála, életciklus a Jávában. A szemétgyûjtõ.
8. fejezet Újabb megvilágosodás: statikus változók és metódusok. Egyedváltozók és osztályváltozók kavalkádja. Öröklõdés és konverziók.
9. fejezet Adatok tömegesen: tömbök a Jávában. Tömbtípusok. A Jáva tömbök is csak objektumok. Objektumok és tömbök tömbje.
10. fejezet Nem csak számok vannak a világon! Dolgozzunk érdekesebb adatokkal: karakterek és azok halmazai. Karaktertípus a Jávában, a char típus. Karaktersorozatok avagy ismerkedés a String osztállyal. String és StringBuffer, a két jóbarát.
11. fejezet A Jáva osztályok is csak fájlok; Jáva osztályok elhelyezése és fellelése. További káoszteremtõ eszközök: package és import. Jó helyek a fájlrendszeren: a CLASSPATH környezeti változó.
12. fejezet Mindenki a saját hibáinak kovácsa: személyre szabott hibajelzések a Jávában. Kivételek élete és halála: throw utasítás, a throws kulcsszó valamint a try-catch blokk.
Folytatása következik


(C) 2001, Paller Gábor, Páskuj Attila. Ez a tananyag részekben vagy egészben, módosítással vagy anélkül korlátozás nélkül felhasználható non-profit célokra. Jövedelemszerzés céljából történõ felhasználásához a szerzõk elõzetes írásbeli engedélye szükséges.