Graphischer Editor für JavaKara

Größe: px
Ab Seite anzeigen:

Download "Graphischer Editor für JavaKara"

Transkript

1 Graphischer Editor für JavaKara Studienarbeit im Fach Informatik vorgelegt von Johannes Handl geb in Mannheim angefertigt am Institut für Informatik Lehrstuhl für Informatik 2 Programmiersysteme Friedrich-Alexander-Universität Erlangen Nürnberg (Prof. Dr. M. Philippsen) Betreuer: Franz X. Forman, Prof. Dr. M. Philippsen Beginn der Arbeit: Abgabe der Arbeit:

2

3 Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als der angegebenen Quellen angefertigt habe und dass die Arbeit in gleicher oder ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegen hat und von dieser als Teil einer Prüfungsleistung angenommen wurde. Alle Ausführungen, die wörtlich oder sinngemäß übernommen wurden, sind als solche gekennzeichnet. Der Universität Erlangen-Nürnberg, vertreten durch die Informatik 2 (Programmiersysteme), wird für Zwecke der Forschung und Lehre ein einfaches, kostenloses, zeitlich und örtlich unbeschränktes Nutzungsrecht an den Arbeitsergebnissen der Studienarbeit einschließlich etwaiger Schutzrechte und Urheberrechte eingeräumt. Erlangen, den Johannes Handl

4

5 Studienarbeit Thema: Graphischer Editor für JavaKara Hintergrund: Mit dem G8 wird in Bayern das Pflichtfach Informatik eingeführt. Der Lehrplan der 6. und 7. Jahrgangsstufe steht unter der Leitidee Einführung in die objektorientierte Modellierung. Die Schülerinnen und Schüler lernen dieses Konzept in der Darstellung von Informationen mittels Standardsoftware kennen. Am Ende der 7. Klasse erhalten sie mit einem einfachen Programmiersystem einen ersten Einblick in die Beschreibung von Abläufen durch Algorithmen. In der 9. Klasse sollen umfangreichere Algorithmen entwickelt und im folgenden Jahr die Konzepte der Objektorientierung anhand einer geeigneten Sprache vertieft werden. Als Sprache bietet sich hier Java an, die die Schüler altersgemäß schon ab der 7. Jahrgangsstufe erlernen können: In der 7. Jahrgangsstufe kann man mit dem Marienkäfer Kara, der in der ETH-Zürich entwickelt wurde, spielerisch in die grundlegenden Programmierkonzepte einführen. Kara wird in Java programmiert. Eine Klasse JavaKaraProgramm, die geeignete Methoden zur Fortbewegung des Käfers und Sensoren für die Wahrnehmung der Umwelt enthält, wird vom System zur Verfügung gestellt. Mithilfe der Grundstrukturen Sequenz, Auswahl und Wiederholung bzw. der erwähnten Methoden lassen sich Aufgaben mit anspruchsvollem Schwierigkeitsgrad schon in dieser Altersgruppe lösen. Mit dem Einsatz der Programmiersprache Java sehen die Schülerinnen und Schüler, dass sich die Konzepte der objektorientierten Modellierung (Objekte, Attribut, Attributwert und Methoden, sowie die Punktnotation), die sie bei der Standardsoftware kennen gelernt haben, auch praktisch anwenden lassen. In der Schule sollte JavaKara mit einem komfortablen Editor ausgestattet sein. Aufgabenstellung: Im Rahmen der Arbeit soll eine graphische Programmierumgebung erstellt werden, mit der man per Drag and Drop einfache Programme mit den Bausteinen Sequenz, Wiederholung und Auswahl entwerfen kann. Die Programmieroberfläche soll weiter den objektorientierten Entwurf von Algorithmen mit Java unterstützen. In der Lernumbgebung Kara lassen sich die Objekte Kara und Welt einsetzten. Die Oberfläche soll eine Sicht auf deren Methoden und Attribute mit den Attributwerten gewähren und deren Verwendung im Programm erleichtern. Ziel ist es, ein Hilfsmittel zu haben, dass den Blick stärker auf den Entwurf des Algorithmus als auf die Syntaxregeln der Sprache lenkt, sowie die Schreibarbeit und Fehlerhäufigkeit im Unterricht minimiert. Betreuung: Bearbeiter: Franz X. Forman, Prof. Dr. M. Philippsen Johannes Handl

6 Abstract In dieser Arbeit wird die Implementierung eines graphischen Editors vorgestellt, der für den Einsatz im Schulunterricht in Verbindung mit einem Programmiersystem wie JavaKara gedacht ist. Der Code wird mittels Nassi Shneiderman Diagrammen visualisiert, wobei die Eingabe vorwiegend mit Hilfe der Maus (Drag & Drop) und Copy & Paste erfolgt. Als Zielcode werden die Programmiersprachen Loop/While und Java unterstützt. i

7 ii

8 Contents 1 Einführung 1 2 Installation Installationsvoraussetzungen Installations (Zip-Datei) Installation Nassi Shneiderman Diagramme Die Sequenz Fallunterscheidung Abweisende Schleife Nicht abweisende Schleife Verwendete Konzepte der graphischen Programmierung Copy und Paste Drag und Drop Autocompletion Fehlervermeidung Arbeiten im Java-Mode Java Beschreibung Die Mode-Datei Das Java-Programm Java Beschreibung Die Mode-Datei Das Java-Programm Java Beschreibung iii

9 Contents Die Mode-Datei Das Java-Programm Java Beschreibung Die Mode-Datei Das Java-Programm Loop / While Spezifikation Loop / While Datentyp Integer Variablenbezeichner Macroaufruf Zuweisung If Loop Loop Der Mode Toolbar und Punktnotation Der Toolbar Eintrag für ein Objekt Eintrag für eine Methode Eintrag für ein Attribut Erweitern von JavaKara Anpassen der Template-Datei Anpassen oder Erstellen einer neuen Toolbar-Datei Die Konfigurationsdateien Allgemeine Konfiguration des Editors Graphik Konfiguration Einfacher Konfigurationseintrag Vererbung Angabe von RGB-Farbwerten Übersicht über die konfigurierbaren graphischen Objekte Übersicht über die konfigurierbaren Features Die Modes-Datei Die Mode-Datei iv

10 Contents Module Menü Konfiguration des Toolbars Übersicht über die Flags bei Toolbar Übersicht über die Datentypen bei Toolbar Code-Generierung Appendix A Buffer Window Event Menu Command Nsd Buffer Appendix B Toolbar Konfigurationsdatei (keine Punktnotation) Toolbar Konfigurationsdatei (Punktnotation) Mode Konfigurationsdatei Java (5) Graphik Konfigurationsdatei v

11 Contents vi

12 List of Figures 3.1 Sequenz (SVG-Export) Fallunterscheidung (SVG-Export) Abweisende Schleife (SVG-Export) Nicht abweisende Schleife (SVG-Export) Das Programm Circle von Java1 (SVG-Export) Das Programm PassTree von Java2 (SVG-Export) Das Nassi Shneiderman Diagramm von Java4 (SVG-Export) Das Nassi Shneiderman Diagramm von Java4 (SVG-Export) Das Loop-Programm (SVG-Export) Das Loop-Programm (Loop-Export) Der Java-Export des Loop-Programms Eintrag in der ToolBar Konfigurationsdatei für ein Objekt Eintrag in der ToolBar Konfigurationsdatei für eine Methode Eintrag in der ToolBar Konfigurationsdatei für ein Attribut JavaKara Template Die neue Basisklasse für Programme Die neue Basisklasse für JavaKara Die neue JavaKara Klasse vii

13 List of Figures viii

