Erste Schritte Parameterübergabe in Konsole & Programmierungsproblem

JDownHD

Mitglied
Hallo,

ich habe die folgenden zwei Probleme:
1.) Parameterübergabe in Konsole:
Ich will die Quersumme eine positiven ganzen Zahl ermitteln, welche ich beim Aufruf des Programms als Parameter übergeben will. Also bei 4561 "java Quersumme 4561". Ich habe nur leider keinen blassen Schimmer wie ich das einlesen bewerkstelligen soll :bahnhof:

2.) Eine Aufgabenstellung Anhang:
Ich habe bis jetzt Folgendes Programmiert:
Java:
public class Punkt{
	private int x = 0;
	private int y = 0;
	
	public Punkt(int x, int y){
		this.x=x;
		this.y=y;
	}
	
	//Get & Set
	public int getX(){
		return x;
	}
	public int getY(){
		return y;
	}
}

und
Java:
public class Dreieck{
	public static void main(String args []){
		Punkt a = new Punkt(2, 2);
		Punkt b = new Punkt(3, 3);
		Punkt c = new Punkt(4, 4);
		
		public Dreieck(Punkt a, Punkt b, Punkt c){
			this.a=a;
			this.b=b;
			this.c=c;
		}
		
		
		//public berechneFlaeche(){}
}

Es wäre echt Super wenn mir hier jemand Helfen könnte diese Aufgabe zu lösen und vor allem zu Verstehen warum und was ich da mache :oops:
 

Anhänge

  • Aufgabe 6 A + B.jpg
    Aufgabe 6 A + B.jpg
    79,1 KB · Aufrufe: 20

Final_Striker

Top Contributor
Also bei 4561 "java Quersumme 4561". Ich habe nur leider keinen blassen Schimmer wie ich das einlesen bewerkstelligen soll :bahnhof:

Die übergebenen Parameter stehen in dem String-Array
Code:
args
der main-Methode.

Es wäre echt Super wenn mir hier jemand Helfen könnte diese Aufgabe zu lösen und vor allem zu Verstehen warum und was ich da mache :oops:

Die Formel zur Berechnung der Flächen ist doch gegeben. Wo ist da das Problem?
 

JDownHD

Mitglied
Das Problem ist, dass ich so etwas noch nie gemacht habe und nicht weiß ob das bisher geschriebene richtig ist... zudem weiß ich nicht wie ich die Formel einfügen soll...
 
S

SlaterB

Gast
Lehrbücher zu Grundstruktur (was ist eine Klasse, eine Methode) usw. gibts überall,
sinnvoll ist z.B. genauso so viele ) } ] wie ( { [ in einer Klasse zu haben,
das gilt ja auch überall, etwa Mathe ab Klasse 3

desweiteren ist zu sagen dass es in einem einfachen Programm nur ein main-Methode gibt die bis zum Ende durchlaufen wird, fertig,
diese main-Methode kann selber Code enthalten, Methoden aufrufen, Objekt erstellen und an denen Methoden aufrufen usw.,

einfach zu überblicken, irgendwo muss der Code stehen wenn er dran kommen soll, direkt in der main-Methode oder in einer Methode und diese drankommen
 
J

JohannisderKaeufer

Gast
Java:
public class Punkt{
    //Die Variablen muessen nicht gesetzt werden, da dies im Konstruktor geschieht.
    private int x;
    private int y;
    
    public Punkt(int x, int y){
        this.x=x;
        this.y=y;
    }
    
    //Get & Set
    public int getX(){
        return x;
    }
    public int getY(){
        return y;
    }
}

Java:
public class Dreieck{
    //Main-Methode wird erstmals ja nicht benötigt.
    //Irgendwo müssen die Punkte ja deklariert werden.
    //Gesetzt werden diese dann im Konstruktor
       private Punkt a;
       private Punkt b;
       private Punkt c;
        
        public Dreieck(Punkt a, Punkt b, Punkt c){
            this.a=a;
            this.b=b;
            this.c=c;
        }
        
        //Benötigt einen Rückgabetyp double
        public double berechneFlaeche(){
          //Die Formel aus der Aufgabenstellung
          double flaeche = 0.5 * (a.getX() * (b.getY()-c.getY()) + b.getX() * (c.getY()-a.getY()) + c.getX() * (a.getY()-b.getY()));
          return flaeche;
        }
}
 

JDownHD

Mitglied
@JohannisderKaeufer
Vielen Dank! Ich werde es mir Sofort anschauen!

Für die erste Aufgabe habe ich jetzt:
Java:
class Quersumme {
	public static void main(String arguments[]){
		int Zahl, Quersumme;
		Zahl = 5648;
		Quersumme = 0;
		
		if (Zahl<0)
		System.out.println("Die Eingabe ist Fehlerhaft");
		else
		while (Zahl != 0) {
			Quersumme = Quersumme + Zahl % 10;
			Zahl = Zahl / 10;
			
			System.out.println("Die Quersumme von " + Zahl + " lautet: "+Quersumme);
		}
	}
}

Ich weiß nur nicht wie ich jetzt die Eingabe Umsetzen soll...

Java:
class Quersumme {
int Zahl;
	public static void main(String arguments[Zahl]){
?
 

Final_Striker

Top Contributor
Du kannst einfach in der main Methode auf dieses Array zugreifen z.B:

Java:
String firstParameter= arguments[0];


Solltest vorher natürlich noch überprüfen ob überhaupt Parameter übergeben wurden, sonst gibt es einen Fehler.
 

JDownHD

Mitglied
Ich habe die Quersumme jetzt so gelöst:
Java:
class Quersumme {
	public static void main(String args[]){
		String Eingabe = args[0];
		int Quersumme = 0;
		if(Eingabe.matches("[0-9]+")){
			int Zahl = Integer.parseInt(Eingabe);
			System.out.print("Die Quersumme von " + Zahl + " lautet: ");
			
			while (Zahl != 0) {
				Quersumme = Quersumme + Zahl % 10;
				Zahl = Zahl / 10;
			}

			System.out.print(Quersumme);
		}
		else
			System.out.println("Es dürfen nur positive ganze Zahlen eingegeben werden!");
	}
}

Danke noch einmal für den String Eingabe = args[0]; Tipp!
 

Timothy Truckle

Top Contributor
Ich habe die Quersumme jetzt so gelöst:
Java:
class Quersumme {
	public static void main(String args[]){
		String Eingabe = args[0];
		int Quersumme = 0;
// ...
Bitte gewöhne Dich an die Java-Namenskonventionen Code Conventions for the Java Programming Language: Contents. Variablen beginnen immer mit Kleinbuchstaben.

Danke noch einmal für den String Eingabe = args[0]; Tipp!
Bitte beachte, dass Du eine [JAPI]IndexOutOfBoundsException[/JAPI] ausgelöst wird, wenn Dein Programm ohne Parameter aufgerufen wird.

bye
TT
 

Neue Themen


Oben