Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:java:java_programozas_szintjei

< Java

Java programozás szintjei

  • Szerző: Sallai András
  • Copyright © Sallai András, 2014
  • Licenc: GNU Free Documentation License 1.3

Bevezetés

Az alábbiakban egy olyan program megírása lenne a feladat, ahol egy háromszög kerületét és területét számítjuk ki. A területet az alapból, magasságból, és a három oldalból is számítjuk. A feladat tulajdonképpen négyszer van megoldva mindig más módon, az egyszerűbb esetektől haladva a komplexebb formák felé.

A programozó természetesen nem azért ír komplexebb formákat, hogy saját életét megnehezítse. A cél az, hogy ha később bele kell javítani a kódba, az minél kisebb problémával járjon. Ha egy programot nem bontunk jól elkülöníthető részekre, akkor később amikor bele kell nyúlni, az egyes programrészek egymástól függősége beláthatatlan hibákat eredményez.

Minden megoldás ugyanazt az eredményt adja. Különbség azért van köztük.

Lomtár program

Program00.java
class Program00
{public static void main(String[] args){
System.out.println("Háromszög terület, kerület számító program");
 double a = 30;double b = 35;double c = 40;
double k = a+b+c;
double alap=30;double mag=35;
 double t1 = (alap * mag) /2;
double s = (a + b + c) / 2;
double terulet2 = Math.sqrt(s*(s-a)*(s-b)*(s-c));
 System.out.printf("Kerulet: %.2f\n",  k);
System.out.printf("Terulet: %.2f\n",    t1);
  System.out.printf("Terulet: %.2f\n", terulet2);
 }}

Szimpla program

Program01.java
class Program01
{
	public static void main(String[] args)
	{
		System.out.println("Háromszög terület, kerület számító program");
		double a = 30;
		double b = 35;
		double c = 40;
 
		double kerulet = a + b + c;
 
		double alap = 30;
		double mag = 35;
		double terulet = (alap * mag) /2;
 
		double s = (a + b + c) / 2;
		double terulet2 = Math.sqrt(s*(s-a)*(s-b)*(s-c));
 
		System.out.printf("Kerulet: %.2f\n", kerulet);
		System.out.printf("Terulet: %.2f\n", terulet);
		System.out.printf("Terulet: %.2f\n", terulet2);
	}
}

Strukturált megoldás

Program02.java
class Program02
{
        private static double szamitKerulet(double a, double b, double c)
        {
		return a + b + c;		
	}
	private static double szamitTerulet(double a, double m)
	{
		return (a * m) / 2.0;	
	}
	private static double szamitTerulet2(double a, double b, double c)
	{
		double s = (a + b + c) / 2.0;
		return Math.sqrt(s*(s-a)*(s-b)*(s-c));
	}
	public static void main(String[] args)
	{
		System.out.println("Háromszög terület, kerület számító program");
 
		System.out.printf("Kerulet: %.2f\n", szamitKerulet(30, 35, 40));
		System.out.printf("Terulet: %.2f\n", szamitTerulet(30, 35));
		System.out.printf("Terulet: %.2f\n", szamitTerulet2(30, 35, 40));
	}
}

Objektum orientált megoldás

Az objektumorientáltságól persze itt nem sok mutatkozik meg, de valamiféle objektumorientált kezdeményezést láthatunk a példában.

Program03.java
class Haromszog
{
        public static double szamitKerulet(double a, double b, double c)
        {
		return a + b + c;		
	}
	public static double szamitTerulet(double a, double m)
	{
		return (a * m) / 2.0;	
	}
	public static double szamitTerulet(double a, double b, double c)
	{
		double s = (a + b + c) / 2.0;
		return Math.sqrt(s*(s-a)*(s-b)*(s-c));
	}		
}
 
class Program03
{
	public static void main(String[] args)
	{
		System.out.println("Háromszög terület, kerület számító program");
 
		System.out.printf("Kerulet: %.2f\n", Haromszog.szamitKerulet(30, 35, 40));
		System.out.printf("Terulet: %.2f\n", Haromszog.szamitTerulet(30, 35));
		System.out.printf("Terulet: %.2f\n", Haromszog.szamitTerulet(30, 35, 40));
	}
}

GUI megoldás

Program04.java
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.FlowLayout;
class Haromszog
{
	public static Double szamitKerulet(double a, double b, double c)
	{
		return a + b + c;
	}
	public static Double szamitTerulet(double a, double m)
	{
		return (a * m) / 2.0;
	}
	public static Double szamitTerulet(double a, double b, double c)
	{
		double s = (a + b + c) / 2.0;
		return Math.sqrt(s*(s-a)*(s-b)*(s-c));
	}
}
 
class Program04 extends JFrame
{
	JTextField keruletMezo;
	JTextField terulet1Mezo;
	JTextField terulet2Mezo;
	Program04()
	{
		keruletMezo = new JTextField(10);
		terulet1Mezo = new JTextField(10);
		terulet2Mezo = new JTextField(10);
 
		keruletMezo.setText(Haromszog.szamitKerulet(30, 35, 40).toString());
		terulet1Mezo.setText(Haromszog.szamitTerulet(30, 35).toString());
		terulet2Mezo.setText(Haromszog.szamitTerulet(30, 35, 40).toString());
 
		add(keruletMezo);
		add(terulet1Mezo);
		add(terulet2Mezo);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("Háromszög terület, kerület számító program");
		setLayout(new FlowLayout());
		pack();
		setVisible(true);
	}
	public static void main(String[] args)
	{
		new Program04();
	}
}
oktatas/programozas/java/java_programozas_szintjei.txt · Utolsó módosítás: 2019/08/21 23:39 szerkesztette: admin