Ergebnis 1 bis 20 von 33

Thema: Schleifen und Arrays(Java)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #21
    also .. ich hab noch nicht ganz verstanden, was du noch nicht genau verstehst ... du sagst, du kannst mit schleifen umgehen, und du sagst du kannst mit arrays umgehen .. nun ja .. im prinzip ist der code ja nix anderes, als die anwendung des ganzen.

    schleifen schachteln heisst nichts anderes, als eine schleife in eine andere schleife zu packen. Ich erlaeutere das ganze vielleicht nochmal in pseudocode ...

    Code:
     Definiere konstantes Array A mit 7 Char-Elementen und Inhalt "ABCDEFG"
     Definiere drei Ganzzahlen I, J und K
    
     Schleife von I=0 bis I=6
    
      Schleife von J=0 bis I
       Schreibe Zahl (J+1)
      Ende der J Schleife
    
      Schreibe ein Leerzeichen
    
      Schleife von K=0 bis (6-I)
       Schreibe Array-Element A[K]
      Ende der K Schleife 
    
      Schreibe eine Zeilenendzeichen
    
     Ende der I Schleife
    
    Ende des Programmes
    Zur Erklaehrung:
    Die I-Schleife wird insgesamt 7 mal durchlaufen (0 bis 6).

    Im ersten Durchlauf ist I=0. Daher wird die J-Schleife von 0 bis 0, also einmal mit J=0 durchlaufen, und somit einmal (J+1), also 1 ausgegeben.

    Der 1 folgt nun die Ausgabe eines Leerzeichens.

    Nun wird die K-Schleife abgearbeitet. Diese lauft von K=0 bis K=(6-I). Da immernoch I=0 ist, wird die K-Schleife von K=0 bis K=6 durchlaufen, also 7 mal. Da Arrays im allgemeinen Null-Indexiert sind, ihr erstes Element also den Index 0 hat, wird beim ersten Durchlauf der K-Schleife A[0] ausgegeben. Das 0te Element des Arrays ist "A". Im zweiten Durchlauf der K-Schleife ist K=1, also wird "B" ausgegeben. Dies geht solange weiter, bis K=6 ist und "G" ausgegeben wurde.

    Als letztes wird einfach die Ausgabe der ersten Zeile mit einem Zeilenprung beendet. Somit sieht man auf dem Bildschirm

    1 ABCDEFG

    Damit ist die I-Schleife das erste mal Abgearbeitet. Nun folgt der zweite Durchgang. Hierbei gilt I=1.

    Die J-Schleife wird wieder von J=0 bis I abgearbeitet, also 2 mal, einmal fuer J=0 und einmal fuer J=1. Deshalb stehen jetzt die Zahlen 1 und 2 nebeneinander (da es ja in der Ausgabe hiess J+1).

    Nach dem Leerzeichen wird wieder die K-Schleife von K=0 bis 6-I abgearbeitet, also von 0 bis 5. Deshalb wird sie einmal weniger ausgefuehrt, als beim ersten mal. Nach Beendigung des zweiten Durchlaufs der I-Schleife erhalten wir somit

    12 ABCDEF

    Dieser Vorgang wiederholt sich solange, bis die I-Schleife mit I=6 durchlaufen wurde. Jedesmal wird die J-Schleife um eins laenger und die K-Schleife um einen Durchlauf kuerzer.

    Dadurch, dass du die Schleifen ineinander geschachtelt hast, erhaelst du somit die gewuenschte Ausgabe

    1 ABCDEFG
    12 ABCDEF
    123 ABCDE
    1234 ABCD
    12345 ABC
    123456 AB
    1234567 A

    In C++ (und in Java sollte das Ganze im prinzip genau so aussehen) wollten die Schleifen in etwa so lauten:

    Code:
    for (int I=0; I<=6; I++)
     {
       for (int J=0; J<=I; J++)
        { printf("%d",J+1); }
       printf(" ");
       for (int K=0; K<=6-I; K++)
        { printf("%c",A[K]); }
       printf("\n");
     }
    Den Bereich mit den Sortieralgorithmen ueberlasse ich vorerst mal anderen ^^

    Gruss Ineluki

    Geändert von Ineluki (04.06.2004 um 19:18 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •