From 43cb8f9c64568f814bc2ac903a1aa65992d41907 Mon Sep 17 00:00:00 2001 From: PocketMiner82 Date: Sat, 20 Apr 2024 16:37:03 +0200 Subject: [PATCH] fix: print often used for schreibe in pseudocode, so add print as an alias for schreibe --- README.md | 19 ++++++++++--------- .../csharpcode/TemplateCodeOutput.cs | 5 +++++ .../pseudocode/PseudocodeKeywords.cs | 3 ++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 5168f0b..c74aaec 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,21 @@ An Editor (and Interpreter) for the Pseudo Code defined for the 2024 Abitur.
The remaining part of the README will be in German. ## Grundlegende Verwendung -Dieses Programm ermöglicht die Ausführung von Pseudocode nach der [Formelsammlung 1.5.2 TG Informationstechnik](https://www.schule-bw.de/faecher-und-schularten/berufliche-schularten/berufliches-gymnasium-oberstufe/musterpruefungsaufgaben-neue-bildungsplaene-abitur-2024/formelsammlung-it.pdf) für das Abitur 2024 in Baden Württemberg. +Dieses Programm ermöglicht die Ausführung von Pseudocode nach der [Formelsammlung 1.5.2 TG Informationstechnik](https://www.schule-bw.de/faecher-und-schularten/berufliche-schularten/berufliches-gymnasium-oberstufe/musterpruefungsaufgaben-neue-bildungsplaene-abitur-2024/formelsammlung-it.pdf) für das Abitur 2024 in Baden-Württemberg. -### Zusätzlich zu der Definition in der Formelsammlung wurden folgende Operationen definiert +### Zusätzlich zu den Definitionen in der Formelsammlung wurden folgendes hinzugefügt: * `UND` - Und-Vergleich * `ODER` - Oder-Vergleich -* `schreibe(text, neueZeile = true)` - Schreibt den gegeben Text in das Ausgabefenster. - - `text`: Der auszugebende Text - - `neueZeile`: Wenn `WAHR`: Eine neue Zeile wird am Ende angehängt +* `schreibe(wert, neueZeile = wahr)` oder `print(wert, neueZeile = wahr)` - Schreibt den gegeben Text in das Ausgabefenster. + - `wert`: Der auszugebende Text + - `neueZeile`: Wenn `wahr`: Eine neue Zeile wird am Ende angehängt * `warte(zeitMs)` - Unterbricht die Ausführung des Programms für eine bestimmte Zeit. - `zeitMs`: Die Zeit in Millisekunden. -* `benutzereingabe(text, titel):Typ` - Öffnet ein Dialogfenster. - - `text`: Der im Dialogfenster angezeigte Infotext - - `titel`: Der Titel des Dialogfensters - - Rückgabetyp: Der Rückgabetyp ist der in `<` und `>` angegebene `Typ` +* `benutzereingabe(nachricht, titel):Typ` - Öffnet ein Eingabefenster. + - `nachricht`: Der im Eingabefenster angezeigte Infotext + - `titel`: Der Titel des Eingabefensters + - Rückgabetyp: Der Rückgabetyp ist der in `<` und `>` angegebene `Typ`. Sollte die Konvertierung fehlschlagen, wird NICHTS zurückgegeben. + - z.B. würde `benutzereingabe("Gib eine Zahl ein", "Zahl")` ein Eingabefenster mit dem Titel "Zahl" und dem Infotext "Gib eine Zahl ein" öffnen, welches den eingebenen Text als ganze Zahl (Integer) zurückgibt. * Nicht implementiert: - Unterstützung für mehrere Dateien - Klassen/Objekte - erfordert Unterstützung für mehrere Dateien; außerdem sind Klassen/Objekte nicht in der Formelsammlung definiert. diff --git a/pseudocodeIde/interpreter/csharpcode/TemplateCodeOutput.cs b/pseudocodeIde/interpreter/csharpcode/TemplateCodeOutput.cs index 3dc0834..1c12fbe 100644 --- a/pseudocodeIde/interpreter/csharpcode/TemplateCodeOutput.cs +++ b/pseudocodeIde/interpreter/csharpcode/TemplateCodeOutput.cs @@ -41,6 +41,11 @@ public BaseCodeOutput(Action printMethod) _printMethod = printMethod; } + protected virtual void _print(object msg, bool newLine = true) + { + _schreibe(msg, newLine); + } + protected virtual void _schreibe(object msg, bool newLine = true) { _printMethod(msg == null ? "NICHTS" : msg.ToString(), newLine); diff --git a/pseudocodeIde/interpreter/pseudocode/PseudocodeKeywords.cs b/pseudocodeIde/interpreter/pseudocode/PseudocodeKeywords.cs index 3868fe7..39c6583 100644 --- a/pseudocodeIde/interpreter/pseudocode/PseudocodeKeywords.cs +++ b/pseudocodeIde/interpreter/pseudocode/PseudocodeKeywords.cs @@ -45,7 +45,8 @@ static PseudocodeKeywords() // built-in methods KEYWORDS.Add(new PseudocodeType("schreibe", IDENTIFIER, "schreibe(^wert^)")); - KEYWORDS.Add(new PseudocodeType("warte", IDENTIFIER, "warte(^millisekunden^)")); + KEYWORDS.Add(new PseudocodeType("print", IDENTIFIER, "print(^wert^)")); + KEYWORDS.Add(new PseudocodeType("warte", IDENTIFIER, "warte(^zeitMs^)")); KEYWORDS.Add(new PseudocodeType("benutzereingabe", IDENTIFIER, "benutzereingabe<^Rückgabetyp^>(^nachricht^, ^titel^)"));