14 1 Einführung Seit einigen Jahren wird Informatik in größerem Umfang an Gymnasien und Realschulen unterrichtet. Für diesen Unterricht werden neue Materialien benötigt, die dem Schüler einen einfacheren und, wenn möglich, einen auch auf andere Weise attraktiveren Zugang zu der Materie erlauben. Anders als an der Universität, wo ein Student der Informatik die Täler und Durststrecken des praktischen Programmierens eher alleine durchwandert, findet im Schulunterricht das Programmieren auch im Klassenverband statt. Der begrenzte Zeitrahmen, der einem durch die Schulstunden gesteckt ist, macht eine stärkere Unterstützung des beginnenden Programmierers bei seinen ersten Schritten erforderlich. Für nicht triviale Programmieraufgaben fehlt oft einfach die Zeit. Unerwartet große Probleme beim Verstehen des Algorithmus einiger weniger Schüler oder zahlreiche nichts sagende Fehlermeldungen können jedes auch nur zu gut durchdachte Stundenkonzept ins Wanken bringen. Um auch größere Projekte im Unterricht bearbeiten zu können, ist daher sowohl eine höhere Effizienz bei der Programmierung (begrenzter Zeitrahmen), als auch das schnelle Auffinden oder gar Vermeiden von Fehlern sowie eine anschauliche Visualisierung des Ablaufs des Algorithmus wünschenswert. In der Praxis spielen Themen wie Effizienzgewinn und Fehlerminimierung ebenfalls ein große Rolle (Softwareproblem). Aktuelle IDEs wie Visual Studio, Eclipse oder SharpDevelop verfügen über zahlreichen graphischen Features, welche einem das Programmieren und insbesondere das Auffinden und Vermeiden von Fehlern erleichtern. Einfache graphische Oberflächen werden häufig nur noch per Drag and Drop erstellt und aus UML-Diagrammen lassen sich vollständige Klassen generieren, was meist weitaus schneller gelingt, als das Schreiben des Codes per Hand. Auch für den Schulunterricht ist ein System hilfreich, welches den Schüler so weit wie möglich - auch visuell - unterstützt. Dabei hätte die Verwendung eines solchen Systems den zusätzlichen Vorteil, dass der Schüler das Arbeiten mit einer visuellen Programierumgebung en passant erlernt. Dies erscheint umso wichtiger, als visuelle Programmierung in näherer Zukunft eine größere Rolle spielen wird. Für das verständliche Präsentieren von Algorithmen bietet sich der Einsatz von kleinen graphischen Programmierwelten an. Es ist oft einfacher einen Sortieralgorithmus mit Hilfe eines Kartenspieles zu erlernen (jeder Kartenspieler kann schon einen Algorithmus!) als mit Hilfe von irgendwelchen Buchstaben oder Zahlen. Eine Vielzahl von bekannten Problemen lässt sich gut visualisieren und/oder auf einfache Probleme in einer Modellwelt reduzieren. 1

15 1 Einführung Das System Kara [1] ist eine kleine graphische Programmierwelt, welche die Programmierung seines Protagonisten, des Marienkäfers Kara, mit Hilfe von Automaten, Turing-Maschienen, Lego-Mindstorms oder Java erlaubt. (Der Marienkäfer Kara lebt in einer friedlichen Welt voller Kleeblätter, Bäumen und Pilzen und hat Sensoren, mit denen er solche in seiner Umgebung erkennen kann. Zusätzlich kann er Kleeblätter aufheben und hinlegen und Pilze verschieben.) Die vorliegende Arbeit erweitert das System Kara um die Möglichkeit, Kara mittels Nassi Shneiderman Diagrammen zu programmieren, wobei die Programmierung weitestgehend graphisch in einem externen Editor erfolgt. Der Code in den Diagrammen kann dabei wahlweise in Loop, While oder Java verfasst werden. Das Einfügen des Codes erfolgt dabei vorwiegend mittels Drag & Drop und Copy & Paste, die Eingabe per Tastatur wird jedoch gleichfalls unterstützt. Mit dem Editor erstellte Dateien können in einem internen Format (.nsd-dateien) gespeichert und wieder eingelesen werden Auch kann man diese in eines der Exportformate konvertieren. Im Moment kann man NSD-Dateien als Loop/While, Java oder SVG abspeichern. Menüs, Tastaturkürzel und der Toolbar des Editors sowie die Darstellung der Eingabefenster und NSD-Diagramme lassen sich mittels Konfigurationsdateien konfigurieren. Zwischen diesen einzelnen Konfigurationen, sogenannten Modes, kann man zur Laufzeit umschalten. Die Code-Generierung läßt sich in hohem Grade ohne eigene Programmierung anpassen. Diese Konfigurierbarkeit des Editors ermöglicht den Einsatz des Editors auch für ähnliche Programmierwelten oder die Erweiterung einer solchen. So kann der Marienkäfer Kara um weitere Methoden oder Attribute erweitert werden, ohne dass man an der Oberfläche des Editors und im generierten Code einen Unterschied zwischen den ursprünglichen Methoden und den neu hinzugefügten erkennt. 2

16 2 Installation 2.1 Installationsvoraussetzungen Das System ist vollständig in Java geschrieben und sollte daher unter jedem Betriebsystem laufen, sofern auf diesem die folgenden Programme installiert sind: JRE 5.0 (Java Runtime Environment) JSDK 5.0 (Java Software Development Kit) 2.2 Installations (Zip-Datei) Die Zip-Datei enthält die folgenden eigenständigen Programme: antlr.jar (Version 2.7.5) allkara.jar Bei allkara handelt es sich um das ursprüngliche jar-file, wobei jedoch einige zusätzliche Class-Files eingefügt wurden. In der Zip-Datei befinden sich die folgenden BAT-Dateien für die Arbeit unter Windows. compilensd.bat: Kompiliert den Code startkara.bat: Startet Kara (ursprüngliche Startdatei für allkara.jar) startnsd.bat: Startet den Editor 2.3 Installation Falls der Pfad richtig konfiguriert ist, reicht es aus, die Zip-Datei an einer beliebigen Stelle zu entpacken. Es ist jedoch wichtig, darauf zu achten, dass es sich bei dem ausgeführten Java wirklich um Java 5.0 handelt. Sollten bei Aufruf der Java-Klassen Versionsprobleme auftreten, so kann man die Java-Dateien mittels Aufruf der Datei compilensd.bat neu kompilieren. 3

17 2 Installation 4

18 3 Nassi Shneiderman Diagramme Nassi Shneiderman Diagramme, benannt nach ihren Schöpfern Dr. Ike Nassi und Dr. Ben Shneiderman, dienen dem Entwurf und der Visualisierung von Algorithmen. (Eine andere Bezeichnung für Nassi Schneiderman Diagramm ist Struktogramm). Die Idee hinter Nassi Shneiderman Diagrammen ist, dass sich jedes Problem in kleinere Teilprobleme zerlegen läßt, bis es irgendwann nur noch aus Grundstrukturen wie Sequenzen, Fallunterscheidungen oder Schleifen besteht, die sich gut visualisieren lassen. Die im Editor implementierten Grundstrukturen und ihre Darstellung werden im folgenden kurz beleuchtet. 3.1 Die Sequenz Die Sequenz ist ein Abfolge von Befehlen. Oft werden die einzelnen Befehle auch durch vertikale Striche getrennt (so auch im Editor bei der Erstellung). Figure 3.1: Sequenz (SVG-Export) 5

19 3 Nassi Shneiderman Diagramme 3.2 Fallunterscheidung Die Fallunterscheidung entspricht einem normalen If-Statement, wie man es aus Java oder anderen Programmiersprachen kennt. Allerdings gibt es keinen else if -Block und der then und der else -Block sind obligatorisch. Figure 3.2: Fallunterscheidung (SVG-Export) 3.3 Abweisende Schleife Bei einer abweisenden Schleife wird der enthaltene Block nur dann durchlaufen, wenn die Bedingung zu true evaluiert. Die abweisende Schleife ist analog zur While-Schleife in Java. Figure 3.3: Abweisende Schleife (SVG-Export) 3.4 Nicht abweisende Schleife Diese Schleife wird mindestens einmal durchlaufen, danach verhält sie sich wie die While- Schleife. Sie entspricht der Do-Schleife in Java. Figure 3.4: Nicht abweisende Schleife (SVG-Export) 6

20 4 Verwendete Konzepte der graphischen Programmierung Bei der Eingabe der Nassi Shneiderman Diagramme werden die meisten bekannter Techniken eines TextEditors unterstützt. Der Editor arbeitet jedoch nicht mit Text, sondern mit graphischen Objekten. 4.1 Copy und Paste Wie in jedem Editor hat man auch im NSD-Editor die Möglichkeit, Teile des Codes auszuwählen, zu kopieren, auszuschneiden oder an anderer Stelle wieder einzufügen. Beim NSD-Editor werden diese Kopieraktionen auf der Ebene der graphischen Repräsentationen für Statement, Schleifen oder Fallunterscheidungen durchgeführt. Man kann einzelne Statements kopieren, aber auch mehrere Statements auf einmal. Dies erfolgt, indem man eine oder mehrere Statements mit Hilfe der Maus oder auch der Pfeiltasten auswählt. Wie beim Windows Explorer kann man, wenn man die Shift- Taste drückt, einen ganzen Bereich von Statements auswählen. Drückt man zeitgleich zur Mausaktion die Strg-Taste, so kann man mehrere (auch) voneinander entfernte Statements auswählen. 4.2 Drag und Drop Im bestehenden Diagramm kann man ganze Blöcke verschieben und an anderen Stellen wieder einfügen. Dies gelingt, indem man die entsprechenden Statements auswählt, Alt und die linke Maustaste drückt und den neu erzeugten Statement-Block an der gewünschten Stelle einfügt. Dabei entspricht die Reihenfolge der Statements im neu erzeugten Statement-Block der Reihenfolge der Auswahl. Will man einen Block oder ein Statement nur eine Stelle nach vorne verschieben, so kann man dies auch über die Tastur mittels Drücken der Alt-Taste und der Pfeil-Nach- Oben- beziehungsweise der Pfeil-Nach-Unten-Taste. Der Toolbar enthält graphische Repräsentationen von Objekten, Attributen oder Methoden. Diese können auch mittels Drag & Drop eingefügt werden. Dazu bewegt man die Maus über die entsprechende Graphik, drückt die linke Maustaste und schiebt die Graphik an die gewünschte Stelle im Nassi Shneiderman Diagramm. (Der Code wird nur dann eingefügt, falls dies an dieser Stelle möglich ist). 7

