MezData-Logo

Felder oder Arrays

Würfeln und Namensliste

Die Liste der Würfelnamen ist als Klassenattribut (static) ausgeführt - es muss kein Objekt erzeugt werden. Mittels Inspect kann die Speicherstruktur betrachtet werden.

Wuerfeln
wName[]:Text = {"eins","zwei","drei","vier","fuenf",sechs"}

wuerfeln():GZ

wuerfelnName()

ausgebenNamen()

  • wuerfeln() gibt Werte von 1..6 zurück
  • wName[] enthält die Texte zu den Zahlen

Den Inspektor nutzen, um die Datenstruktur zu betrachten

Verweis

  • wName verweist auf eine Liste (Feld, Array) von Textobjekten.
  • Die Anzahl der Objekte lässt sich mit length bestimmen.
  • Der Indexbereich von wName geht von 0..5
  • wName[0] hat den Wert "eins"
Quellcode [felder/Wuerfeln.java]
public class Wuerfeln{
  static String[] wName={"eins","zwei","drei",
                         "vier","fuenf","sechs"};
 
  static int wuerfeln(){ // Zufall von 1..6 erzeugen
    return (int) (Math.random()*6) +1;
  }
  static void wuerfelnName(){ // ausgeben
    System.out.println(wName[wuerfeln()-1]);
  }
  static void ausgebenNamen(){
    int i;
    for(i=0;i<wName.length;i++){
      System.out.println(wName[i]);
    }
  }
}
Array

Mehrsprachige Texte mit zweidimensionalem Feld

Quellcode [felder/WuerfelnMultilingual.java]
public class WuerfelnMultilingual{
  static String[][] wName =
    {{"eins","zwei","drei","vier","fuenf","sechs"},
     {"one","two","three","four","five","six"}};
  static String[] sprachName = {"deutsch","english"};
  static int sprache = 0;
 
  static void ausgebenSprachen(){
    int i;
    for(i=0;i<sprachName.length;i++){
      System.out.println(i+": "+sprachName[i]);
    }
  }
  static void einstellenSprache(int n){
    if (n<0 || n>= sprachName.length){
      System.out.println("Sprache ist nicht vorhanden: "+n);
    }
    else{
      sprache = n;
      System.out.println("Eingestellte Sprache: "+sprachName[n]);
    }
  }
  static int wuerfeln(){ // Zufall von 1..6 erzeugen
    return (int) (Math.random()*6) +1;
  }
  static void wuerfelnName(){ // ausgeben
    System.out.println(wName[sprache][wuerfeln()-1]);
  }
  static void ausgebenNamen(){
    int i;
    for(i=0;i<wName.length;i++){
      System.out.println(wName[sprache][i]);
    }
  }
}

Zwei ListenIn Englisch

Listen von Listen ergeben zweidimensionales Feld. Hier eine Liste für Deutsch und Englisch.

Erstellen Sie ein Klassendiagramm.

Erweitern Sie das Programm um eine weitere Sprache.

Erweitern Sie das Programm um mehrsprachige Meldungen z.B.: "Language is not available"

Würfelwerte als Bilder ausgeben

Quellcode [felder/WuerfelnBilder.java]
public class WuerfelnBilder{
  static String[][] bilder =
  {{"   ","*  ","  *","* *","* *","* *"},
   {" * ","   "," * ","   "," * ","* *"},
   {"   ","  *","*  ","* *","* *","* *"},
  };
  static int wuerfeln(){ // Zufall von 1..6 erzeugen
    return (int) (Math.random()*6) +1;
  }
  static void info(){
    System.out.println("Das Feld hat "+bilder.length+ 
    " Zeilen und " + bilder[0].length +" Spalten");
  }
  static void ausgebenBild(int n){
    int i;
    for(i=0;i<bilder.length;i++){
      System.out.println(bilder[i][n]);
    }
  }
  static void wuerfelnBild(){
    ausgebenBild(wuerfeln()-1);
  }
}

Ergänzen Sie den Quellcode von WuerfelnBilderGrossAufgabe.java

Lösung anzeigen..
Quellcode [felder/WuerfelnBilderGrossAufgabe.java]
public class WuerfelnBilderGrossAufgabe{
  static String[][] bilderGross =
  {{" ------------- "," ------------- "," ------------- "," ------------- "," ------------- "," ------------- "},
   {"|             |","|###          |","|          ###|","|###       ###|","|###       ###|","|###       ###|"},
   {"|             |","|###          |","|          ###|","|###       ###|","|###       ###|","|###       ###|"},
   {"|             |","|             |","|             |","|             |","|             |","|             |"},
   {"|     ###     |","|             |","|     ###     |","|             |","|     ###     |","|###       ###|"},
   {"|     ###     |","|             |","|     ###     |","|             |","|     ###     |","|###       ###|"},
   {"|             |","|             |","|             |","|             |","|             |","|             |"},
   {"|             |","|          ###|","|###          |","|###       ###|","|###       ###|","|###       ###|"},
   {"|             |","|          ###|","|###          |","|###       ###|","|###       ###|","|###       ###|"},
   {" ------------- "," ------------- "," ------------- "," ------------- "," ------------- "," ------------- "}};  
 
  static int wuerfeln(){ // Zufall von 1..6 erzeugen
    return (int) (Math.random()*6) +1;
  }
  static void ausgebenBildgross(int n){
    // Aufgabe
  }
  static void ausgebenAlleBildergross(){
    // Aufgabe
  }
  static void wuerfelnBild(){
    // Aufgabe
  }
}

Zahlen gross ausgeben

Für ein Terminal soll eine vergrösserte Zahlenausgabe entwickelt werden,
nach Eingabe einer Zahl n wird sie mit '#' dargestellt ausgegeben.
Hier ein Beispiel:

###   ###   #     
   #     #  #  #  
 ##    ##    ###  
#        #     #  
####  ###      # 
Quellcode [felder/ZahlenAufgabe.java]
public class ZahlenAufgabe{
  static String ziffern[][]=
  {{" ## ","   #","### ","### ","#   ","####","  # ","####"," ## "," ## "},
   {"#  #","   #","   #","   #","#  #","#   "," #  ","   #","#  #","#  #"},
   {"#  #","   #"," ## "," ## "," ###","### ","### ","  # "," ## "," ###"},
   {"#  #","   #","#   ","   #","   #","   #","#  #"," #  ","#  #","  # "},
   {" ## ","   #","####","### ","   #","### "," ## ","#   "," ## "," #  "}};
 
  static void anzeigenAlleZiffern(){
    int i,j;  
    for (i=0;i<5;i++){        // fuer jede Zeile
      for (j=0;j<10;j++){     // fuer jede Zahl
        System.out.print(ziffern[i][j]+"  ");   // den String ausgeben
      }
      System.out.println();
    }
  }
  static void ausgebenZahl(int n){
    int i,j;  
    int zahl[]= new int[10];  // Array fuer die Zerlegung in einzelne Ziffern
    int stellen=0;            // Anzahl der Stellen der eingegebenen Zahl
    while (n > 0){            // solange noch Ziffern vorhanden
      // Aufgabe
    }
    for (i=0;i<5;i++){        // Ausgabe der Zahl, fuer jede Zeile
      // Aufgabe
    }
  }
}

Ergänzen Sie den Quellcode von ZahlenAufgabe.java

Lösung anzeigen..

 

Erstellen Sie ein Struktogramm