Array soll an Konstruktor übergeben werden..Hilfe!

brodolsky

Mitglied
Hallo Leute,

ich habe ein Problem, und zwar komm ich bei folgender Aufgabe einfach nicht weiter:

1. Erstellen Sie eine Klasse, die als Eigenschaften zwei Arrays enthält, eins für Zahlen (beliebiger Datentyp) und eins für einzelne Buchstaben (char).
Die Zahlen und Buchstaben werden in der nächsten Übungsaufgabe vom Benutzer am Bildschirm eingegeben, für diese Aufgabe übergeben Sie sie mit dem Konstruktor.

2. Errechnen Sie die Summe aller Elemente der einzelnen Zahlenreihen und geben Sie das Ergebnis und alle Zwischenergebnisse am Bildschirm aus.

3. Ersetzen Sie alle geraden Elemente (x) der Zahlenreihen durch neue Elemente (ein beliebiges y, das der Benutzer in der nächsten Übungsaufgabe am Bildschirm eingeben kann) und geben sie die neue Zahlenreihe am Bildschirm aus.
Übergeben Sie y als Parameter an die Methode.

4. Zählen Sie die in 3. ersetzten Elemente und geben Sie die Anzahl am Bildschirm aus.

5. Sortieren Sie die Elemente der Zahlenreihe von groß nach klein und geben Sie die neue Zahlenreihe am Bildschirm aus.

6. Geben Sie das Buchstaben-Array (ebenfalls vom Benutzer eingegeben), einmal in Großbuchstaben und einmal in Kleinbuchstaben aus.

7. Addieren Sie im Buchstaben-Array eine Ganzzahl kleiner als 10 zu jedem Array-Element, geben Sie die neue Reihe aus und erklären Sie das Ergebnis.

8. Führen Sie den Benutzer mit sinnvollen Texten durch das Programm. Setzen Sie den jeweiligen Ausgaben am Bildschirm einen sinnvollen Text voran, so daß erkennbar ist, welche Ergebnisse ausgegeben werden


Mein Ansatz:

Java:
public class Reihungen{


			int [] zahlen = new int[10];
			char [] buchstaben = new char[10];
			
			
			public Reihungen(){
			
		}			
		
	public static void main(String args[]) {
	
		
		
	}		

	
}


Hat irgendjemand ewine Ahnung wie ich diese Aufgabe lösen kann ??

danke schonmal im vorraus😉

lg
 
Vermutlich einfach nur:

Java:
public class Test
{
    int zahlen[];
    int zeichen[];

    public Test(int[] zahlen, int[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
    }
}
 
Du meinst das bestimmt so:

Java:
public class Test
{
    int[] zahlen;
    int[] zeichen;

    public Test(int[] zahlen, int[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
    }
}
 
super danke! aber statt int für zeichen soll ich da glaub char nehmen....und wie krieg ich das nun hin, dass die werte am bildschirm eingegeben werden können ??

danke

lg
 
Für Ausgaben am Bildschirm eignen sich die Methoden
Code:
JOptionPane.showMessageDialog()
und ähnliche Methoden der Klasse. Für Eingabe z.B.
Code:
JOptionPane.showInputDialog();
- liefert Eingabe als String zurück.

Falls du etwas auf die Konsole ausgeben willst, wäre
Code:
System.out.println()
zu empfehlen.

Ein char Array kannst du genau so übergeben, du musst
Code:
int[]
einfach nur mit
Code:
char[]
ersetzen.

Um Arrays in String umzuwandeln, empfiehlt sich die Methode
Code:
Arrays.toString();
 
Du meinst das bestimmt so:

Java:
public class Test
{
    int[] zahlen;
    int[] zeichen;

    public Test(int[] zahlen, int[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
    }
}

Dir ist wohl bewusst, dass das null Unterschied macht, oder?

super danke! aber statt int für zeichen soll ich da glaub char nehmen....und wie krieg ich das nun hin, dass die werte am bildschirm eingegeben werden können ??

danke

lg

Jap, natürlich, einfach nicht drauf geachtet in dem Moment, aber das kannst du ja leicht anpassen.

und wie krieg ich das nun hin, dass die werte am bildschirm eingegeben werden können ??

Das ist bei der Aufgabenstellung doch noch gar nicht gefordert, oder?
 
danke für die antworten;

@pro2

in der aufgabe steht doch:
Die Zahlen und Buchstaben werden in der nächsten Übungsaufgabe vom Benutzer am Bildschirm eingegeben, für diese Aufgabe übergeben Sie sie mit dem Konstruktor.

oder ist damit gar nicht die eingabe in der kommandozeile gemeint ? hast du vllt einen vorschlag wie ich die aufgabe weiter angehen kann ? ich versteh irgendwie nicht was da denn berechnet werden soll ohne konkrete werte :/

besten dank
 
Ich finde die Aufgabenstellung ohnehin mehr als verwirrend gestellt.
Ist jetzt mit der nächsten Aufgabe die 2. gemeint, oder die nächste Aufgabe, die ihr bearbeiten werdet? Das war nämlich mein ursprünglicher Gedanke. Ansonsten würde ich einfach für jeden Teilabschnitt eine kleine Methode schreiben, oder habt ihr das Thema noch nicht behandelt? Und in der Main einmal über die Konsole Zahlen einlesen, dann entsprechend ein Objekt der Klasse erstellen und alle gewünschten Methoden darauf ausführen.
 
hmmm so sicher bin ich mir da auch nicht. aber ich müsste die aufgabe ja trotzdem irgendwie weiter bearbeiten können ? mit methoden komm ich klar. aber wie kann ich denn da jatzt irgendwas berechnen ohne konkrete werte ?

danke
 
macht das so einen sinn ?
Java:
import java.util.Scanner;


public class Reihungen{


