Zahlen einlesen und ausgeben, Array

Soulcraft

Mitglied
Java:
public class VariablesArrayMethoden {
	
	public static void main(String[] args) {
		________ einlesenZahlen(________);
		________ ausgebenZahlen(________);
	}
	
	private static ________ einlesenZahlen(________) {
		:::
	}
	
	private static ________ ausgebenZahlen(________) {
		:::
	}
}
Vorweg, es ist keine Hausaufgabe. Ich hänge etwas hinterher und weiß nicht wie ich den oberen Quellcode mit den Funktionen des folgenden ausstatten kann: package Arrays;
Java:
import java.io.*;

import oopinout.IO;

public class VariablesArrayMethoden {

	
	

	public static void main(String[] args) throws IOException {
		
		System.out.println("geben sie die zu erfassenden zahlen ein: ");
		int erfassen = oopinout.IO.readInteger();
		
		int[] zahlen = new int[erfassen];
		
		for(int i = 0; i<zahlen.length;i++) {
			System.out.println("geben sie die zahl " + (i+1) + " ein");
			zahlen[i] = IO.readInteger();
			
		}
		
		
		for(int i = 0; i<zahlen.length;i++) {
		System.out.println(zahlen[i]);
		}
		
		

	}

}

Es sollen zahlen eingelesen und ausgegeben werden. Diese Schritte sollen unabhängig voneinander in verschiedene Methoden implementiert werden.
 

JavaMeister

Gesperrter Benutzer
Du hinkst also "etwas" hinterher.

Schauen wir mal.

Also oben soll sein, wie unten, jedoch in methoden ausgelagert?

einlesenZahlen(________);

Was muss die Methode wissen, und was gibt sie zurück, wenn wir sowas haben:

Java:
        System.out.println("geben sie die zu erfassenden zahlen ein: ");
        int erfassen = oopinout.IO.readInteger();
       
        int[] zahlen = new int[erfassen];
 

Soulcraft

Mitglied
Ok, nicht nur 'etwas'...
Ich muss einiges nachholen und dachte, dass ich hier gut beraten wäre.

Java:
package Arrays;

import java.io.*;
import oopinout.IO;



public class VariablesArrayMethoden {
    
    public static void main(String[] args) {
        
		int zahlen = einlesenZahlen(int readInteger);
        int ausgeben = ausgebenZahlen(int readInteger);
    }


    
	protected int erfassen;
    
    private static int[] zahlen = new int[5];
    
    private static void  einlesenZahlen(int readInteger) {
    	 for(int i = 0; i<zahlen.length;i++) {
             System.out.println("geben sie die zahl " + (i+1) + " ein");
             int zahlen = oopinout.IO.readInteger();
             
         }
    }
    
    private static void ausgebenZahlen(int readInteger) {
    	for(int i = 0; i<zahlen.length;i++) {
            System.out.println(zahlen[i]);
            }
            
    }
}

