Informatika4-2018/Gyakorlat1

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „Fel - Következő == Első projekt Eclipse-ben == # Indítsunk egy Eclipse-et. Ha otthonról dolgozt…”)
 
a
1. sor: 1. sor:
[[Informatika4-2018#Gyakorlatok|Fel]] - [[Informatika4-2018/Gyakorlat2|Következő]]
+
[[Informatika4-2018#Gyakorlat|Fel]] - [[Informatika4-2018/Gyakorlat2|Következő]]
 
== Első projekt Eclipse-ben ==
 
== Első projekt Eclipse-ben ==
  
149. sor: 149. sor:
 
Íratok függvényt, ami meghatározza a kapott két egész legnagyobb közös osztóját. Minél stílusosabban!
 
Íratok függvényt, ami meghatározza a kapott két egész legnagyobb közös osztóját. Minél stílusosabban!
  
[[Informatika4-2018#Gyakorlatok|Fel]] - [[Informatika4-2018/Gyakorlat2|Következő]]
+
[[Informatika4-2018#Gyakorlat|Fel]] - [[Informatika4-2018/Gyakorlat2|Következő]]

A lap 2018. szeptember 10., 10:50-kori változata

Fel - Következő

Tartalomjegyzék

Első projekt Eclipse-ben

  1. Indítsunk egy Eclipse-et. Ha otthonról dolgoztok, akkor innen letölthetitek. A gépteremben a 3.8-as verziót használjuk, de nem különbözik drasztikusan ettõl a 4.3 szóval nyugodtan lehet azt használni.
  2. Először kérni fogja, hogy hol legyen a workspace-ünk, akár az alapértelmezett mappát akár adjatok meg valami elérési utat. Ide rakja majd a projekteket.
  3. Most a felesleges start page-et lõjük ki, majd File -> New -> Project
  4. Itt válasszuk ki a Java projectet, majd tovább.
  5. Adjunk neki nevet, pl Gyakorlat1, majd mehet a Finish.
  6. Lehetséges, hogy rákérdez, hogy alkalmazza-e a javahoz kialakított layoutot, szerintem érdemes ezt használni, szóval Yes.


  • Most, hogy létrejött a projekt adjunk hozzá egy forrásfájlt.
  • Nyissátok le bal oldal a projektet, majd az src mappára jobb klikk -> new -> Class
  • Itt adjatok neki nevet, és mehet is. Ad közben egy warningot, hogy az alapértelmezett csomag használata nem ajánlott. Későbbiekben tanulunk a csomagokról.


  • Létrehoztuk az elsõ osztályunkat, de még üres, töltsük fel az elõadásból a main függvénnyel. Tanulságosabb szerintem, ha megpróbáljátok begépelni ahelyett, hogy bemásoljátok, csak hogy lássátok az Eclipse varázslatát.
public static void main(String[] args) {
    System.out.println("Hello World!");
}
  • Vigyázzunk, hogy az osztály maga még ottmaradjon, csak a "hasába" rakjuk bele ezt a függvényt.
  • Mentsük el a fájlt (CTRL + S), majd a zöld keretű nyíllal (amelyiknél nincs piros doboz) lefuttathatjuk a programot.
  • Ha minden jól ment akkor alul előjött a Console fül és kiírta hogy Hello World!
  • Eleinte még csak a konzolon keresztül fogunk tudni kimenetet kapni a java-tól, de ez meg fog változni a későbbiekben.

Hibajavítás

  • Az Eclipse valós időben ellenőrzi a kódunkat, így ha gépeltétek a kódot, sokszor észrevehettétek, hogy a félkész kódot aláhúzta pirossal.
  • Próbáljátok ki mi történik, ha kitörlitek a pontosvesszőt a sor végéről.


  • Bal oldalt megjelent egy piros X és aláhúzta a hiányzó részt.


  • Ok ez nem volt nagy szám, most valami érdekesebbet, írjátok be ezt a sort a kiíratás után:
i = 6;
  • A hiba itt ugye az, hogy az i változót sehol sem deklaráltuk. Szól is, de most villanykörte is van az X mellett. Ezzel jelzi, hogy van ötlete a javításra.
  • Kattintsunk most a piros X-es villanykörtére.
  • Felajánlott több megoldást is. Ezek közül többnyire az első az amit valóban szeretnénk használni. Itt is, így hát kattintsunk a Create local variable... opcióra.
  • Helyettünk megcsinálta a definíciót. És ez még tényleg semmi, ahhoz képest amilyen hibákat tud észlelni és hasonlóképpen javítani, majd meglátjuk még a későbbiekben.
  • Amúgy most is jelez, de csak warning (nem hiba), mégpedig azért, mert látja, hogy létrehozzuk a változót, de sehol nem használjuk az értékét, tehát felesleges.

Feladatok tagolása

  • Amíg úgyis csak egy osztályban dolgozunk, addig csinálhatjuk azt, hogy minden feladathoz egy új osztályt hozunk létre.
  • Mint már említettem java-ban nem gond, ha 2 main van, csak különböző osztályokban legyenek.
  • Mindig az a main fut le, amelyiknek a kódja a képernyőn látszik (amelyik ki van jelölve).
  • Futtathatunk egy specifikus osztályt is (feltéve, hogy van main-je), ha bal oldalt jobb klikkelünk rá és Run as... -> Java application
  • A késõbbiekben muszáj lesz külön projektekbe szervezni a feladatokat. De akkor már valószínűleg nem lesz több, mint 2 feladat gyakorlatonként. Így nem kell attól félni, hogy 200 projektet csinálunk.

Bemelegítő feladatok

Segéd példa: Ez az osztály az abszolút érték függvényt valósítja meg. Kiírja a -4 abszolút értékét.

public class AbszolutErtek {
	public static int abs(int egeszSzam) {
		if (egeszSzam < 0) {
			return -1 * egeszSzam;
		} else {
			return egeszSzam;
		}
	}
 
	public static void main(String[] args) {
		int kimenet = abs(-4);
		System.out.println(kimenet);
	}
}
  • Több dologra is felhívnám a figyelmet.
  • A public kulcsszó a class elõtt eddig lehet nem volt ott. Most miért van? Ne törődjetek most vele, csak azért írtam most így, hogy ha ilyet láttok ne ijedjetek meg.
  • Miért kell a public és static kulcsszó az abs függvény feje elé? Később lesz róla szó, ezen a gyakon minden függvény elé kelleni fognak.
  • A jelölési konvenciót nagyon ajánlott követni (ZH-ban, nagyháziban pontlevonás, ha nem megfelelő a jelölés).
  • Osztályok neve nagybetűvel kezdődik, majd minden egyes új szó ismét nagybetű.
  • Változónevek kisbetűvel kezdődnek, majd minden egyes új szó nagybetű.
  • Tagolásra is figyeljetek oda, Eclipse is figyel és megpróbálja szépen formázni a dokumentumaidat. Ha nagyon csúnyán néz ki, de kézzel nem szeretnétek kijavítgatni Eclipse-ben nyomjatok egy CTRL+SHIFT+F kombinációt. Ez az automata formázás.

1. Összeg

Írjunk függvényt, ami két int bemenetet kap és visszaadja az összegüket. A függvényt hívjuk meg a main-ben valamilyen bemenettel és írjuk ki az eredményt a kimenetre!

2. Szignum

Írjunk függvényt, ami egy int bemenetet kap és kiírja a kimenetre, hogy Pozitiv, ha a szám pozitív, Negativ vagy Nulla!

3. Hatványozó

Írjunk hatványozó függvényt, mely egy float és egy int bemenetet kap, alap és kitevő és visszaadja a hatványozás eredményét.

Tömbök java-ban

Ez az osztály feltölti az egeszTomb változót a 0-9-ig levő számok négyzetével.

public class Tomb {
	public static void main(String[] args) {
		int[] egeszTomb = new int[10];
		for (int i = 0; i < 10; i++) {
			egeszTomb[i] = i * i;
		}
	}
}
  • Amint látjátok a tömbök létrehozása nem igazán úgy néz ki mint C-ben, hanem úgy mint C++-ban. Később látjuk majd, hogy ez miért így van.
  • Tömb létrehozása: tipus[] valtozonev = new tipus[meret];

4. Szumma

Írjatok függvényt, ami egy float-okat tartalmazó tömböt kap és visszaadja az elemeket összegét. Fun fact: java-ban egy egeszTomb nevű tömb hosszát lekérhetjük az egeszTomb.length paranccsal. A függvény feje nézhet ki pl így:

public static float sum(float[] t)

5. Fibonacci

Írjatok osztályt, ami feltölt egy tömböt az első 10 fibonacci számmal. Segítség: első két elemét kézzel adjátok meg, többit egy for ciklussal számoljátok ki. A teljes tömböt kiíratni nem muszáj, de legalább egy elemet írjatok ki ellenőrzés céljából.

Összetettebb feladatok

6. Prímtényezők keresése

Írjatok függvényt, ami megkeresi egy szám prímtényezőit és sorban kiírja azokat. (A hiba elkerülése végett először vizsgáljuk meg, hogy nem 0-t vagy 1-et kaptunk-e.)

Nem kell bonyolultra gondolni azonnal, meg lehet oldani úgy is, hogy egyesével megpróbáljuk elosztani az adott számunkat 2-től kezdve egyesével haladva egész számokkal, amíg 1-hez nem jutunk.

Írjatok hozzá main-t is, amiben egy legalább 4 jegyű szám prímtényezőit kérjétek le.

A maradék képzés (modulo) jele java-ban is a %

7. Tömb hatványozás

Írjatok függvényt, ami egy float tömböt és egy int számot kap és a tömb minden elemét a megadott hatványra emeli. (Másoljátok ide a korábbi hatványozós függvényt, hogy azt is használhassátok.)

8. LNKO

Íratok függvényt, ami meghatározza a kapott két egész legnagyobb közös osztóját. Minél stílusosabban!

Fel - Következő

Személyes eszközök