[[oktatas:programozás:feladatok:speciális| < Speciális]] ====== Java nyelvhez kapcsolódó programozási feladatok ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2011, 2014, 2019, 2022 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Szekvenciális tevékenység ===== ==== Feladat 001 ==== Keresse meg a következő forráskódban a szintaktikai hibákat. public clas Program { public statik void main( String [] args) { System.ouprintln("Alma"); } } ==== Feladat 002 ==== Keresse meg a következő forráskódban a szintaktikai hibákat. public lass Program { public static void Main( string [] args) { System.ouprintln("Alma"); } } ==== Feladat 003 ==== Keresse meg a következő forráskódban a szintaktikai hibákat. import java.util.*; class Program { public static void main( string [] args) { Scanner = new Scanner(); System.out.println("Szám: "); bevitel.nextInt(); } } ==== Feladat 004 ==== Keresse meg a következő forráskódban a szintaktikai hibákat. import java.io.*; class Program { public static void main( string [] args) throws IOexception { Scanner olvaso = new Scanner(System.in); System.out.println("A következő program összead számokat nulla végjelig"); System.out.println("Használat: A program elindulás után kéri a számokat") System.out.print("Sazam: ") int a = olvaso.nextInt(); System.outprintln("Ezt írtad%d", a); } } ==== Feladat 005 ==== Keresse meg a következő forráskódban a szintaktikai hibákat. class { public static void main() { int tomb[7] = {37, 98, 23, 32, 88, 52, 88}; boolean ok = true; long sum = 0; int i = 0; while(ok) { sum = sum + tomb[i]; i++; if(!(i<7)) ok = false; } System.out.printf("Összeg: %f\n", sum); } } ==== Feladat 006 ==== class Program2 { public static main(String args[]) throw java.io.IOException { java.io.FileWriter fwriter = new java.io.FileWriter("adat.txt", true); java.io.BufferedWriter writer = new java.io.BufferedWriter(fwriter) for(i=0; i<5; i++) { writer.write("1234"); writer.write("8235"); } writer.close(); fwriter.close(); System.println("Writed"); } } ==== Feladat 007 ==== Az alábbi programban két szintaktikai hiba van. Keresse meg őket. class Program 01 { public static void main(String[] args) { int a = 3; int b = 8; int c = a * b System.out.println("Eredmeny" + c); } } Mentés: 007.txt ===== OOP ===== ==== Feladat 101 ==== A következő osztály egyetlen hibát tartalmaz. Keresse meg. class Product { String name; String itemnumber; int quantity; double price; public class Product(String name, String itemnumber, int quantity, double price) { this.name = name; this.itemnumber = itemnumber; this.quantity = quantity; this.price = price; } } ==== Feladat 102 ==== A következő osztály egyetlen hibát tartalmaz. Keresse meg. class Product { String name; String itemnumber; int quantity; double price; public Double Product(String name, String itemnumber, int quantity, double price) { this.name = name; this.itemnumber = itemnumber; this.quantity = quantity; this.price = price; } } ===== Tömbökhöz kapcsolódó feladatok ===== ==== Feladat 0801 ==== Keresse meg a hibát a következő feladatban: class Program01 { public static void main(String[] args) { Double a = {3.5, 3.7, 4.8, 5.6}; double b = {9.8, 2.7, 3.4}; System.out.println(a.length); System.out.println(b.length); } } Program01.java:5: error: illegal initializer for Double Double a = {3.5, 3.7, 4.8, 5.6}; ^ Program01.java:6: error: illegal initializer for double double b = {9.8, 2.7, 3.4}; ^ Program01.java:8: error: cannot find symbol System.out.println(a.length); ^ symbol: variable length location: variable a of type Double Program01.java:9: error: double cannot be dereferenced System.out.println(b.length); ^ 4 errors ==== Feladat 0802 ==== import java.util.ArrayList; class Program01 { public static void main(String[] args) { ArrayList lista; System.out.println("Hi"); } } Program01.java:6: error: unexpected type ArrayList lista; ^ required: reference found: int 1 error >Exit code: 1 ===== GUI feladat ===== ==== Feladat 1001 ==== Rajzoltasson két dobókockát. Figyelje MouseListener figyelővel a dobókockákon történt kattintásokat. Ha egy dobókockán egy kattintást észlelünk, az adott dobókocka generáljon új számot. Mentés: ketdobo ==== Feladat 1002 ==== Rajzoljon egy villogó kört. Mentés: villogkor ==== Feladat 1003 ==== Rajzoltassa ki egy dobókockadobás eredményét. Minden újabb egérkattintás újabb számot eredményez. Mentés: dobokockar ==== Feladat 1004 ==== Rajzoltasson úgy egy villogó kört, hogy a program továbbra is reagáljon az egérműveletekre. Mentés: villogszal ==== Feladat 1005 ==== A következő feladatban 3 szintaktikai hiba található. Keresse meg azokat és tegye fordíthatóvá. import javax.swing.JFrame; import javax.swing.JButton; import java.awt.FlowLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; class Program01 extends JFrame implements ActionListener { JButton klikkGomb; Program01() { klikkGomb = new JButton("Klikkelj ide"); klikkGomb.addActionListenner(this); add(klikkGomb); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); } public static void actionPerfomed(ActionEvent event) { setTitle("Működik"); } public static void main(String[] args) { new Program01().setVisible(true); } } ===== Hiba alapú feladatok ===== ==== Feladat 2001 ==== Keresse meg a hibákat az alábbi programban: import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JTextFiled; import javax.swing.BoxLayout; class Program01 extends JFrame { Button gomb1 = new JButton("Klikk"); JTextFiled mezo1 = new JTextFiled(40); Program01() { setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); add(mezo1); add(gomb1); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static main(String[ args) { new Program01(); } } ==== Feladat 2002 ==== Keresse meg a hibákat az alábbi programban: import javax.swing.JFrame; import javax.swing.JButton; class Program01 extend JFrame { Button gomb1 new JButton("Klikk"); Program01() { add(gomb1); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new Program01(); } } ==== Feladat 2003 ==== Keresse meg a hibákat az alábbi programban: javax.swing.JFrame; javax.swing.JButton; class Program01 extends JFrame { JButton gomb1 = new JButton("Klikk"); Program01 { add(gomb1); pack; setDefaultCloseOperation(1); setVisible(true); } public static void main(String[] args) { new Program01(); } } ==== Feladat 2004 ==== Keresse meg a hibákat az alábbi programban: import javax.swing.JFrame; import javax.swing.JButton; Program1 extends JFrame { JButton gomb1 = new JButton("Klikk"); Program01() { add(gomb1); pack(); setDefaultCloseOperation(1); setVisible(true); } pulic static void main() { new Program01(); } } ==== Feladat 2005 ==== Keresse meg a hibákat az alábbi programban: import javax.swing.JFrame; import javax.swing.JButton; class Program04 extends JFrame { JButton gomb1 new = JButton("Klikk"); Program04() { add(gomb1); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new Program04(); } } ==== Feladat 2006 ==== Keresse meg a hibákat az alábbi programban: import java.swing.JFrame; class Program01 { Program01() { pack(); setVisible(true); } public static void main(String[] args) { new Program01(); } } ==== Feladat 2007 ==== Keresse meg a hibákat az alábbi programban: import javax.swing.JFrame; import javax.swing.JButton; import java.awt.FlowLayout; class Program04 extends JFrame { JButton gomb1 new = JButton("Klikk"); JButton gomb2 new = JButton("Kilép"); Program04() { setLayout(new FlowLayout()); add(gomb1); add(gomb2); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new Program04(); } } ==== Feladat 2008 ==== Keresse meg a hibákat az alábbi programban: import javax.swing.JFrame; import javax.swing.JButton; class Program02 extends JFrame { JButton gomb1 = new JButton("Klikk"); Program02() { add(gomb1) pack() setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new Program02(); ==== Feladat 2009 ==== Keresse meg a hibákat az alábbi programban: import javax.swing.JFrame import javax.swing.JButton class Program01 extends JFrame JButton gomb1 = new JFrame("Klikk"); Program01() { add(gomb1); pak(); setDefautlCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static voi main(String[] args) { new Program02(); } } ==== Feladat 2010 ==== A következő program egy kör területét számítaná ki, de nem fordul le. Keresse meg a hibákat. import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JTextField; import javax.swing.JLabel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.FlowLayout; class Program01 extends JFrame implements Actionlistener { JLabel radiusLabel; JTextField radiusField; JButton calcButton; Program01 { initComponents(); } private void initComponents() { radiusLabel = new JLabel("Sugár"); radiusField = new JTextField(15); calcButton = new JButton("Számít"); calcButton.addActionListener(this); add(radiusLabel); add(radiusField); add(calcButton); setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); centerWindow(this); pack(); setVisible(true); } publi void actionPerforme(ActionEvent event) { String radiusStr = radiusField.getText(); double radius = Double.parseDouble(radiusStr); Double area = Math.pow(radius, 2) * Math.PI; radiusField.setText(area.toString()); radiusLabel.setText("Terület"); pack(); } private static void centerWindow(java.awt.Windows frame) { java.awt.Dimension dim = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); int x = (int) ((dim.getWidth() - frame.getWidth()) /2); int y = (int) ((dim.getHeight() - frame.getHeight() / 2); frame.setLocation(x, y); } public static void main(String[] args) { new Program01(); } } ==== Feladat 2011 ==== A következő programnak az "a" változó tartalmát kell kiírnia a következő paraméterek alapján: * 2 tizedesjegy szélesen * 24 szélesen * balra igazítva * az érték után " kg" mértékegységgel A program azonban hibás. Javítsa a programot: class Program01 { public static void main(String[] args) { double a = 214.5; System.out.printf("%.2f\n %-24s", a, " "); } } ==== Feladat 2012 ==== A következő programnak az "a" változó tartalmát kell kiírnia a következő paraméterek alapján: * 2 tizedesjegy szélesen * 24 szélesen * balra igazítva * az érték után " kg" mértékegységgel A program azonban hibás. Javítsa a programot: class Program01 { public static void main(String[] args) { double a = 214.5; System.out.printf("%214.5fkg\n", a); } } ==== Feladat 2013 ==== A következő programnak az "a" változó tartalmát kell kiírnia a következő paraméterek alapján: * 2 tizedesjegy szélesen * 24 szélesen * balra igazítva * az érték után " kg" mértékegységgel, előtte szóközzel * függőlegesen egy oszlopban kezdődjenek A program azonban hibás. Javítsa a programot: class Program01 { public static void main(String[] args) { double a = 214.5; double b = 306.7; System.out.printf("%f\n ", a); System.out.printf("%f\n ", b); } } ==== Feladat 2014 ==== A következő programnak 27-et és 53-at kell kiírnia, de nem ezt teszi. Javítsa a programot. class Program01 { public static void main(String[] args) { System.out.printf("%d\n", 027); System.out.printf("%d\n", 053); } } ==== Feladat 2015 ==== Adott egy hiba a következő programban. Keresse meg: import java.io.*; import java.util.*; class Program01 { public static void readFile() { try { tryReadFile(); }catch(FileNotFoundException e) { System.err.println("A fájl nem található!"); } } public static void tryReadFile() { throws FileNotFoundException { Scanner olvaso = new Scanner(new FileReader("adat.txt")); while(olvaso.hasNextLine()) { System.out.println(olvaso.nextLine()); } } public static void main(String[] argv) { readFile(); } } ==== Feladat 2016 ==== Adott egy hiba a következő programban. Keresse meg: import java.io.*; import java.util.*; class Program01 { public static void readFile() { try { tryReadFile(); }catch(FileNotFoundException e) { System.err.println("A fájl nem található!"); } } public static void tryReadFile() throw FileNotFoundException { Scanner olvaso = new Scanner(new FileReader("adat.txt")); while(olvaso.hasNextLine()) { System.out.println(olvaso.nextLine()); } } public static void main(String[] argv) { readFile(); } } ==== Feladat 2017 ==== A következő program tartalmaz egy hibát. Töltse le, vagy vágólapról másolja saját gépére a forráskódot, keresse meg hibát és javítsa. import java.util.Scanner; public class Program01 { public static void main (String[] args) { Scanner sc = new Scanner(System.in); System.out.println("A program kiszámítja egy kör kerületét"); System.out.println("Szerző: Nagy János, 2019"); System.out.println("A kör területe: 2*r*PI"); System.out.print("Sugár: "); double r = sc.nextDouble(); String eredmeny = "Terület: " + String.value0f(2*r*Math.PI); System.out.println(eredmeny); } } Mentés: pallagi ==== Feladat 2018 ==== A következő program tartalmaz egy hibát. Töltse le, vagy vágólapról másolja saját gépére a forráskódot, keresse meg hibát és javítsa. import java.util.Scanner; public class Scanner { public static void main (String[] args) { Scanner sc = new Scanner(System.in); System.out.println("A program kiszámítja egy kör kerületét"); System.out.println("Szerző: Nagy János, 2019"); System.out.println("A kör területe: 2*r*PI"); System.out.print("Sugár: "); double r = sc.nextDouble(); String eredmeny = "Terület: " + String.valueOf(2*r*Math.PI); System.out.println(eredmeny); } } Mentés: csati ==== Feladat 2019 ==== A következő program tartalmaz egy hibát. Töltse le, vagy vágólapról másolja saját gépére a forráskódot, keresse meg hibát és javítsa. import java.util.Scanner; class Kor { static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Kör kerületének számítása"); System.out.println("Szerző: Nagy János, 2019"); System.out.print("Sugár: "); double r = sc.nextDouble(); double k = 2 * r * Math.PI; System.out.printf("%f\n", k); } }