zwei-dimensionales Array

student2018

Mitglied
hallo,habe mal ne frage

ich soll 2 arrays wiedergeben 10mal10 mit dem kleinen 1mal1 und einmal rückwärts.
werde nicht auf alle Zeichen acht geben und das Hauptprogramm auch nicht aufschreiben , weil meine frage bezüglich der Ausgabe ist.

int array [] [] =new int [10][10]
int array2 [][]= new int [10][10]

for(int i =0;i<10;i++) {
for(int j=0;j<10;j++){
array [j]=(i+1)*(i+1)
array2[j]=(10-i)*(10-j)

//und jetzt um das gewünschte format zu haben würde ich schreiben
system.out.print(array[j]+" " )
}
system.out.println( )
}
Mein frage wäre kann ich auch beide Matrizen gleichzeitig aus geben also sprich z.B die beiden Matrizen unter einander .Ich habe es versucht in dem ich ein weiteres system.out.print(array2[j]+" " ) über der anderen print ausgabe eingefügt habe .jedoch hat es nicht geklappt .muss man die or schleife noch mal für matrize 2 schreiben ?
 
Hallo. Deine Array Felder werden so aber nicht richtig gefüllt. Du hast ja zwei Dimensionale Array also musst du auch 2 indexe eingeben. Für die Ausgabe: Wie auch bei der befüllung musst du in deiner Ausgabe zwei indexe angeben.
Bsp:
Code:
for(int i = 0; i <array.length; i++){
   for(int j = 0; j<array[i].length; j++){
      array[i][j] = (i+1)*(i+1)
      System.out.println(array[i][j])
   }
}

Meines wissen kannst du beide Felder übereinander in einer schleife ausgeben, aber das würde nicht so schön aussehen. Statt dessen könntest du die toString methode umschreiben für eine Array ausgabe und beide array dan einfach über system.out.print ausgen, nacheinander.
 
Nutze bitte das nächste Mal Code-Tags (siehe meine Signatur oder im Editor der 4. Button von rechts). [i] wird sonst als kursive Schrift erkannt.

Du wirst nicht drum herum kommen die Ausgabe für beide Arrays separat zu machen. Du könntest die Ausgabe aber in eine Methode auslagern (sofern du schon weißt wie das geht) sodass du sie nicht für beide Arrays schreiben musst.
 
also ich müsste zuerst eine verkettete forschleife für matrix 1 machen und eine verkettete forschleife für matrix 2 und jeweils nach deren schleifen die Matrizen ausgeben lassen? schreibe Dienstag meine Klausur (uni )und komme nur schleppend voran ,habe besondere schwierigkeiten darin richtige Methoden zu schreiben
 
Versuch es doch einfsch mal und wenn du auf Probleme triffst dann helfen wir dir anhand deines Codes.
Prinzipiell kannst du die Ausgabe, wie oben schon beschrieben, in eine Methode auslagern.
 
Du könntest eine methode schreiben, wo du wie gesagt die ausgabe von einem array schreibst.
Dannach könntest du das array was ausgegeben werden soll an diese methode übergeben, womit die methode dan arbeitet
Das meinte ich auch im ersten beitrag von mir aber hab mich völlig falsch ausgedrückt sry dafür
 
Gegeben sei die Klasse Listenplatz

