ist es möglich die Stellen eines 2-dimensionalen Array einer Methode zu übergeben? Wenn ja wie?
Also das man der Methode sagen kann, dass die for-Schleife nur in der aufgerufenen Stelle des Arrays schreibt.
ich will eine Methode schreiben, in der ich ein 2-dimensionales char Array anlege. In diesem Array sollen Vornamen gespeichert werden. An jeder Stelle in der 2-dimension soll jeweils ein Buchstabe und an die Stellen des 1. Arrays sollen die kompletten Namen. Aber ich brauche 10 Vornamen und deshalb will ich in der Main die Methode mit den verschiedenen Stellen in der ersten Dimension aufrufen. Vorausgesetzt es klappt. Ich weiß, dass es mit einem String leichter geht, aber in der Übung sollen wir das eben so machen.
Kann mal wieder sein, dass ich das zu kompliziert angehen will.
Also graphisch kann ich das eher weniger machen. Aber ich kann dir mal mein eben improvisierten Quellcode geben.
Java:
publicstaticvoidVorname(int zahl1,int zahl2,int zahl3,int zahl4,int zahl5,int zahl6 ){//Hier soll noch die Arrayübergabe rein und zwar die der 1. Dimensionchar[][]Studnamen=newchar[1][6];// Soweit ich weiß muss ich das Array ja erst einmal erzeugen und festlegen.Studnamen[i][0]=(char)(zahl1);// Also soll die i-te Stelle an die Methode übergeben werden. System.out.print(Studnamen[i][0]);Studnamen[i][1]=(char)(zahl2);System.out.print(Studnamen[i][1]);Studnamen[i][2]=(char)(zahl3);System.out.print(Studnamen[i][2]);Studnamen[i][3]=(char)(zahl4);System.out.print(Studnamen[i][3]);Studnamen[i][4]=(char)(zahl5);System.out.print(Studnamen[i][4]);Studnamen[i][5]=(char)(zahl6);System.out.print(Studnamen[i][5]);Studnamen[i][6]=(char)(zahl7);System.out.print(Studnamen[i][6]);}
Und dann soll die Methode über die Main aufgerufen werden, und die werte übergeben werden. Ich habe das jetzt einmal über den Ascii gemacht.
Und von wo kommen die ganzen Zahlen her? Werden die eingelesen von der Tastatur oder wie? Deine Variable i hast du nicht mal deklariert.
Ich weis jetzt nicht wie ich dir helfen soll, weil der Code den du hier von dir gibst zeigt, dass ihr noch nicht sehr weit im Stoff seid. Es wäre hilfreich wenn du mal deine Aufgabenstellung und deine Einschränkungen bekanntgibst, das heißt was habt ihr schon gelernt und was dürft ihr nicht benutzen.
Also Strings hatten wir noch nicht. Ich weiß zwar, dass es sie gibt, aber die kommen erst später in der Vorlesung dran. Sonst wäre das eine Möglichkeit mit dem unechten Stringarray ^^. Naja so wie ich es kurz gepostet habe sollte es dann aussehen. Aber ich bekomme es nicht hin in der Methodenübergabe die 1. Dimension rein zubekommen. Entweder es ist nicht möglich, oder ich mache was falsch. Allerdings müsste ich ja sonst für alle Vornamen + Nachnamen die Dimensionen maunell ändern. Und in ner Schleife kann ich das meines Wissen nicht regeln, da er sonst 7 mal hintereinander die gleichen Buchstaben ausgeben würde.
Was ich gepostet habe ist ein char[][] Array, genau das gleiche das du hast. Die zwei strings hab ich nur zum initialisieren des Arrays verwendet. Wenn du so wie bei mir vornamen[0] an eine Funktion übergibst, übergibst du das erste Array Characters, also den ersten Vornamen, in meinem Fall "Sepp".
Die sinnhaftigkeit deiner Methode versteh ich leider immer noch nicht.
Der Methode wird der Array wie jeder jeder andere Datentyp übergeben, du kannnst ihr bliebilg viel übergeben zum Beispiel:
Java:
status (=private,public,...) zurückgelieferterDatentyp(=int,double,int[],ArrayList<StringKlasse>,...)methodenName(uebergebeneDatentypen(=int,double,int[],ArrayList<StringKlasse>,...))// Das ist natürlich Pseudocode
Kann gut sein, dass sie sinnfrei ist. ^^
Naja fangen wir mal neu an.
Aufgabe:
Alle Studenten erhalten einen Vor- und Nachnamen. Diese werden jeweils in einem char[]-
Array mit zu definierender Länge abgespeichert. Dazu legen Sie zwei Arrays mit 10 Vorbzw.
Nachnamen an (also ein char[][] Array) und wählen bei der Initialisierung zufällig
Vor- und Nachnamen aus.
Okay wenn ich mir dein Quellcode anschaue, frage ich mich ob ich diese Art der Übergabe auch ohne ein String machen kann, denn die hatten wir wie gesagt noch nicht.
Tipps reichen, muss das ja mal langsam selbst hinbekommen, sonst klappt das mit der Klausur nicht. ^^
Ok, es steht also nirgends was davon, dass du deine Methode benötigst.
Habt ihr schon gelernt zufällige integer-Werte zu erzeugen?
@Eclipseworker, er hat Strings noch nicht gelernt und deine StringKlasse sieht noch unnötiger aus als die Methode vom TO. Bitte mach den doppelpost weg.
Der Methode wird der Array wie jeder jeder andere Datentyp übergeben, du kannnst ihr bliebilg viel übergeben zum Beispiel:
Java:
status (=private,public,...) zurückgelieferterDatentyp(=int,double,int[],ArrayList<StringKlasse>,...)methodenName(uebergebeneDatentypen(=int,double,int[],ArrayList<StringKlasse>,...))// Das ist natürlich Pseudocode
Meinst du mit Math.random() ?
Ja haben wir. Versteht die Aufgabe aber nicht falsch, sowie ich zuerst. Die Namen sollen schon sinn ergeben, allerdings sollen die den zuvor per Zufall erstellten Matrikelnr. zufällig zugeweisen werden. Ich dachte zuerst auch, dass die Namen keinen Sinn machen müssen.
Ich bin ja auch nicht hier um dir die HÜ zu machen, sondern um dich in die richtige Richtung zu weisen. Wird von dir tatsächlich erwartet dass du an die 100 Ascii zeichen einzeln in ein Array hinzufügst. Das ist doch Sisyphos-Arbeit.
Mein Tipp: Mach die initialisierung so wie ich oben mit den Strings (DoppelCharArray Klasse). Ich glaube kaum dass man dir dafür Punkte abzieht.
Java:
publicclassDoppelCharArray{publicstaticvoidmain(String args[]){char[][]vornamen={"Sepp".toCharArray(),"Josef".toCharArray()};printVorname(vornamen[0]);//So kannst du einen Vornamen an eine Funktion übergeben }staticvoidprintVorname(char[] vorname){System.out.println(vorname);}}
Das du das löst will ich ja auch nicht. Habe den mal komplett reingemacht, damit wir nicht wieder einander vorbei reden. ^^ Schließlich muss und will ich das ja auch lernen. Abzüge bekomme ich nicht, da sie nicht bewertet wird. Studium halt. Nur die Klausur nächstes Jahr muss halt hinhauen.... Und deswegen will ich es ja auch alleine lösen, wie bereits am Anfang gesagt. Okay dann versuche ich das mal mit deiner Idee. Vielen Dank für deine Mühe !
Gruß