abgabe in zuge der lva stackbasierte sprachen
DESCRIPTION
Abgabe in Zuge der LVA Stackbasierte Sprachen. Graphische Darstellung von Infix-Rechnungen mit Postscript. Gruppe 111: Thomas Strasser, 0625237 Nenad Celikovic , 0509838. Interne Funktionen. case – bietet eine Fallentscheidung unter postscript an - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/1.jpg)
ABGABE IN ZUGE DER LVA STACKBASIERTE SPRACHEN
Gruppe 111:Thomas Strasser, 0625237Nenad Celikovic, 0509838
Graphische Darstellung von Infix-Rechnungen mit Postscript
![Page 2: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/2.jpg)
Interne Funktionen
case– bietet eine Fallentscheidung unter postscript an
calcStrToCommandList - Parsed einen String in ein ausführbares Feld
pushArray – fügt Element in ausführbares Feld hinzu Problem bei Funktionen/Operationen
Lösung: 1 null-Eintrag freilassen strspn– analog zu C strspn; liefert statt
einer Länge 2 Strings zurück
![Page 3: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/3.jpg)
INPUT - CALC
Funktion mit einer Variable als StringPunkt vor Strich-Regel gilt nicht, durch Klammern realiziert
Beispiel:(2+(23-9)*4)
![Page 4: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/4.jpg)
OUTPUT
Calc: • ein auführbares Feld auf dem Stack
Dcalc:• leerer Stack• graphische Darstellung der Funktion
![Page 5: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/5.jpg)
Vorhandene Operationen
+, -, *, / Sin, cos, tan, … alle unäre Postscript Funktionen
Parameterübergabe und Rückgabewert über Stack Realisiert durch: case, strfilter und strspn
=> Zahlen und Namen können leicht geparst werden
Z.B: „12+4“ „0123456789.“ strspn => „+4“ „12“
![Page 6: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/6.jpg)
calcStrToCommandList Parsed einen String in ein
ausführbares FeldRealisiert durch baumartige FelderBaum -> ausführbares Feld
![Page 7: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/7.jpg)
Calc - Beispiel
(1+(1+2)-(x*4))
1 +
1 2 + x 4 *
-
x 4 * -1 1 2 + +
![Page 8: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/8.jpg)
F(x) = x*x*x
![Page 9: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/9.jpg)
f(x) = sin(x)*100
![Page 10: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/10.jpg)
f(x) = cos(x)*100
![Page 11: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/11.jpg)
Fx(x) = sin(x*(3/7)*100Fy(y) = cos(y*(4/5)*100
![Page 12: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/12.jpg)
Fx(i) = sin(i*(3/7))*100Fy(i) = cos(i*(3/5))*100
![Page 13: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/13.jpg)
F(x) = x*x
![Page 14: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/14.jpg)
F(x) = x*x
• Draw = lineto
![Page 15: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/15.jpg)
F(x) = x*x
• Draw = 20 20 180 arc• Radius = 20• Winkel = 180°
![Page 16: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/16.jpg)
F(x) = x*x
• draw = 2 Bezier Kurven• mit 2 Zwischenpunkten• 1. ZW.Punkt = x/2, y/2• 2. ZW.Punkt = x*2, y*2
![Page 17: Abgabe in Zuge der LVA Stackbasierte Sprachen](https://reader031.vdocuments.mx/reader031/viewer/2022012922/56814d6c550346895dbab69d/html5/thumbnails/17.jpg)
DANKE FÜR DIE AUFMERKSAMKEIT