public class Listenplatz {

private Listenplatz;
private int nummer;

public Listenplatz (int a) {

nummer = a;

naechsterPlatz = null;
}

public void setNaechsterplatz (Listenplatz naech) {

naechsterPlatz = naech;
}
public Listenplatz getNaechsterplatz() {

return naechsterPlatz;
}

public int getObjektNummer() {

return nummer;
}


Hauptprogramm gegeben

public class Hauptprogramm {
public static void main(String[] args) {


Listenplatz platz1 = new Listenplatz(1);
Listenplatz platz2 = new Listenplatz(2);
Listenplatz platz3 = new Listenplatz(3);
Listenplatz platz4 = new Listenplatz(4);

Liste List = new Liste(platz1);

List.fuege_am_Ende_der_Liste_an(platz2);
List.fuege_am_Ende_der_Liste_an(platz3);
List.fuege_am_Ende_der_Liste_an(platz4);

Listenplatz platz5 = new Listenplatz(5);

List.fuege_am_Platz_ein(3, platz5);

}}

Des weiteren Klasse Liste zum teil gegeben
public class Liste {

private Listenplatz kopf;
private Listenplatz fuss;

public Liste (Listenplatz neuer) {

kopf = neuer;
fuss = neuer;
}
public void fuege_am_Ende_der_Liste_an(Listenplatz anfuegen) {

fuss.setNaechsterplatz(anfuegen);
fuss = anfuegen;
}}
 
Erweitern Sie die Klasse Liste, um eine Methode fuege_am_Platz_ein, die als Parameter einen Integerwert und ein Objekt vom Typ Listenplatz übergeben bekommt (siehe Hauptprogramm). Die Methode soll den übergebenen Listenplatz an der Stelle in der Liste einfügen, den der übergebene Integerparameter angibt. Bedenken Sie, dass die Liste auch um einen Platz verlängert werden kann. Sollten Plätze eingefügt werden, die es in der Liste nicht gibt, weil diese nicht groß genug ist, geben Sie bitte eine dementsprechende Mitteilung auf dem Bildschirm aus. Den besonderen Fall, dass der Nutzer als Parameter die „1“ übergibt und damit den Listenkopf austauschen möchte, müssen Sie ebenso wenig beachten wie negative Plätze.



ich wüsste hier nicht wie ich vorgehen sollte
 
Also du sollst einfach eine methode schreibe die an der stelle was übergebene wird den übergebenen objekt einfügt. Und bei einen index was höher ist als die laenge sollst du dies abfangen und eine mitteilung ausgeben.

İch weiß das man hier keine lösungen posten soll. Als ansatz würde ich sagen das du vorerst den index mit der laenge vegleichst und guckt ob es diesen index überhaupt geben kann.
 
Bsp: die methode mit den beiden parametern. Dann eine if abfrage ob die laenge kleiner als der übergebene int wert ist.

Hast du schon versucht es zu lösen? Wenn ja achreib doch ma bitte deinen code hier rein, so könnten wir deinen code verbessern. Wenn ich die hier eine lösung aufschreibe hast du nichts davon auser das du eine lösung hast.

Eine frage nebenbei. Hast du die erste frage von dir jetzt gelöst bekommen?
 
Zuletzt bearbeitet:
das was du doppelt schreiben willst lager dies in eine andere Methode mit einem Array parameter aus und gib deine Arrays die du ausgeben willst dieser methode zu. So einfach ist das eigentlich
Bsp:
Code:
public void method(int[] array){
hier kommt die ausgabe
}
Dannach rufst du diese methode halt mit deinem array als parameter auf und du bekommst die ausgabe
 
Zuletzt bearbeitet:
hey hätte eine frage
in den musterlösungen steht bei einer anderen Aufgabe das hier
public class Uebung_6 {
public static void main(String args[]) {

// 1)a)

int array[] = new int[20]; int groeßteZahl = 0;
int stelle = 0;

for (int i=0; i<array.length; i++)

{

array = (int)(Math.random()*101); }

for (int i=0; i<array.length; i++)

{

System.out.print(array+", "); }

System.out.println();
 
jedoch kann ich mein array auch folgendermaßen wiedergeben


public static void main(String[] args) {

int groesstezahl=0;

int stelle=0;

int array []=new int [20];

for(int i=0;i<array.length;i++) {



array=(int)(Math.random()*101);

System.out.print(array+" , ");

}
System.out.println();

}
}
 
Das kommt drauf an.
In deinem Beispiel hattest du zwei Dimension und brauchst daher auch 2 for-Schleifen.
In der Aufgabe ist nur eine Dimension vorhanden, daher nur eine Schleife.
 
Zu welcher frage gehört das den jetz? Zur ersten was du gestellt hast oder zweiten?

Du beingst alles durcheinander zuerst stellst du eine frage dann eine andere, danach gehst du wieder auf die erste frage ohne es zu sagen.
 
also wozu unnötig noch eine for schleife wenn es auch mit nur einer geht
İn der Musterlösung wurde das befüllen in einer schleife und die ausgabe in einer seperaten schleife gemacht. Das ist jetz kein riesen programm wo du wirklick auf effizienz achten musst. Bei uns in der Uni hatten die das auch gemacht damit wir lerhlinge eine bessere übersicht haben, meinten die profs.
 

Zurück
Oben