    int zahlen[];
    char zeichen[];
 
    public Reihungen(int[] zahlen, char[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
	
 
	/*for( int index = 0; index < zahlen.length; index++){

				zahlen[index] = index*3;
				}
	
	
			for( int index = 0; index < zahlen.length; index++){
					System.out.println(zahlen[index])
	}				
					
					
	public static void main(String args[int[] zahlen, char[] zeichen]) {
	
		Scanner tastatur = new Scanner(System.in);*/
	
			

 
}
 
Ich hoffe mal das ist dir beim Kopieren durcheinander gekommen, wenn es ursprünglich so gedacht war, dann macht es Sinn. Mal davon abgesehen, dass die letzte Klammer gefehlt hat:
Java:
    public static void main(String args[int[] zahlen, char[] zeichen]) {
        Scanner tastatur = new Scanner(System.in);

        for( int index = 0; index < zahlen.length; index++){
                zahlen[index] = index*3;
         }
         for( int index = 0; index < zahlen.length; index++){
                    System.out.println(zahlen[index])
        }
    }

Dir ist aber hoffentlich klar, das du die beiden Schleifen auch genausgut in einer schreiben könntest? Das du dabei noch nichts von der Tastatur einliest, versteht sich ja von selbst.
Java:
    public static void main(String args[int[] zahlen, char[] zeichen]) {
        Scanner tastatur = new Scanner(System.in);

        for( int index = 0; index < zahlen.length; index++){
                zahlen[index] = index*3;
                System.out.println(zahlen[index])
        }
    }

[EDIT]Moment mal, wie du das auskommentiert hast ist etwas verwirrend. Gehörte die for-Schleife in den Konstruktor? Da macht Sie eigentlich keinen Sinn, zumindest dier erste (Die sollte in die main, da muss man dann allerdings das Array noch anlegen, was mir gerade erst auffällt, genauso wie die fehlende schließend Klammer des Konstruktors). Die zweite macht so dagegen schon Sinn, um sich mal den Inhalt zu debugging-Zwecken auszugeben.[/EDIT]
 
Zuletzt bearbeitet:
okay danke dir😉 und wie krieg ich das nun hin, dass ich was von der tastatur einlesen kann ??
achja dass ich den index hier mit 3 multipliziere hab ich nur mal gemacht um was auszuprobieren aber beim kompilieren zeigt es mir jede menge errors an:/
 
wo liegt da der fehler ?

Java:
import java.util.Scanner;


public class Reihungen{


    int zahlen[];
    char zeichen[];
 
    public Reihungen(int[] zahlen, char[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
}
 
	 public static void main(String args[int[] zahlen, char[] zeichen]) {
		
        Scanner tastatur = new Scanner(System.in);
 
        for( int index = 0; index < zahlen.length; index++){
                zahlen[index] = index;
         }
         for( int index = 0; index < zahlen.length; index++){
                    System.out.println(zahlen[index])
        }
    }

 
}
 
Das Beispiel, so wie du es dir vermutlich gedacht hast mal kompilierbar und gleich mit dem einlesen eines Worts:
Java:
 import java.util.Scanner;
public class Reihungen{
 
    int zahlen[];
    char zeichen[];
 
    public Reihungen(int[] zahlen, char[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
            for( int index = 0; index < zahlen.length; index++){
                    System.out.println(zahlen[index]);
        }
    }
    
 
    public static void main(String args[int[] zahlen, char[] zeichen]) {
        int[] zahlen =new int[5];
        for( int index = 0; index < zahlen.length; index++){ 
                zahlen[index] = index*3;
        }
        Scanner tastatur = new Scanner(System.in);
        String word=tastur.next(); //liest ein Wort, alternativ auch nextLine für eine Zeile
        
        new Reihungen(zahlen,word.toCharArray()); //wandelt einen String in ein char Array um
    }               
}
 
Das
Java:
    public static void main(String args[int[] zahlen, char[] zeichen]) {
Sollte einfach nur
Java:
    public static void main(String[] args) {
Heißen 🙂
 

Zurück
Oben