Array Verschlüsselung

Timo97

Mitglied
Hallo liebes Forum, ich habe ein kleines Problem.
In der Schule haben wir eine kleine Hausaufgabe bekommen. Wir sollen einen zweidimensionalen Array verschlüsseln. Das heißt einfach nur einmal drehen wenn wir 3x das Programm ausgeführt haben. Nun habe ich aber das Problem das es mir ein Fehler in Zeile 15 anzeigt. Bzw. muss ich ja eine Variable für immer einspeichern. Das hab ich in einer neuen Klasse versucht, die diese speichert und wieder weitergibt. Es würde einfacher gehen wenn ich eine einfache Tastatureingabe mache die sich beliebig oft wiederholen lässt, das will ich aber nicht. Ich wäre sehr erfreut wenn mich jemand eines besseren belehren kann 🙂 und mir meine Fehler zeigt.

Java:
public class arrayTabelleVerschluesselung {

    public static int i; int p;

    public static void main(String[] args) {
        int i = 0 + 1;
        i = i++;
        int p = Variable.p;
        int rest = p % 3;
        if (rest == 0) {
        String[][] arry = new String[2][2];
        arry[0][0] = "Treffpunkt";
        arry[1][0] = "Zeitpunkt";
        arry[2][0] = "Name";
        arry[0][1] = "Nachname";
        arry[1][1] = "Freund";
        arry[2][1] = "Unternehmung";
        arry[0][2] = "Wer bezahlt";
        arry[1][2] = "Wer fährt";
        arry[2][2] = "Dauer";
         
        verschluesseln1(arry;
        }
     
        else {
            String[][] arry = new String[2][2];
            arry[0][0] = "Treffpunkt";
            arry[1][0] = "Zeitpunkt";
            arry[2][0] = "Name";
            arry[0][1] = "Nachname";
            arry[1][1] = "Freund";
            arry[2][1] = "Unternehmung";
            arry[0][2] = "Wer bezahlt";
            arry[1][2] = "Wer fährt";
            arry[2][2] = "Dauer";
            System.out.println(arry);
        }
    }
 
    //1x drehen
    public static void verschluesseln1(String[][] arry) {
        String[][] kopie1;
        kopie1 = arry.clone();
        kopie1[0][2] = "Treffpunkt";
        kopie1[0][1] = "Zeitpunkt";
        kopie1[0][0] = "Name";
        kopie1[1][2] = "Nachname";
        kopie1[1][1] = "Freund";
        kopie1[1][0] = "Unternehmung";
        kopie1[2][2] = "Wer bezahlt";
        kopie1[2][1] = "Wer fährt";
        kopie1[2][0] = "Dauer";
     
        System.out.println(kopie1);
     
    }

}
class Variable {
 
    static int i = arrayTabelleVerschluesselung.i;
    static int p = i;
 
}
 
Zuletzt bearbeitet von einem Moderator:
Dein Code ist ein Riesenchaos, räum das vielleicht erstmal auf. Außerdem glaube ich nicht, dass du per Hand Werten tauschen sollst, sonder das muss programmatisch passieren.

In Zeile 25 hast du schlicht ne Klammer vergessen und bekommst deswegen Syntaxfehler.
 
Zuletzt bearbeitet:
Hi, du willst bei einem zweidimensionalen String-Array irgendwie die Werte vertauschen. Weiter hab ich dich leider nicht verstanden. Kannst du dich bitte ein wenig verständlicher ausdrücken?

Dann kann ich dir vielleicht helfen 🙂
 
X5-599 hat recht, das liegt daran das du ein dein Array mit einer Größe von 2 Stellen erstellt hast, aber durch 0 und 1 schon beide belegt sind, vondaher kriegst du in Zeile 15 warscheinlich eine ArrayOutOfBounds Exception.
Den Fehler kannst du aber ganz leicht beheben, indem du beim erstellen vom Array einfach deine Zweien zu Dreien machst.

und noch eine Frage, was sollen die ersten zwei Zeilen in deinem Code machen?
Ich vermute mal eine For-Schleife, aber wenn nicht dann schreib doch einfach i = 2;

Vieleicht solltest du eine IDE wie Eclipse benutzten, die dir auch so einige Fehler zeigt.
(z.B. dein Methodenaufruf am Ende deiner Main-Funktion da fehlt eine Klammer zu) 😉
 
Danke für die vielen Antworten, einen Algorithmus für die Vergabe ist vermute ich mal von unserem Lehrer nicht erfordert. Da wir noch sehr viele haben die nichtmal die einfachsten Programme schreiben können. Außerdem benutze ich schon Eclipse Mars und habe keine Fehler angezeigt bekommen. Im Prinzip soll das eine einfache Tabelle sein die sich 90° dreht bei 3x ausführen. Die Grundidee von mir war das ich die Aufrufe des Programmes in einer neuen Klasse speicher und diese dann später wieder aufrufe. Ich weiß das ganze ist noch nicht so ganz fertig geworden deshalb sieht es auch ein klein wenig chaotisch aus. 🙂 Komisch war auch das es so in der Schule geklappt hat und er die Tabelle ausgeworfen hat (Da benutzen wir Eclipse Classic, da aber die Download Server für das Programm unter aller Sau sind benutze ich Mars). Das Programm ist noch nicht fertig deshalb könnte man das i erstmal weglassen. Wollte nur ausprobieren ob es die Zahl in der Klasse Variable speichert, und nach 3x dreht (Da wäre mir wohl was eingefallen für 3 verschiedene Methoden). Nach 6x soll sie dann ja sozusagend auf dem Kopf stehen (180° gedreht). Das einzige Problem was ich habe ist, ich weiß nicht wie ich den Zähler dauerhaft speicher damit ich nach 3x ausführen in Eclipse das Ding sich dreht.
 

Neue Themen


Zurück
Oben