21 4 Verwendete Konzepte der graphischen Programmierung 4.3 Autocompletion Bis zu einem gewissen Grad wird Autocompletion unterstützt. So ergänzt der Editor automatisch obligatorische Bestandteile wie schließende Klammern bei Schleifen oder das Zuweisungs- und Plus-Symbol der Inkrementation bei Loop. 4.4 Fehlervermeidung An einigen Stellen im Diagramm können nur spezielle Werte eingefügt werden wie boolsche Ausdrücke oder Ganzzahlen. Der Editor verhindert das fehlerhaftes Einfügen, indem er eine Drag & Drop Operation im Fehlerfall nicht zuläßt oder die Tastatureingabe auf spezielle Zeichen - wie beispielsweise Zahlen bei positiven Ganzzahlwerten - beschränkt. (Das Löschen eines Astes einer Fallunterscheidung oder des Rumpfes einer Schleife kann gleichfalls unterbunden werden). 8

22 5 Arbeiten im Java-Mode In diesem Kapitel wird die Arbeit mit Hilfe des Java-Modes gezeigt. Die Modes wurden auf folgende Weise konfiguriert. Nur Statements (Java 1) Statements & If (Java 2) Statements,If & For (Java 3) Statements,If,For & While (Java 4) Statements,If,For,While & Do (Java 5) Diese Einteilung, die hier in erster Linie der Darstellung der Umsetzung der einzelnen Konstrukte einer Programmiersprache dient, kann sinnvoll sein, will man den Schüler langsam an die Programmierung heranführen und nach und nach die Möglichkeiten und Probleme aufzeigen, welche die einzelnen Konstrukte mit sich bringen. (So kann man beispielsweise den Sprung von Loop nach While aufzeigen). 5.1 Java Beschreibung Diese Konfiguration ist die einfachst mögliche und könnte dafür verwendet werden, den Schüler mit dem Editor erstmals vertraut zu machen. Das einzige unterstützte programmiersprachliche Konstrukt sind einfache Anweisungen, welche beispielsweise per Drag & Drop eingegeben werden können. Großartiges läßt sich mit Hilfe dieser Konfiguration natürlich nicht programmieren, sie ist aber ausreichend um die Bedienung des Editors zu demonstrieren. Verzichtet man zusätzlich auf die Tastatureingabe von Statements, so hat man überdies die Gewissheit, dass die erstellten Programme kompilier- und lauffähig sind (wenn auch nicht unbedingt sinnvoll), und kann somit jedem Schüler ein anfängliches Erfolgserlebnis garantieren. Geschrieben wird das Programm Circle, welches den Marienkäfer gegen den Uhrzeigersinn einmal im Kreis gehen läßt. Der Kreis habe dabei den Radius 1. 9

