Skip to content

Commit

Permalink
fix: print often used for schreibe in pseudocode, so add print as an …
Browse files Browse the repository at this point in the history
…alias for schreibe
  • Loading branch information
PocketMiner82 committed Apr 20, 2024
1 parent 89ba8ef commit 43cb8f9
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,21 @@ An Editor (and Interpreter) for the Pseudo Code defined for the 2024 Abitur.<br>
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<Typ>(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<Typ>(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<GZ>("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.
5 changes: 5 additions & 0 deletions pseudocodeIde/interpreter/csharpcode/TemplateCodeOutput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ public BaseCodeOutput(Action<string, bool> 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);
Expand Down
3 changes: 2 additions & 1 deletion pseudocodeIde/interpreter/pseudocode/PseudocodeKeywords.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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^)"));


Expand Down

0 comments on commit 43cb8f9

Please sign in to comment.