Mehr fällt mir nicht ein. Ich weiß nicht wie ich die Methoden schreiben soll ;(
 

JavaMeister

Gesperrter Benutzer
Macht das den, was du geschrieben hast Sinn? - Ich glaube nicht.

Bitte beantworte meine Frage.

Kleiner Tipp: Alle Methoden und Variablen müssen static sein.
 

JavaMeister

Gesperrter Benutzer
Das meine ich nicht.

Was muss die Methode wissen, und was gibt sie zurück, wenn wir sowas haben:

einlesenZahlen(________);

Was muss die Methode wissen, und was gibt sie zurück, wenn wir sowas haben:

Java:
    System.out.println("geben sie die zu erfassenden zahlen ein: ");
            int erfassen = oopinout.IO.readInteger();
           
            int[] zahlen = new int[erfassen];

Du musst die Sache systematisch analysieren. Ich fange mal an:

Man braucht die anzahl der zu lesenden Zahlen.

Was gibt die Methode zurück?
 

Soulcraft

Mitglied
Ein Array mit der Anzahl der zuvor eingegeben Zahl? :rtfm:
Ich möchte ehrlich was dazu lernen, ich hoffe, dass du dich nicht über meine Unwissenheit aufregst...
 

JavaMeister

Gesperrter Benutzer
Hi,

sorry, nein ich rege mich weder auf noch verurteile ich oder der gleichen.

Es geht hier darum die Methodik kennen zu lernen, mit der man sowas programmiert.

also der Kopf der Methode sieht so aus:

Java:
public static int[] einlesenZahlen(int anzahl) {
// Dann kommt hier das folgende rein:
______________________; // Hier muss was hin, das die Zahlen speichert.
 for(int i = 0; i<anzahl;i++) {
             System.out.println("geben sie die zahl " + (i+1) + " ein");
             _______= oopinout.IO.readInteger();
             // Hier fehlt noch das korrekte speichern.
         }

return ___________; // Dann muss eas zurück gegeben werden.
}
 

Soulcraft

Mitglied
Java:
public static int[] einlesenZahlen(int anzahl) {
// Dann kommt hier das folgende rein:
static int[] zahlen = new int[anzahl]; // Hier muss was hin, das die Zahlen speichert.
 for(int i = 0; i<anzahl;i++) {
             System.out.println("geben sie die zahl " + (i+1) + " ein");
             zahlen[i]= oopinout.IO.readInteger();
             // Hier fehlt noch das korrekte speichern.
         }
 
return ___________; // Dann muss eas zurück gegeben werden.
}

So schonmal richtig?
 
Zuletzt bearbeitet:

Soulcraft

Mitglied
Java:
package Arrays;
import java.io.*;

public class VariablesArrayMethoden1 {

	
	static int[] zahlen;
	
	public static void einlesenZahlen() throws IOException{
		
		System.out.println("Geben Sie die Anzahl der einzulesenden Zahlen ein: ");
		int erfassen = oopinout.IO.readInteger();
		
		 zahlen = new int [erfassen];
		
		for(int i = 0;i<zahlen.length;i++){
			System.out.println("geben sie die zahl " + (i+1) + " ein");
			   zahlen[i] = oopinout.IO.readInteger();
		}
		
		
		
	}
	
	public static void ausgebenZahlen()throws IOException{
		for(int i = 0; i<zahlen.length;i++) {
			   System.out.println(zahlen[i]);
			  }
		
		
	}
	
}

Ich bekomme es einfach nicht zum laufen. Ist der Ansatz zumindest richtig?

Bei dem anderen weiß ich nicht was er mit return zurückgeben könnte bzw. muss.
 

JavaMeister

Gesperrter Benutzer
Wieso bringst du es nicht zu laufen?

Auf diese Art und Weise muss die Methode nix zurückgeben.

---

Du musst natürlich oopinout auch entsprechen deklarieren und initialisieren.
 
Zuletzt bearbeitet:

Soulcraft

Mitglied
Wenn ich den Quellcode ausführe, führt er ein anderes Programm aus dem package aus...
Egal was ich mache, es scheitert daran.

Edit: Error: Could not find or load main class Arrays.VariablesArray

Der Fehler wird mir nun angezeigt.
 
Zuletzt bearbeitet:

JavaMeister

Gesperrter Benutzer
Wie führst du es aus?

Kannst Du Dir bitte angewöhnen mehr Informationen zu posten?

"Geht nicht" "Weiß ich nicht" helfen nicht bei der Analyse.
 

Soulcraft

Mitglied
Ja kann ich :rtfm:

Mit dem weißen Pfeil der in einem grünen Kreis ist. Also so wie immer.
Komischerweise kommt der Fehler nur wenn ich die Klasse VariablesArray lösche.
Wenn ich sie wieder erstelle und den Quellcode reinkopiere führt er wieder diesen aus.

Ich hoffe, das ich nichts vergessen habe..

Edit: Ich nutze Eclipse
 
Zuletzt bearbeitet:

JavaMeister

Gesperrter Benutzer
Rechter Mausklick auf die Datei => Ausführen als "Java Application".

Diese Klasse muss dann aber auch eine Main Methode haben.

Sie ist zudem nicht kompilierbar, musst sie also zu ende schreiben.
 

Soulcraft

Mitglied
Habe die Main-Methode hinzugefügt und es funktioniert alles :)

Jetzt wäre ich beim nächsten Problem (nicht sonderbar groß).

Java:
package Interfaces;

public class Programm {

	
	public static void main(String[] args) {
		
		Person p = new Person();
		Artikel a = new Artikel();
		Haus h = new Haus();
		Tür t = new Tür();
		
		BenutzerEingabe[] b = new BenutzerEingabe[4];
		
		b[0] = new Haus();
		b[1] = new Tür();
		b[2] = new Artikel();
		b[3] = new Person();
		
		
		
	}

}

Die Objekte im Array haben alle die Methode eingabe().
Wie rufe ich diese nochmal auf? Bei allen Objekten.
In einer Schleife soll es sein.

Den oberen Teil kann ich mir sparen oder?
 
Zuletzt bearbeitet:

Neue Themen


Oben