[[oktatas:programozás:java|< Java]] ====== Argumentumok ====== * **Szerző:** Sallai András * Copyright (c) 2024, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Az argumentumokról ===== A programok indításakor annak neve után argumentumokat adhatunk meg. Kétféle argumentum létezik: * kapcsolók - például --version * paraméterek - például adat.txt Példa: java App --all adat.txt Ebben a leírásban leginkább paraméterekkel foglalkozunk. ===== Az argumentumok használata ===== public class HelloWorld { public static void main(String[] args) { // Ellenőrizzük, hogy van-e elég argumentum if (args.length > 0) { System.out.println("Helló, " + args[0] + "!"); } else { System.out.println("Helló, világ!"); } } } Példafuttatások: java HelloWorld Alice Kimenet: Helló, Alice! java HelloWorld Kimenet: Helló, világ! ==== Összeadó ==== public class Osszeadas { public static void main(String[] args) { if (args.length < 2) { System.out.println("Kérlek adj meg két számot!"); return; } // Argumentumok konvertálása egész számokra int szam1 = Integer.parseInt(args[0]); int szam2 = Integer.parseInt(args[1]); int osszeg = szam1 + szam2; System.out.println("Az összeg: " + osszeg); } } Példafuttatás: java Osszeadas 5 7 Kimenet: Az összeg: 12 ==== Szöveg hossza ==== public class SzovegHossza { public static void main(String[] args) { if (args.length > 0) { String szoveg = args[0]; System.out.println("A szöveg hossza: " + szoveg.length()); } else { System.out.println("Kérlek adj meg egy szöveget!"); } } } Futtatáspélda: java SzovegHossza "Hello World" Kimenet: A szöveg hossza: 11 ==== Ismétlés ==== public class Ismetles { public static void main(String[] args) { if (args.length < 2) { System.out.println("Kérlek adj meg egy szöveget és egy darabszámot!"); return; } String szoveg = args[0]; int darab = Integer.parseInt(args[1]); for (int i = 0; i < darab; i++) { System.out.println(szoveg); } } } Példafuttatás: java Ismetles "Hello" 3 Kimenet: CopyReplit Hello Hello Hello ===== VSCode argumentum beállítása ===== Létre kell hozni egy konfigurációt: * Run > Add configuration... A következő fájl jön létre: .vscode/launch.json Vegyük fel a következő kulcsot: "args": ["adat.txt"] Így az adat.txt az állandó paraméter, ami meg van adva a program futtatásakor. Ebben a fájlban valójában két konfiguráció jön létre. A bal felső lejátszógombra kattintva a második (App nevű) hajtódik végre. ==== Konfigurációk futtatása ==== * Akciósáv > Run and Debug Az oldalsávon felül a lejátszógomb mellett válasszuk ki a kívánt konfigurációt. ===== Feladatok ===== ==== Feladat 01 ==== Készítsen egyszerű kalkulátort. Kérjen be két értéket majd egy operátort, majd végezze el a műveletet. A fogadott operátorok: +, -, *, /. Példa a hívásra: java Kalkulator 30 35 + Kimenet: Eredmény: 65 * Mentés: Kalkulator ==== Feladat 02 ==== Hozzon létre egy szövegfordítót. A program paraméterként fogadja fordítandó szöveget, majd a cél nyelvet. A cél nyelv legyen például angol és német. A program végezzen egyszerű szótár alapú fordítást. A program egyszerű szótárként működjön. Példahívás: java Fordito "reggel" angol Kimenet: morning Mentés: Fordito ==== Feladat 03 ==== Készítsen faktoriális számító programot. A program egész számot fogadjon paraméterként, majd a kimenet a faktoriális. Példahívás: java Faktorialis 5 Kimenet: 5! = 120 * Mentés: FAktorialis ==== Feladat 04 ==== Egész számokat kell összegeznie. A program fogadja egész számok sorozatát, majd adja össze azokat. Példa hívás: java Osszeg 1 2 3 4 5 Kimenet: Összeg: 15 ==== Feladat 05 ==== Karakterlánc megfordítása. A program egy szöveget fogadjon, amit kiír fordítva. Példa hívás: java Visszafordíto "fehér kocka" Kimenet: akcok réhef * Mentés: Visszafordito ==== Feladat 06 ==== Egyszerű statisztikai program. A program fogadjon egy számsort, majd írja ki az átlagot, a minimumot és a maximumot. Példahívás: java Statisztika 4 5 2 8 10 Kimenet: Átlag: 5.8 Minimum: 2 Maximum: 10 ==== Feladat 07 ==== Írjon hőmérsékletváltó programot. A program paraméterként fogadjon egy hőmérsékletértéket és a konverziót típusát. Például: Celsius-Fahrenheit. A program számítsa ki az értéket. Példahívás: HomersekletValto 32 CtoF Kimenet: 32 Celsisu = 89.6 Fahrenheit ==== Feladat 08 ==== Egy titkosító programot kell írnia. A program egy szöveget és egy eltolást fogad paraméterként. A program Caesar-titkosítással kódolja a szöveget. Példahívás: java Titkosit "Hello" 3 Kimenet: Kódolt szöveg: Khoor ==== Feladat 09 ==== Legyen egy állomány a következő tartalommal: alma körte barck Írjon programot, amely egy állomány tartalmát a képernyőre írja. Példafuttatás: java Olvas adat.txt Kimenet: alma körte barack ===== Lásd még ===== * https://picocli.info/ (2024)