www.r-krell.de
Webangebot für Schule und Unterricht, Software, Fotovoltaik und mehr

Willkommen/Übersicht  >  Informatik  >  Informatik mit Java, Teil e)   >  LinADT-Test


Testprogramm für die (alten)
linearen abstrakten Datentypen
Keller und Schlange (für bel. Objekte)

Bedienungsanleitung:

Erst muss eine Speicherstruktur gewählt werden,
bevor Daten eingegeben werden können!
Bei diesen alten Speichern können Daten verschiedener Typen
(hier Zahlen, Buchstaben oder Texte) bunt gemischt
im selben Speicher verwaltet werden.
Bei 'rein:Zahl' kann eine Ganzzahlen oder Dezimalzahl
(aber nur mit Punkt statt Komma) eingegeben werden,
bei 'rein: Zchn' kann jeweils ein einzelnes Schriftzeichen (Buchstabe)
und bei 'rein: Text' auch ein längerer Text eingeben werden.

Vermeiden Sie den Druck auf die (unbelegt)-Taste, die eigentlich noch
ohne Funktion ist, aber den Zugriff auf den bereits gefüllten Speicher ruiniert.
Sie müssen anschließend erst wieder einen neuen, leeren Speicher anlegen!




Bitte speichern Sie zunächst die Programmdatei

Keller&Schlange_alt (r-krell.de).jar (23 kB)

auf Ihrem Computer und starten ("öffnen") Sie dann die herunter geladene Datei durch Anklicken.
Am besten schieben Sie danach das geöffnete Programmfenster nach oben links,
sodass Sie gleichzeitig diese Seite lesen können.

Mehr zum Start von Java-Programmen als Application (und nicht mehr als Applet) auf meiner Extraseite Übersicht über meine Java-Programme - Appletprobleme und Downloads (erscheint in neuem Browser-Tab)





Wie auf der Seite e) berichtet, stelle ich den Schülerinnen und Schülern in meinem Unterricht eine Oberfläche zur Verfügung, in der sie die selbstgeschriebenen Implementationen der verschiedenen Speicherstrukturen testen können.

Natürlich verhalten sich verschiedenen Kellerrealisationen völlig gleich und können jetzt hier im Test an der Funktion/Ausgabe nicht unterschieden werden. Keller (auch stacks genannt) sind eben LIFO-Speicher (last in - first out): Die gespeicherten Elemente kommen in umgekehrter Reihenfolge wieder raus, das zuletzt mit rein gespeicherte Element, das immer auch mit zeige angesehen werden kann, zuerst.
Die Schlangen (auch als Warteschlangen oder als queues bezeichnet), die auch auf unterschiedliche Weise realisiert werden können und deren Funktionsfähigkeit hier getestet werden kann, sind hingegen LIFO-Speicher (first in - first out): Das zuerst mit rein gespeicherte Element steht vorne, wird mit zeige gezeigt und kann mit raus entfernt werden. rein fügt die Elemente hinten an.

Da die Datenstrukturen jeweils allgemein für nicht näher spezifizierte Objekte ausgelegt wurden, kann man verschiedene Wrapper-Klassen wählen, von denen passende Objekte gebildet werden. Dadurch werden in Wirklichkeit einheitlich Objekte gespeichert bzw. verwaltet, wobei jedes Objekt mit einem Datum eines anderen Typs Typs gefüllt sein kann. Das macht die Speicher universell verwendbar. Aber Achtung: Das widerspricht dem Java-Konzept der Typsicherheit. Inzwischen sollte man lieber parametrisierte Keller oder Schlangen wählen, um Typprüfungen zu erlauben - vgl. meine Java-Seite e) bzw. das Java-Programm mit Speichern für jeweils nur einen, vorher festzulegenden eindeutigen Typ auf meiner Seite if-e-appliste.htm.

Hier befinden sich im Programmtext der Oberfläche Programmzeilen für die Auswahl von den drei beispielhaft erlaubten Datentypen für die Einbettung jeweils in ein Objekt:

// Bei der Eingabe wird je nach Knopfdruck ein Objekttyp gewählt:

  
String ein = tfEingabe.getText();
  Object Obj = 
null;
  
switch (objekttyp)  //je nach Knopfdruck enthält diese Variable einen der 3 konstanten Werte
  
{
   
case ALS_ZAHL    : try
                      
{
                        Obj = 
new Double (ein);  //Wrapper-Objekt für Kommazahlen
                        
break;
                      }
                      
catch (Exception nf)
                      {
                        ausgabe.append (
"** "+ein+" keine gültige Zahl -- neu eingeben!\n");
                        
return;
                      }
   
case ALS_ZEICHEN : Obj = new Character (ein.charAt(0));
                      
break;                     //Wrapper-Objekt für Schriftzeichen
   
case ALS_ZKETTE  : Obj = ein;                 //String ist bereits ein Objekttyp
  
}
  datenstruktur.rein (Obj);


// Identifikation eines Objekts bei der Ausgabe: Java erkennt Objekttypen mit instanceof

  
Object Obj = datenstruktur.raus();
  
if (Obj instanceof Double)
  {
     aus = 
"Zahl "+Obj;  //hier und im Folgenden wird ausgenutzt, dass Java bei ".."+... implizit
  }                      
//Objekte in Textform umwandelt -- wie explizit bei ".."+Obj.toString();
  
else if (Obj instanceof Character)
  {
     aus = 
"Zeichen '"+Obj+"'";
  }
  
else if (Obj instanceof String)
  {
     aus = 
"Zeichenkette \""+Obj+"\"";
  }
  ausgabe.append (aus+
" entfernt!\n");


zurück zur Seite „Informatik mit Java, Teil e)"


zum Anfang dieser Seite
Willkommen/Übersicht   -   Was ist neu?   -   Software   -   Mathematik   -   Physik   -   Informatik   -   Schule: Lessing-Gymnasium und -Berufskolleg   -   Fotovoltaik   -   & mehr   -   Kontakt: e-Mail,  News-Abo, Gästebuch, Impressum   -   Grußkarten, site map, Download und Suche

Diese Seite ist Teil des Webangebots https://www.r-krell.de.