Muster und Schleifen

Hallo,
ich muss in der wöchentlichen Übung eine Ausgabe mit einer Methode vorkommen(String wort) generieren, die wie folgt aussieht:

Laaaaa
Lapppp
Lapttt
Laptoo
Laptop



Über Tipps und mögliche Lösungsvorschläge würde ich mich sehr freuen, danke im voraus.
 
Mensch Leute... ist es so schwer mal eine ordentliche, aussagekräftige Frage zu stellen?
Die Frage sagt genau nichts über die Aufgabe aus. Du klatscht eine Methodensignatur + Ausgabe hin und jetzt soll man erraten wie die Aufgabe ist?
Außerdem: was hast du bereits gemacht?
 
???

Welches 'wort' wird übergeben?
Nach welchen Regeln soll es zu dieser kryptischen Ausgabe kommen?
Was hast Du denn bereits an Code ??

Ein bisschen musst Du schon mitmachen!!
VG Klaus
 
Tut mir leid für diese Aufgabenstellung, jedoch habe ich selbst diese Aufgabe genau so gestellt bekommen. Das Wort, das übergeben wird ist irgendein String. Bisher habe ich eine for-Schleife, die mir die einzelnen Buchstaben als char ausgeben, jedoch habe ich keinen Ansatz für die Berechnung der einzelnen Zeichen.
 
Wenn ich raten soll: Das übergebene Wort ist "Laptop". Der Rest steht da.

Edit: Das ist doch eine lustige Aufgabenstellung. Überlege welches Wort an die Methode übergeben werden und wie die Verarbeitung erfolgen muss, um die gegebene Ausgabe zu erzeugen.
 
Ich glaube so schwer ist das doch nicht oder?
Die Methode bekommt einen String übergeben also "Laptop".
Das Wort soll "verschleiert werden"!
Der erste durchlauf gibt den 2 Buchstaben aus Laaaaa <- so lange der String ist
dann kommt der 2 Durchlauf und gibt nach dem a als La das p so lange aus wie der String lang ist.
und immer so weiter

Fertig!
Ist doch gut gestellt 😀
 
Ich glaube so schwer ist das doch nicht oder?
Die Methode bekommt einen String übergeben also "Laptop".
Das Wort soll "verschleiert werden"!
Der erste durchlauf gibt den 2 Buchstaben aus Laaaaa <- so lange der String ist
dann kommt der 2 Durchlauf und gibt nach dem a als La das p so lange aus wie der String lang ist.
und immer so weiter

Fertig!
Ist doch gut gestellt 😀
aber wie bekomme ich das richtig als code hin?
 
die sollte irgendwie etvl rekursiv den Buchstaben n-1 für die restliche Wortlänge ausgeben
Rekursiv ist das nicht, aber "für die restliche Wortlänge" ist korrekt.

Die äußere Schleife ist für die Zeilen zuständig und die innere Schleife für die Wiederholungen innerhalb einer Zeile. Schau dir dein gewünschtes Ergebnis an, welche Schleife für welche Ausgabe zuständig ist:

Code:
Äußere Schleife | Innere Schleife
L                          aaaaa
La                        pppp
Lap                      ttt
Lapt                     oo
Lapto                   p

Damit kannst du jetzt auch erkennen, wie lange die innere Schleife in Abhängigkeit von der äußeren Schleife laufen muss.

In den Schleifenrümpfen benötigst du dann nur noch print(), println(), String.substring()

aber wie bekomme ich das richtig als code hin?

Fang doch mit dem an, was du jetzt weißt.
 
Zuletzt bearbeitet:
Ich gebe dir noch einen Tipp fange mit LLLLL an 🙂
die kannst du später wieder raus nehmen 😉

Hab mir den Kopf zerbrochen da ich dachte das muss mit einer Schleife erledigt werden 😀
Wenn du gar nicht weiter weißt kann ich dir das in Pseudocode hin tippen doch dann ist der Lerneffekt nicht mehr so intensiv 🙁

LG
 
public static void muster (String wort) {

wort = "Laptop";

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

for (int j=0; j<wort.length();j++) {

System.out.println(wort);

}

}

}
 
Java:
// Bitte die gesamte Klasse inkl. "main()" ergänzen, damit es lauffähig wird.

public static void muster(String wort) {

        wort = "Laptop"; //Wozu dies? "wort" ist doch ein Parameter!

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

            for (int j=0; j<wort.length();j++) { // Mach dir mal Gedanken, wie lange die Schleife laufen muss (siehe Post weiter oben).

                System.out.println(wort); // Naja..., aber das weißt du ja selbst

            }

        }

    }

Sorry, wenn das "alles" ist...

Etwas mehr Eigeninitiative ist schon notwendig.

Ich habe noch ein paar Kommentare eingefügt
 
Zuletzt bearbeitet:
Sorry, wenn das "alles" ist, dann ist dir nicht zu helfen. Etwas mehr Eigeninitiative ist schon notwendig.

Ach quatsch jedem kann geholfen werden 🙂 (nur mir nicht 😀)
Naja spaß bei seite 🙂


Fangen wir mal ganz klein an:
Java:
public static void muster (String wort) {

    wort = "Laptop"; //das ist unsinn du gibst das wort "Laptop" ja als Paramet mit

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

        for (int j=0; j<wort.length();j++) {

            System.out.println(wort);

        }

    }

Code:
erstelle i, solange i kleiner ist als der input, erhöhe i
            erzeuge einen neuen String
            erstelle j, solange j kleiner ist als der input, erhöhe j
                ist j <= i
                    neu erzeugter String += das Char an der Stelle von j;
                anders neu erzeugter String += das Char an der Stelle von i;
            }
            System.out.println(neu erzeugter String);
 
Java:
[B]public[/B] [B]static[/B] [B]void[/B] muster (String wort) {

        wort = "Laptop";

        [B]char[/B][] z = {};

        String newwort="";

        [B]for[/B] ([B]int[/B] i=0; i<wort.length(); i++) {

            wort= newwort;

            [B]for[/B] ([B]int[/B] j=0; j<wort.length();j++) {

                [B]if[/B] (j<=1) {

                    newwort+=z[j];

                    newwort+=z[j];

                }

                System.[B][I]out[/I][/B].println(newwort);

            }

        }

    }

Es erzeugt bei mir keine Ausgabe..
 
ja klar weil du in Java keine Variablen nutzen kannst die nicht initialisiert sind.

so z. B. kann der Code aussehen nun schreib diesen in die Methode.
Wenn etwas nicht geht sag nochmal Bescheid!
Java:
String input = "Laptop";
        
        for(int i=0;i<input.length();i++) {
            String output = "";
            for(int j=0;j<input.length();j++) {
                if(j<=i)
                    output+=input.charAt(j);
                else output+=input.charAt(i);
            }
            System.out.println(output);

        }
 

Zurück
Oben