23 5 Arbeiten im Java-Mode Die Mode-Datei In diesem Mode ist das Einfügen einzelner Java Anweisungen erlaubt. Der Eintrag für das Menü könnte daher aussehen wie folgt:... [+menu, "/NSD/insert/simple statement", s, C-i, javainsertsimplestatement]... Figure 5.1: Das Programm Circle von Java1 (SVG-Export) Das Java-Programm public class PJava1 extends GJavaKaraProgramBase { public void myprogram() { GJavaKara kara = new GJavaKara(); kara.move(); kara.removeleaf(); kara.move(); kara.move(); kara.putleaf(); 10

24 5.1 Java1 Figure 5.2: Das Programm PassTree von Java2 (SVG-Export) 11

25 5 Arbeiten im Java-Mode 5.2 Java Beschreibung In diese Konfiguration sind nun auch Fallunterscheidungen möglich. Das Programm PassTree bewegt den Marienkäfer zwei Schritte nach vorne. Steht vor dem Marienkäfer ein Baum, so versucht er links vorbei zu gehen, steht links ein Baum, so versucht er rechts vorbeizugehen, steht auch dort ein Baum so bleibt er stehen. Es wird die vereinfachende Annahme gemacht, dass zwei Bäume nicht vertikal nebeneinander stehen dürfen Die Mode-Datei... [+menu,"/nsd/insert/simple statement", s, C-i, javainsertsimplestatement] [+menu,"/nsd/insert/if statement", f, C-f, javainsertifstatement] Das Java-Programm public class PJava2 extends GJavaKaraProgramBase { public void myprogram() { GJavaKara kara = new GJavaKara(); if(kara.treefront() ){ if(kara.treeleft() ){ if(kara.treeright() ){ ; else{ kara.turnright(); kara.move(); kara.turnleft(); else{ kara.turnleft(); kara.move(); kara.turnright(); else{ kara.move(); 12

26 5.3 Java3 5.3 Java Beschreibung In diese Konfiguration sind nun auch For-Schleifen möglich. Das Programm PassTree2 bewegt wie PassTree den Marienkäfer zwei Schritte nach vorne. Steht vor dem Marienkäfer ein Baum, dann versucht er links vorbei zu gehen und zwar, indem er maximal 3 Schritte nach links geht. Versperrt auch dann noch ein Baum den Weg, so geht er zurück und versucht es rechts (auch maximal 3 Schritte). Figure 5.3: Das Nassi Shneiderman Diagramm von Java4 (SVG-Export) 13

27 5 Arbeiten im Java-Mode Die Mode-Datei... [+menu,"/nsd/insert/simple statement", s, C-i, javainsertsimplestatement ] [+menu,"/nsd/insert/if statement", f, C-f, javainsertifstatement ] [+menu,"/nsd/insert/loop statement", l, C-l, javainsertloopstatement ] Das Java-Programm public class PassTree2 extends GJavaKaraProgramBase { public void myprogram() { GJavaKara kara = new GJavaKara(); if(kara.treefront() ){ kara.turnleft(); for( int i=0; i<3; i++ ) { kara.move(); if(kara.treeright() ){ continue; else{ kara.turnright(); kara.move(); kara.move(); kara.turnright(); for( int j=0; j<=i; j++ ) { kara.move(); kara.turnleft(); break; else{ kara.move(); kara.move(); 14

28 5.4 Java Java Beschreibung In diese Konfiguration sind nun auch While-Schleifen erlaubt. Im Programm Tree durchläuft der Marienkäfer vollständig einen Baum und zwar in Preorder. Die Äste des Baumes werden durch Pfade der Breite 1 in einem Wald von Bäumen repräsentiert. Er bleibt stehen, wenn er den Baum vollständig durchlaufen hat und wieder beim Startpunkt, der Wurzel, angekommen ist. An dieser befindet sich zur besonderen Kennzeichnung der einzige Pilz. Figure 5.4: Das Nassi Shneiderman Diagramm von Java4 (SVG-Export) Die Mode-Datei... [+menu,"/nsd/insert/if statement", f, C-f, javainsertifstatement ] [+menu,"/nsd/insert/loop statement", l, C-l, javainsertloopstatement ] [+menu,"/nsd/insert/while statement", w, C-w, javainsertwhilestatement ] [+menu,"/nsd/insert/do statement", d, C-d, javainsertdostatement ]... 15

29 5 Arbeiten im Java-Mode Das Java-Programm public class Tree extends GJavaKaraProgramBase { public void myprogram() { GJavaKara kara = new GJavaKara(); while(!kara.mushroomfront() ) { if(kara.treeright() ){ while( kara.treefront() ) { kara.turnleft(); else{ kara.turnright(); kara.move(); 16

30 6 Loop / While Es existiert auch ein spezieller Mode für die Programmiersprache(n) Loop/While. 6.1 Spezifikation Loop / While Die hier unterstützten Programmiersprachen unterscheiden sich leicht von der ursprünglichen Sprache Loop/While. So wird neben der einfachen Inkrementation auch die Addition von Variablen oder Ganzzahlen erlaubt, des weiteren gibt es die Fallunterscheidungen if Datentyp Integer Der einzige erlaubte Datentyp sind positive Ganzzahlen. Diese sind definiert wie folgt: <integer> := ( <digit> )+ <digit> := Variablenbezeichner Variablenbezeichner beginnen mit einem oder mehreren Buchstaben, anschließend folgt eine beliebig lange Sequenz von Buchstaben und Zahlen und Punkten. Die Verwendung von Sonderzeichen in Variablenbezeichnern ist nicht erlaubt. <identifier> := <char> (<char> <digit>. )* <char> := a.. z A.. Z <digit> := Macroaufruf Der Makroaufruf unterscheidet sich wenig von einem Funktionsaufruf, wie man ihn in Java kennt. Es werden jedoch keine Argumente übergeben. Der Makrobezeichner selbst ist ein gewöhnlicher Variablenbezeichner. <macrocall> := <identifier> ( ) Hier ein Beispiel für einen Makroaufruf: kara.move() 17

31 6 Loop / While Zuweisung Eine mögliche Zuweisung ist die Zuweisung Variable zu Wert oder Variable zu Variable, wobei als Zuweisungsoperator := verwendet wird. Auf der rechten Seite kann auch das Ergebnis einer einfachen Addition stehen. <assignment> := <identifier> := ( <identifier> <digit> ) ( + ( <identifier> <digit> ))? If Das If-Statement ist beschränkter als das If-Statement bei Java. Bei der Bedingung handelt es sich in jedem Fall um einen Vergleich einer Variablen mit einem Integerwert oder mit einer weiteren Variablen. (Daher ist es sinnvoll, die Prädikate von kara - sofern man sie in Loop verwenden will - derart zu überschreiben, dass sie an Stelle von true und false 1 oder 0 zurückgeben). Das If-Statement ist definiert wie folgt: <if-statement> := if <condition> then ( <statement> )* else ( <statement> )* endif <condition> := <id> ( ==!= ) ( <id> <integer> ) also beispielsweise if a0 == 2 then kara.move() else a0 := a1 + a2 endif Loop Das Loop-Statement hat folgende Syntax: <loop-statement> := loop ( <identifier> <integer> ) do ( <statement> )* enddo Ein Beispiel, welches Kara im Kreis gehen läßt. loop 4 do karamove karaturnleft enddo 18

32 6.2 Der Mode Loop Das Loop-Statement hat folgende Syntax: <loop-statement> := while <condition> do ( <statement> )* enddo Die Bedingung entspricht der Bedingung von If. while a0!= a1 do a0 := a0 + 1 enddo 6.2 Der Mode Es existieren 2 Modi, einer für Loop und einer für While, letzte sind aber fast identisch. Bei While ist zusätzlich zu allen Konstrukten von Loop die While-Schleife erlaubt. Auf Grund der großen Ähnlichkeit werden die beiden Modi hier gemeinsam besprochen. Der Loop/While Mode unterscheidet sich kaum vom Java Mode, dass heißt, es wird weiterhin mit Nassi Shneiderman Diagrammen programmiert, welche per Drag & Drop erstellt werden können. Allerding ist man bei der Eingabe stärker restringiert. Anders als im Java-Mode ist die Eingabe mittels der Tastatur nicht völlig frei. Die einzelnen Statements sind vielmehr in mehrere Felder unterteilt, zwischen denen mittels Alt und der linken beziehungsweise rechten Pfeiltaste gewechselt werden kann, und dies funktioniert auch nur, falls die vorherige Eingabe dies zuläßt. ( Die Eingabe in diese Felder kann daher erheblich stärker beschränkt werden, da aufgrund der Einfachheit der Sprache Loop bisweilen klar ist, was für ein Ausdruck erwartet wird. Die Schlichtheit der Sprache Loop / While erlaubt auch das automatische Hinzufügen von Code, beispielsweise, wenn man von einem Macroaufruf zu einer Zuweisung ( := ) und von einer Zuweisung zu einer Addition ( + ) wechselt. Da in den Felder nur Buchstaben und Zahlenwerte eingegeben werden müssen und auch nur können, ist die Möglichkeit zu syntaktischen Fehlern zusätzlich reduziert. Im Loop Mode hat man auch die Möglichkeit die Datei als Loop-Datei zu speichern und als solche wieder einzulesen. Da JavaKara ein Java-Programm erwartet, muss man jedoch die Loop-Datei, die in Kara laufen soll, vorher als Java-Datei abspeichern. Der generierte Code unterscheidet sich wenig vom Generat der Java-Modes, es wird jedoch eine andere Wrapper-Klasse für JavaKara verwendet, da Datentypen wie Boolean nicht erlaubt sind! Die Wrapper-Klasse gibt bei den Prädikaten an Stelle von true/false 1/0 zurück. 19

33 6 Loop / While Figure 6.1: Das Loop-Programm (SVG-Export) a0 := 0 while kara.treefront()!= 1 kara.move() enddo if kara.onleaf() == 1 then kara.removeleaf() else kara.putleaf() endif kara.turnright() a0 := a0 + 1 do Figure 6.2: Das Loop-Programm (Loop-Export) 20

34 6.2 Der Mode public class Square extends GLoopKaraProgramBase { public void myprogram() { GLoopKara kara = new GLoopKara(); int a0=0; a0 = 0 ; do{ while( kara.treefront()!= 1 ){ kara.move() ; if( kara.onleaf() == 1 ){ kara.removeleaf() ; else{ kara.putleaf() ; kara.turnright() ; a0 = a0 + 1 ; while( a0!= 4 ); Figure 6.3: Der Java-Export des Loop-Programms 21

35 6 Loop / While 22

36 7 Toolbar und Punktnotation In diesem Kapitel wird etwas detailierter auf den Toolbar eingegangen. Insbesondere wird herausgearbeitet, inwieweit er für die Erklärung der Punktnotation im Schulunterricht herangezogen werden kann. 7.1 Der Toolbar Beim Toolbar werden graphischen Symbolen Code-Fragmente sowie der Datentyp der ganzen Fragments zugeordnet. Bei der Default-Einstellung des Toolbars wird immer Objekt+Methode eingefügt, was sicherlich für den Anfang einfacher ist. Man kann den Toolbar jedoch mit Hilfe von Konfigurationsdateien so anpassen, dass Objekte, Attribute und Methoden einzeln eingefügt werden. 7.2 Eintrag für ein Objekt Ein Eintrag für ein Objekt sieht aus wie folgt:... object: [ kara, # Code Fragment object, # Datentyp Kara, # ToolTip Text img/kara.gif # ToolBar Icon ]... Figure 7.1: Eintrag in der ToolBar Konfigurationsdatei für ein Objekt Das Object an der 2. Stelle im Eintrag besagt, dass ein Statement nach dem Einfügen vom Datentyp object ist. Dies bedeutet, dass nun Einträge des Typs method oder attribute eingefügt werden können. 23

37 7 Toolbar und Punktnotation... method: [.move(), # Code Fragment void, # Datentyp Schritt vor, # ToolTip Text img/move.gif # ToolBar Icon ]... Figure 7.2: Eintrag in der ToolBar Konfigurationsdatei für eine Methode 7.3 Eintrag für eine Methode Das Ikon beziehungsweise der dahinterliegende Code kann nur dann angefügt werden, falls das Statement im Moment den Typ objekt hat. Man beachte: Der Code wird angefügt und nicht wie bei Object.method ersetzt! 7.4 Eintrag für ein Attribut... method: [.stepcount, # Code Fragment int, # Datentyp Anzahl Schritte vor, # ToolTip Text img/step.gif # ToolBar Icon ]... Figure 7.3: Eintrag in der ToolBar Konfigurationsdatei für ein Attribut Beim Einfügen eines Attributes gelten die selben Beschränkungen wie bei einer Methode. Eine Übersicht über die Flags und Datentypen bei Toolbar, sowie eine detailliertere Beschreibung findet sich im Anhang. 24

38 8 Erweitern von JavaKara Wie bereits in früheren Kapiteln erwähnt, kann man den Editor auf vielfache Art anpassen. Die Anpassung geht so weit, dass man auch - vor dem Anwender versteckt - das Objekt der verwendeten Toy World modifizieren kann. Die dazu notwendigen Schritte sind eine Anpassung der Konfigurationsdatei für den Toolbar sowie eine Anpassung der Code-Template-Datei. 8.1 Anpassen der Template-Datei Zum Verständnis der folgenden Schritte ist eine rudimentäre Kenntnis des Aufbaus von Kara und der Anbindung des Editors an Kara notwendig. Bei einem normalen Kara-Programm arbeitet das Programm mit einer Instanz von Kara, welche in einem statischen Attribut gespeichert und bereits erzeugt ist. Die JavaKaraKlasse ist eine innere Klasse von JavaKaraProgram. Dies ist didaktisch und vom rein objektorientierten Standpunkt aus gesehen eher unschön und erschwert zudem die Erweiterung des Objektes Kara. Das Problem wurde mittels Delegation Inheritance gelöst, das heißt es wurde eine Wrapperklasse erzeugt, welche eine Instanz von Kara enthält und gleichnamige Methoden hat, welche schlicht die Methoden der Instanz aufrufen. Diese Klasse wurde, um Verwirrungen zu vermeiden, durch eine abgeleitete Klasse verdeckt, welche nun normal mittels eines Konstruktors erzeugbar ist, und wo man auch zusätzliche Methoden oder Attribute zur Verfügung stellen beziehungsweise alte Methoden auch überschreiben kann. Im folgenden Beispiel wird das Objekt Kara wie folgt modifiziert: Die neue Methode turnleft180() soll den Marienkäfer um 180 Grad gegen den Uhrzeiger Sinn drehen. Der Käfer wird weiterhin mit der Methode move(int s) erweitert, welche ihn s Schritte nach vorne bewegt. Die Methode move() ohne Argument bewegt den Marienkäfer nicht mehr um einen Schritt, sondern ermittelt die auszuführende Schrittzahl anhand des Wertes des Attributes stepcount. Letzteres soll auch im NSD-Editor setzbar sein. Die Methoden removeleaf() und putleaf werden so verändert, dass der Marienkäfer nur soviele Kleeblätter hinlegen kann, wie er auch aufgehoben hat. 25

39 8 Erweitern von JavaKara... import JavaKaraProgram; /* BEFEHLE: kara. * move() turnright() turnleft() * putleaf() removeleaf() * * SENSOREN: kara. * treefront() treeleft() treeright() * mushroomfront() onleaf() */ public class FindeBaum extends JavaKaraProgram { // hier koennen Sie eigene Methoden definieren public void myprogram() { // hier kommt das Hauptprogramm hin, zb: while (!kara.treefront()) { kara.move(); Figure 8.1: JavaKara Template public class GJavaKaraProgramBase extends JavaKaraProgram { { GJavaKaraBase.kara = kara; Figure 8.2: Die neue Basisklasse für Programme 26

40 8.1 Anpassen der Template-Datei public class GJavaKaraBase { public static JavaKaraProgram.JavaKara kara; public void move() { kara.move(); public void turnleft() { kara.turnleft(); public void turnright() { kara.turnright();... public void checkkarainworld() { kara.checkkarainworld(); Figure 8.3: Die neue Basisklasse für JavaKara public class GJavaKara extends GJavaKaraBase { // Eigene Konstruktoren, Methoden, Attribute... Figure 8.4: Die neue JavaKara Klasse 27

41 8 Erweitern von JavaKara Die neuen Methoden können direkt in der Klasse GJavaKara eingetragen werden. Hier das Beispielprogramm. public class GJavaKara extends GJavaKaraBase { public int stepcount = 2; private int leafcount = 0; public void turnleft180() { turnleft(); turnleft(); public void move(int s) { for(int i=0;i<s;i++)move(); public void move() { move(steps); public void putleaf() { if(leafcount > 0){ leafcount--; super.putleaf(); public void removeleaf() { leafcount++; super.removeleaf(); Damit JavaKara das Program findet, ist es am einfachsten, es zu kompilieren, und in das allkara.ja einzufügen. Alternativ kann man die Datei auch im Verzeichnis des Java-Generats ablegen. 28

42 8.2 Anpassen oder Erstellen einer neuen Toolbar-Datei 8.2 Anpassen oder Erstellen einer neuen Toolbar-Datei Damit die neuen Methoden auch im Editor per drag and drop verwendet werden können, müssen im Toolbar Einträge eingefügt werden, in denen den neuen Methoden Icons, eine Beschreibung und eine ToolTip zugeordnet wird. Der zusätzliche Eintrag für obere Erweiterung in einer ToolBar-Datei sähe aus wie folgt: object.method:... [ kara.move(), void, Bewegt Kara um kara.stepcount/i Schritte nach vorne, img/kara_move.gif ] [ kara.stepcount, int, Anzahl der Schritte bei Aufruf von move ohne Argument, img/kara_step_count.gif ]... 29

43 8 Erweitern von JavaKara 30

44 9 Die Konfigurationsdateien In diesem Kapitel wird auf die Syntax und Semantik der Konfigurationsdateien eingegangen. Mit diesen läßt sich das Aussehen und Verhalten des Editors nicht unerheblich verändern. 9.1 Allgemeine Konfiguration des Editors Die Datei editor.txt ist die zentrale Konfigurationsdatei des Editor, und die einzige, deren relativer Pfad nicht frei wählbar ist. In ihr wird festgelegt, welches Code-Template verwendet werden soll, in welcher Datei die einzelnen Modes aufgelistet sind und in welchen Dateien die Pfade der zuletzt geöffneten/gespeicherten Dateien eingetragen werden sollen. Außerdem kann der zunächst zu verwendende Toolbar so wie das Code- Template angegeben werden. Beispiel für die Datei editor.txt: [graphic, config/graphic.txt ] [modes,config/modes.txt ] [save, config/save.txt ] [open, config/open.txt ] [toolbar,config/toolbar-java.txt ] [template,config/template-java.txt ] Die Reihenfolge der Einträge spielt hierbei keine Rolle. 9.2 Graphik Konfiguration Die Syntax der Datei zur Konfiguration der Darstellung der Nassi Shneiderman Diagramme und der Buffer ist stark an CSS orientiert. nsdeditor.core.graphic.storage.gcomponent { border-color: # # # #222222; border-width: ; color: #004400; font-family: Courier; background-color: #EEEEEE; 31

45 9 Die Konfigurationsdateien Oberer Auszug steuert die Darstellung aller Instanzen von GComponent. Da dies die Basisklasse von allen graphischen NSD-Komponenten ist, beziehen sich obere Angaben auf die Darstellungen aller NSD-Konstrukte. Man kann die Werte für die Unterklassen jedoch auch explizit definieren. In diesem Fall werden die Werte der Basisklasse von den spezielleren Werten überschrieben Einfacher Konfigurationseintrag Ein einfacher Konfigurationseintrag besteht aus dem qualifizierten Klassennamen des zu konfigurierenden Objekts, gefolgt von einer öffnenden geschweiften Klammern, danach beliebig viele Feature-Einträge des Objekts und eine abschließende geschweifte Klammer. obj1 {... Man kann auch einen Eintrag für mehrere Objekte schreiben. Dabei werden die einzelnen Objekte durch Kommata getrennt: obj1, obj2,..., objn {... Nach einem Objekt kann auch das Attribut.selected stehen. Dies bedeutet, dass die angegebenen Styleinformationen nur dann greifen, wenn das Objekt ausgewählt ist. obj1.selected { Vererbung Augrund der Oberunterklassenbeziehung einzelner graphischer Objekte, ist Vererbung möglich. Die Vererbung der Werte funktioniert nur dann, wenn die Werte der Basisklasse vor den Werten der spezialisierten Klasse gesetzt werden. Die mit dem Attribut.selected spezialisierten Objekte können gleichfalls von ihren Basisklassen, den nicht attributierten Objekten gleichen Namens, erben Angabe von RGB-Farbwerten Farben werden mit Hilfe ihres RGB-Hexadezimalcodes angegeben. Dieser hat entweder die Länge 7 oder 9. Länge 7: #RRGGBB Länge 9: #RRGGBBAA Die mit R bezeichneten Stellen spezifizieren den Rotwert, die mit G bezeichneten Stellen den Grünwert und die mit B bezeichneten Stellen den Blauwert. A bezeichnet die Transparenz. Wird keine Transparenz angegeben, so ist die Farbe nicht transparent. Beispiele: #FFFFFF (weiß), #FF0000 (rot), #00FF0055 (transparentes Grün). 32

46 9.2 Graphik Konfiguration Übersicht über die konfigurierbaren graphischen Objekte Die folgenden graphischen Objekte sind konfigurierbar: Package: nsdeditor.core.graphic.storage GComponent: Basisklasse alle graphischen Objekte GContainer: Basisklasse alle graphischen Container-Objekte GStatement: Basisklasse alle primiven Statements GIfStatement: Basisklasse alle If-Statements GLoopStatement: Basisklasse alle Loop-Statements, auch For-Schleife GWhileStatement: Basisklasse alle While-Statements GDoStatement: Basisklasse alle Do-Statements Package: nsdeditor.modules.loop LStatement: Loop/While-Variante des einfachen Statements LIfStatement: Loop/While-Variante des If-Statements LLoopStatement: Loop/While-Variante des Loop-Statements LWhileStatement: Loop/While-Variante des While-Statements Package: nsdeditor.modules.java JStatement: Java-Variante des einfachen Statements JIfStatement: Java-Variante des If-Statements JLoopStatement: Java-Variante des Loop-Statements (For-Schleife) JWhileStatement: Java-Variante des While-Statements JDoStatement: Java-Variante des Do-Statements Package: nsdeditor.core.buffer TextBuffer: Basisklasse aller Buffer zum Darstellen von Text PanelBuffer: Basisklasse aller Buffer zum Darstellen von graphischen Komponenten 33

47 9 Die Konfigurationsdateien Übersicht über die konfigurierbaren Features border-color: Farbe der Kanten. 1 oder 4 RGB-Farbwerte (für oben,rechts,unten,links). border-width: Breite der Kanten. 1 oder 4 Intgerwerte (für oben,rechts,unten,links). font-size: Schriftgröße. Als Werte sind, anders als bei CSS, nur positive Ganzzahlen zugelassen. font-family: Schriftname wie Courier font-weight: Das Zeichenformat. Werte: bold, normal, italic line-height: Der Zeilenabstand. Beim Wert handelt es sich um eine Fließkommazahl, wobei die Zahl 1.0 die Höhe einer Zeile beschreibt. color: Schriftfarbe. Wert: RGB-Farbwert. background-color: Hintergrundfarbe. Wert: RGB-Farbwert. 9.3 Die Modes-Datei In der in der Datei editor.txt unter modes: angegebenen Datei werden die erlaubten Modes aufgelistet, so wie die Dateien, in welcher diese spezifiziert sind. Ein Eintrag besteht jeweils aus einer eckigen Klammer, gefolgt von dem Namen des Modes, einem Komma, der Spezifikationsdatei und einer schließenden eckigen Klammer. Beispiel: [ "Java1","modes/java1.txt" ] [ "Java2","modes/java2.txt" ] [ "Java3","modes/java3.txt" ] [ "Java4","modes/java4.txt" ] [ "Java5","modes/java5.txt" ] Hier werden die Modes Java1 bis 5 erlaubt, wobei die jeweiligen Spezifikationsdateien unter modes/java1.mode bis modes/java5.mode zu finden sind. (Anführungszeichen sind nur dann notwendig, falls die Bezeichnung oder der Pfad ein Leerzeichen, eine eckige Klammer oder ein Komma enthält). Der zuerst angegebene Mode ist der Default-Mode. 9.4 Die Mode-Datei Dies ist vermutlich die komplexeste Konfigurationsdatei. Hier wird festgelegt, welche Befehle erlaubt sind, welche Tastaturkürzel diese haben und wo und unter welchem Menü sie aufrufbar sind. Überdies kann der zu verwendende Toolbar und das Code- Template angegeben werden. 34

48 9.4 Die Mode-Datei # Toolbar [toolbar, "config/toolbar-loop.txt" ] # Code-Template [template,"config/template-loop.txt" ] # Module [+module, nsdeditor.modules.nsd.editmodule ] [+module, nsdeditor.modules.java.jmodule ] [+module, nsdeditor.modules.nsd.nsdmodule ]... [-menu, /File ] [+menu, /File/New,n,C-n,nsdFileNew ] [+menu, /File/Open,,,nsdFileOpen ] [+menu, /File/Save,,,nsdFileSave ] [+menu, "/File/Save As/Svg File",,, nsdfilesaveassvg] Module Mit +module können Module geladen weden, mit -module wird einem Modul mitgeteilt, dass es nicht weiter benötigt wird. Module sind eine Einheit, in der im Editor verwendbare Befehle zusammengefasst sind. Sie erlauben das gemeinschaftliche Laden der Befehle. Der Eintrag: [+module, nsdeditor.modules.nsd.nsdmodule ] läd das Module nsdeditor.modules.nsd.nsdmodule, sofern dies noch nicht bereits geladen wurde. Es existieren die folgenden Module: nsdeditor.modules.nsd.editmodule: Edit Commands wie copy/paste/cut nsdeditor.modules.java.jmodule: Commands zum Einfügen von den Java Varianten der Grundbausteine der Nassi Shneiderman Diagramme. nsdeditor.modules.java.jmodule: Commands zum Einfügen von den Loop Varianten der Grundbausteine der Nassi Shneiderman Diagramme. nsdeditor.modules.nsd.nmodule: Commands, die in allen Varianten der Bausteine des Nassi Shneiderman Diagramms gleich sind, wie die Auswahl des letzten oder des nächsten Statements. Commands zum Laden, Anzeigen und Ver- nsdeditor.modules.nsd.tbmodule: stecken des Toolbars. 35

49 9 Die Konfigurationsdateien nsdeditor.modules.nsd.optionmodule: Optionen wie Zoom oder Look & Feel. nsdeditor.core.editor.coremodule: Commands, welche zum Kern des Editors gehören und nicht von irgendeinem Mode abhängig sind, wie das Öffnen oder Schließen von Fenstern Menü [-menu, /File ] Oberer Eintrag entfernt den Menüpunkt /File sowie alle Untermenüs. Mit +menu werden Menüs eingefügt. Der Eintrag [+menu, /File/New,n,C-n,nsdFileNew ] fügt den Menüpunkt /File/New ein, welcher n als Mnemonic und C-n als Shortcut hat. Bei Aktivierung des Menüs wird der Command nsdfilenew ausgeführt. Soll ein Menüpunkt kein Menomic oder kein Tastaturkürzel haben, so läßt man die entsprechende Stelle im Eintrag frei: [+menu, /File/Save,,,nsdFileSave ] Kommentare kann man auch hier mit Hilfe des # einfügen. Der Text bis Ende der Zeile wird dann ignoriert. 9.5 Konfiguration des Toolbars Die in der Datei editor.txt oder in den Mode-Dateien als toollbar gekennzeichnete Datei dient als abstrakte Beschreibung des Objekts und zur Erzeugung des Toolbars. Die Datein besteht aus mehreren optionalen Sektionen welche mit den Flags object:, object.method:, object.attribute:, method: oder attribute: eingeleitet werden.... object:... object.method:... object.attribute:... method:... attribute:... 36

50 9.5 Konfiguration des Toolbars Diese Flags steuern die Art des Einfügens. So wird beispielsweise beim Verschieben eines Icons mit der Auszeichnung object.method: der vorherige Eintrag gelöscht, bei method: wird überprüft, ob der aktuelle Eintrag vom Typ Object ist, und gegebenenfalls wird die Methode angehängt. Auch wird beim Einfügen auf den Datentyp geachtet und die Drag & Drop Operation gegebenenfalls abgebrochen. Die Reihenfolge der Flags ist nicht festgelegt, und es kann auch mehrfach dasselbe Flag auftauchen. Jede mit einem Flag eingeleitete Sektion kann mehrere Einträge enthalten. Ein Eintrag besteht aus dem Namen des Objekt, beziehungsweise des Attributes oder der Operation, gefolgt vom Rückgabewert beziehungsweise dem Datentyp, einer kurzen Beschreibung, die als ToolTip dient, und dem Pfad des Bildes. [ kara.move(), # Name der Operation void, # Datentyp Schritt vor, # ToolTip Text img/kara_command_move.gif # ToolBar Icon ] Die Reihenfolge der Einträge spiegelt die Reihenfolge der Icons im Toolbar wieder. object.method:... [ kara.onleaf(), boolean, Kleeblatt unten?, img/kara_sensor_cloverleaf.gif ] [ kara.mushroomfront(), boolean, Pilz vorne?, img/kara_sensor_mushroom.gif ]... In oberem Beispiel folgt das ToolBar-Icon von kara.mushroomfront() direkt auf das Icon von kara.onleaf(). Mit # können Kommentare eingefügt werden, welche sich bis zum Ende der Zeile erstrecken Übersicht über die Flags bei Toolbar Object/object: Ein Objekt, beispielsweise kara Object.attribute/object.attribute: Objekt & Attribut, zum Beispiel kara.stepcount 37

51 9 Die Konfigurationsdateien Object.method/object.method: Objekt & Methode, zum Beispiel kara.move() Attribute/attribute: Nur ein Attribut, beispielsweise.stepcount Method/method: Nur eine Methode, zum Beispiel.move() Übersicht über die Datentypen bei Toolbar int: Ganzzahlwert boolean: Wahrheitswert object: Objekt methodvoid: Methode ohne Rückgabewert methodint: Methode mit Ganzzahl als Rückgabewert methodboolean: Methode mit Wahrheitswert als Rückgabewert methodobject: Methode mit Objekt als Rückgabewert 9.6 Code-Generierung Bei der Generierung des Java-Codes wird der aus den NSD-Diagrammen gewonnene Code in eine Templatedatei eingefügt, welche beliebigen Java-Code enthalten kann. Beispiel: public extends GJavaKaraProgramBase { public void myprogram() { GJavaKara kara = new wird der Name der Datei eingefügt, der aus den NSD- Diagrammen gewonnene Inhalt. Letzterer hat eine standardmäßige Einrückung von zwei Tabulatoren. 38

52 10 Appendix A In diesem Kapitel findet sich ein kurzer Umriß des Aufbaus des Editors. Der NsdEditor ist im Prinzip wie ein normaler Texteditor aufgebaut. Was die Komponenten betrifft, so orientiert er sich am Gnu Emacs, er ist aber natürlich wesentlich schlichter. Es gibt eigene Klassen für Fenster, Buffer Menüs, Modes, welche Darstellung und Bearbeitung eines Buffers beeinflussen, Commands sowie ein Event-Model. Die Klassen und das Event-Model werden im Folgenden kurz beleuchtet Buffer Unter Buffern werden hier Objekte verstanden, welche den Inhalt eines Fensters speichern. Der Inhalt wird aber nicht unbedingt angezeigt. Der Editor kann mehrer Buffer verwalten. Er kann bei der Anzeige zwischen den einzelnen Buffern wechseln, wobei der Wechsel der Buffer bis zu einem gewissen Grad mitgespeichert wird. Dies bedeutet, dass Befehle wie lade letzten Buffer oder nächsten Buffer prinzipiell möglich sind. Bei den Buffern kann es sich um TextBuffer handeln oder auch um PanelBuffer, in welche gezeichnet werden soll Window Ein Window ist ein Fenster, in dem jeweils ein Buffer angezeigt wird. Im Gegensatz zu Buffern sind Windows immer sichtbar. Windows sind die Slots, in welche die Buffer eingefügt werden, wobei diese Binding Window zu Buffer flexibel ist. So kann der in einem Window dargestellt Buffer zur Laufzeit wechseln. (Ein bisher sichtbarer Buffer wird jetzt nicht mehr sichtbar, dafür wird ein neuer Buffer oder ein vorher nicht sichtbarer Buffer jetzt angezeigt.) Windows können sowohl horizontal als auch vertikal gesplittet oder auch geschlossen werden, letzteres, sofern es sich nicht um das letzte Window handelt. Diese Funktionalität wird ähnlich der Bufferfunktionalität momentan wenig gebraucht, dient aber der Erweiterbarkeit des Editors zu mehr als einem Spezialzweckeditor. 39

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS Abb. 1: Programmfenster Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter Programmfenster anzeigen Einstellungen öffnen Kara direkt

Mehr

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 { Informatik: Einführung in Java Gierhardt Play it again, Kara! (Lsg.) 1. Kara soll ein Kleeblatt finden, das sich in der gleichen Zeile (oder Spalte) befindet wie er selbst. Zwischen ihm und dem Kleeblatt

Mehr

1 Installation. 1.1 Die Java-Laufzeitumgebung. 1.2 PXLab. Um PXLab benutzen zu können benötigt man die Java Platform, diese kann man unter

1 Installation. 1.1 Die Java-Laufzeitumgebung. 1.2 PXLab. Um PXLab benutzen zu können benötigt man die Java Platform, diese kann man unter 1 Installation 1.1 Die Java-Laufzeitumgebung Um PXLab benutzen zu können benötigt man die Java Platform, diese kann man unter http://java.sun.com/javase/downloads/index.jsp herunteladen. Wenn man PXLab

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Die Dateiablage Der Weg zur Dateiablage

Die Dateiablage Der Weg zur Dateiablage Die Dateiablage In Ihrem Privatbereich haben Sie die Möglichkeit, Dateien verschiedener Formate abzulegen, zu sortieren, zu archivieren und in andere Dateiablagen der Plattform zu kopieren. In den Gruppen

Mehr

3. GLIEDERUNG. Aufgabe:

3. GLIEDERUNG. Aufgabe: 3. GLIEDERUNG Aufgabe: In der Praxis ist es für einen Ausdruck, der nicht alle Detaildaten enthält, häufig notwendig, Zeilen oder Spalten einer Tabelle auszublenden. Auch eine übersichtlichere Darstellung

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Kurzeinführung Excel2App. Version 1.0.0

Kurzeinführung Excel2App. Version 1.0.0 Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig

Mehr

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 In dieser Anleitung wird die Installation und Verwendung von Omodo eclipseuml 2.1.0 beschrieben. eclipseuml ist eine Zusatzsoftware für Eclipse,

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Visualisierung auf Büro PC s mit dem ibricks Widget

Visualisierung auf Büro PC s mit dem ibricks Widget Automation Server Visualisierung auf Büro PC s mit dem Widget Solutions Industriestrasse 25A CH-3178 Bösingen mail@.ch www..ch Tel +41 31 5 110 110 Fax+41 31 5 110 112 Solutions Bausteine zum intelligenten

Mehr

Hilfe zur Dokumentenverwaltung

Hilfe zur Dokumentenverwaltung Hilfe zur Dokumentenverwaltung Die Dokumentenverwaltung von Coffee-CRM ist sehr mächtig und umfangreich, aber keine Angst die Bedienung ist kinderleicht. Im Gegensatz zur Foto Galeria können Dokumente

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Einfügen von Bildern innerhalb eines Beitrages

Einfügen von Bildern innerhalb eines Beitrages Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,

Mehr

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen Menü Macro WinIBW2-Macros unter Windows7?... 1 Macros aufnehmen... 1 Menübefehle und Schaltflächen in Macros verwenden... 4 Macros bearbeiten... 4 Macros löschen... 5 Macro-Dateien... 5 Macros importieren...

Mehr

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik Kurs Simulation. Hilfe für den Consideo Modeler Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Excel 2010 Kommentare einfügen

Excel 2010 Kommentare einfügen EX.015, Version 1.0 25.02.2014 Kurzanleitung Excel 2010 Kommentare einfügen Beim Arbeiten mit Tabellen sind Kommentare ein nützliches Hilfsmittel, sei es, um anderen Personen Hinweise zu Zellinhalten zu

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Installationsanleitung CLX.PayMaker Office

Installationsanleitung CLX.PayMaker Office Installationsanleitung CLX.PayMaker Office Inhaltsverzeichnis 1. Installation und Datenübernahme... 2 2. Erste Schritte Verbindung zur Bank einrichten und Kontoinformationen beziehen... 4 3. Einrichtung

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Installationsanleitung CLX.PayMaker Home

Installationsanleitung CLX.PayMaker Home Installationsanleitung CLX.PayMaker Home Inhaltsverzeichnis 1. Installation und Datenübernahme... 2 2. Erste Schritte Verbindung zur Bank einrichten und Kontoinformationen beziehen... 4 3. Einrichtung

Mehr

Einkaufslisten verwalten. Tipps & Tricks

Einkaufslisten verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Grundlegende Informationen 3 1.2 Einkaufslisten erstellen 4 1.3 Artikel zu einer bestehenden Einkaufsliste hinzufügen 9 1.4 Mit einer Einkaufslisten einkaufen 12 1.4.1 Alle

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Erzherzog Johann Jahr 2009

Erzherzog Johann Jahr 2009 Erzherzog Johann Jahr 2009 Der Erzherzog Johann Tag an der FH JOANNEUM in Kapfenberg Was wird zur Erstellung einer Webseite benötigt? Um eine Webseite zu erstellen, sind die folgenden Dinge nötig: 1. Ein

Mehr

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox Inhalt 1 Kurz und knapp... 1 2 Allgemeine Erklärungen zur Funktionsweise des Browsers... 2 3 Download...

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

1. Einführung. 2. Die Abschlagsdefinition

1. Einführung. 2. Die Abschlagsdefinition 1. Einführung orgamax bietet die Möglichkeit, Abschlagszahlungen (oder auch Akontozahlungen) zu erstellen. Die Erstellung der Abschlagsrechnung beginnt dabei immer im Auftrag, in dem Höhe und Anzahl der

Mehr

CALCOO Lite. Inhalt. 1. Projekt anlegen / öffnen. 2. Projekt von CALCOO App importieren

CALCOO Lite. Inhalt. 1. Projekt anlegen / öffnen. 2. Projekt von CALCOO App importieren CALCOO Lite Hier finden Sie eine Kurzanleitung zu den einzelnen Projektschritten von CALCOO Light. Nach dem Lesen wissen Sie die grundlegenden Funktionen zu bedienen und können ein Projekt erstellen. Inhalt

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Dokumentation: Balanced Scorecard

Dokumentation: Balanced Scorecard Dokumentation: Balanced Scorecard 1. Einleitung Eine Balanced Scorecard (BSC) ist eine kennzahlenbasierte Managementmethode, welche sowohl Visionen als auch Strategien eines Unternehmens und relevante

Mehr

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz Diese Anleitung soll als Kurzreferenz und Schnellanleitung dienen um einfach und schnell Berichte auf der Homepage www.dav-koblenz.de

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Konvertieren von Settingsdateien

Konvertieren von Settingsdateien Konvertieren von Settingsdateien Mit SetEdit können sie jedes der von diesem Programm unterstützten Settingsformate in jedes andere unterstützte Format konvertieren, sofern Sie das passende Modul (in Form

Mehr

Erstellen eines Screenshot

Erstellen eines Screenshot Blatt 1 von 5 Erstellen eines Screenshot Einige Support-Probleme lassen sich besser verdeutlichen, wenn der Supportmitarbeiter die aktuelle Bildschirmansicht des Benutzers sieht. Hierzu bietet Windows

Mehr

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Ihr CMS für die eigene Facebook Page - 1

Ihr CMS für die eigene Facebook Page - 1 Ihr CMS für die eigene Facebook Page Installation und Einrichten eines CMS für die Betreuung einer oder mehrer zusätzlichen Seiten auf Ihrer Facebook Page. Anpassen der "index.php" Installieren Sie das

Mehr

Newsletter. 1 Erzbistum Köln Newsletter

Newsletter. 1 Erzbistum Köln Newsletter Newsletter 1 Erzbistum Köln Newsletter Inhalt 1. Newsletter verwalten... 3 Schritt 1: Administration... 3 Schritt 2: Newsletter Verwaltung... 3 Schritt 3: Schaltflächen... 3 Schritt 3.1: Abonnenten Verwaltung...

Mehr

6 Das Kopieren eines bereits bestehenden Inhaltselements

6 Das Kopieren eines bereits bestehenden Inhaltselements 6 Das Kopieren eines bereits bestehenden Inhaltselements Inhaltsverzeichnis 6 Das Kopieren eines bereits bestehenden Inhaltselements 1 Vorbemerkung.......................................... 1 6.1 Schritt

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Tel.: 040-528 65 802 Fax: 040-528 65 888 Email: support_center@casio.de. Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

Tel.: 040-528 65 802 Fax: 040-528 65 888 Email: support_center@casio.de. Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen. Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen. Die auf dem PC geschriebene Texte oder Programme können über dem ClassPad Manager zu ClassPad 300 übertragen werden. Dabei kann

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle Bedienungsanleitung Einsatzplanung Dieses Programm ist lizenzfrei verwendbar und gratis. Das Programm ist mit Excel 2010 erstellt worden und enthält VBA Programmierungen, also Typ.xlm, deshalb werden Sie

Mehr

Visio 2013. Grundlagen. Linda York. 1. Ausgabe, Oktober 2013

Visio 2013. Grundlagen. Linda York. 1. Ausgabe, Oktober 2013 Visio 2013 Linda York 1. Ausgabe, Oktober 2013 Grundlagen V2013 2 Visio 2013 - Grundlagen 2 Einfache Zeichnungen erstellen In diesem Kapitel erfahren Sie wie Sie Shapes einfügen, kopieren und löschen was

Mehr

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann, 2005. 1

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann, 2005. 1 Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann, 2005. 1 Starten der CD Nach dem Einlegen der CD in Ihr CD-Laufwerk müsste die CD von selbst

Mehr

Erstellen der Barcode-Etiketten:

Erstellen der Barcode-Etiketten: Erstellen der Barcode-Etiketten: 1.) Zuerst muss die Schriftart Code-39-Logitogo installiert werden! Das ist eine einmalige Sache und muss nicht zu jeder Börse gemacht werden! Dazu speichert man zunächst

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Informatik 1 Tutorial

Informatik 1 Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so

Mehr

Handbuch Groupware - Mailserver

Handbuch Groupware - Mailserver Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

Mehr

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH Dokumentenverwaltung Copyright 2012 cobra computer s brainware GmbH cobra Adress PLUS ist eingetragenes Warenzeichen der cobra computer s brainware GmbH. Andere Begriffe können Warenzeichen oder anderweitig

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Informatik I Tutorial

Informatik I Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr

Mehr

Die R-Homepage R herunterladen

Die R-Homepage R herunterladen Die R-Homepage R herunterladen Der Link für die R-Homepage lautet: http://www.r-project.org/ Um R herunterzuladen, klickt man zunächst auf download R (durch grünen Pfeil gekennzeichnet). Anschließend öffnet

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Starten der Software unter Windows 7

Starten der Software unter Windows 7 Starten der Software unter Windows 7 Im Folgenden wird Ihnen Schritt für Schritt erklärt, wie Sie Ihr persönliches CONTOUR NEXT USB auf dem Betriebssystem Ihrer Wahl starten und benutzen. Schritt 1. Stecken

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

1. Allgemein 2. 2. Speichern und Zwischenspeichern des Designs 2. 3. Auswahl der zu bearbeitenden Seite 2. 4. Text ergänzen 3. 5. Textgrösse ändern 3

1. Allgemein 2. 2. Speichern und Zwischenspeichern des Designs 2. 3. Auswahl der zu bearbeitenden Seite 2. 4. Text ergänzen 3. 5. Textgrösse ändern 3 Inhaltsverzeichnis 1. Allgemein 2 2. Speichern und Zwischenspeichern des Designs 2 3. Auswahl der zu bearbeitenden Seite 2 4. Text ergänzen 3 5. Textgrösse ändern 3 6. Schriftart ändern 3 7. Textfarbe

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Computeria Solothurn

Computeria Solothurn Computeria Solothurn Seniorinnen und Senioren entdecken den Computer und das Internet Sich mit «TeamViewer» von einem Supporter helfen lassen Diese Anleitung und die Illustrationen wurden unter Mac OS

Mehr

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Mac OSX und Safari / Mozilla Firefox

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Mac OSX und Safari / Mozilla Firefox Anleitung zum Download und zur Bedienung des Tarifbrowsers für Mac OSX und Safari / Mozilla Firefox Inhalt 1 Kurz und knapp... 1 2 Allgemeine Erklärungen zur Funktionsweise des Browsers... 2 3 Download...

Mehr

Lokale Installation von DotNetNuke 4 ohne IIS

Lokale Installation von DotNetNuke 4 ohne IIS Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen

IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen Mit Einführung der 2010 TRY (Test Referenz Jahr) Klimadatensätze ist es erstmals möglich, neben den für 15

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

LÖSUNGEN AUFGABEN: EXCEL XP (OHNE DATEIEN)

LÖSUNGEN AUFGABEN: EXCEL XP (OHNE DATEIEN) LÖSUNGEN AUFGABEN: EXCEL XP (OHNE DATEIEN) Übung (1) Elemente des Excelfensters Ordnen Sie die Begriffe richtig zu: [1] Titelleiste (Programmleiste) [9] waagrechte/horizontale Bildlaufleiste [2] Menüleiste

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Kontakte nach Nachnamen sortieren lassen

Kontakte nach Nachnamen sortieren lassen Kontakte nach Nachnamen sortieren lassen Wer hat sich nicht schon darüber geärgert, dass standardmässig die Kontakte im Adressbuch nach den Vornamen sortiert und nicht nach Nachnamen. Durch eine einfache

Mehr

Comic Life 2.x. Fortbildung zum Mediencurriculum

Comic Life 2.x. Fortbildung zum Mediencurriculum Comic Life 2.x Fortbildung zum Mediencurriculum - 1 - Comic Life Eine kurze Einführung in die Bedienung von Comic Life 2.x. - 2 - Starten von Comic Life Bitte starte das Programm Comic Life. Es befindet

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Eigene Seiten erstellen

Eigene Seiten erstellen PhPepperShop Anleitung Datum: 3. Oktober 2013 Version: 2.1 Eigene Seiten erstellen Eigene Inhalte / CMS Glarotech GmbH Inhaltsverzeichnis Anleitung zur Erstellung von eigenen Inhalten/Links...3 1. Anmeldung

Mehr

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter

Mehr

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen walker radio tv + pc GmbH Flüelerstr. 42 6460 Altdorf Tel 041 870 55 77 Fax 041 870 55 83 E-Mail info@walkerpc.ch Wichtige Informationen Hier erhalten sie einige wichtige Informationen wie sie ihren Computer

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013 Access 2013 Susanne Weber 1. Ausgabe, 1. Aktualisierung, Juni 2013 Grundlagen für Anwender ACC2013 2 Access 2013 - Grundlagen für Anwender 2 Mit Datenbanken arbeiten In diesem Kapitel erfahren Sie was

Mehr

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden. Track in Route umwandeln ACHTUNG: Ein Track kann nur dann in eine Route umgewandelt werden, wenn der Track auf Wegen gefahren wurde. Ein Querfeldein-Track kann nicht in eine Route umgewandelt werden, da

Mehr