Arbeiten mit dem Stack

Ähnliche Dokumente
5 25 Radizieren 25 5 und Logarithmieren log 25 2

Mikrocontroller: Einführung

ADDIEREN UND SUBTRAHIEREN VON TERMEN POTENZSCHREIBWEISE

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 8 1. Semester ARBEITSBLATT 8 RECHNEN MIT POTENZEN. 1) Potenzen mit negativer Basis

Terme vereinfachen bedeutet nichts anderes, als dass man verschiedene Variable addiert, subtrahiert, dividiert oder miteinander multipliziert.

Lernzirkel Grundrechenarten und Terme Mathematik Nikolaus-von-Kues-Gymnasium Fachlehrer : W. Zimmer Blatt 1 /18. a + b = c

Mathematik 1 -Arbeitsblatt 1-8: Rechnen mit Potenzen. 1F Wintersemester 2012/2013 Unterlagen: LehrerInnenteam GFB. Potenzen mit negativer Basis

Regeln zur Bruchrechnung

GW Mathematik 5. Klasse

Bruchterme. Klasse 8

Wieviel Uhr ist es in hundert Stunden? Eine Antwort durch Modulo- Rechnen

Skript Bruchrechnung. Erstellt: 2014/15 Von:

Mikrocontroller: Einführung

Lernzirkel Grundrechenarten und Terme Mathematik Cusanus-Gymnasium Wittlich Fachlehrer : W. Zimmer Blatt 1 /21

Quadratische Gleichungen

Polynomdivision. W. Kippels 22. April Lösungsprinzip Grundmuster einer Polynomdivision Spezielle Beispiele,

In diesr Schachtel befindet sich ein Zettel, auf dem ein Wert oder eine Zeichenfolge stehen kann, z.b. 5.

SUDOKU. l l l l l l l l l l l l l l l l. l l l l l l l l l l l l l l l l. l l l l l l l l l l l l l l l l

1 Rechnen. Addition rationaler Zahlen gleicher Vorzeichen Summand + Summand = Summe

3 Berechnungen und Variablen

Arbeitsblatt 6: Programmierung geometrischer Figuren

= * 281 = : 25 = oder 7x (also 7*x) oder (2x + 3) *9 oder 2a + 7b (also 2*a+ 7*b)

Wie stellt man eine Gleichung um?

Trachtenberg-Division

Greenfoot: Verzweigungen

Mit dem Distributivgesetz lösen wir die Klammern auf, indem wir jeden Summanden in der Klammer mit dem Faktor vor der Klammer multiplizieren.

Fingerterme. Welche. passen?

Aufgabe 1 Gleichungen vereinfachen und lösen: 28

Demo-Text für Klasse 5 Einfache Gleichungen INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK.

Aufgaben zur Attiny-Platine

2 ZAHLEN UND VARIABLE

Grundlagen der Informatik I. Übung

Berechne schriftlich: a) b) Bilde selbst ähnliche Beispiele.

Rechnen mit negativen Zahlen

3 Mit Programmen und Fenstern

Faktorisierungen und Teilbarkeiten natürlicher Zahlen. Teiler natürlicher Zahlen

Grundwissen. 7. Jahrgangsstufe. Mathematik

Terme und Gleichungen

Das ATTINY-Projekt Wieso FORTH? Georg Heinrichs

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 2. Semester ARBEITSBLATT 3 RECHNEN MIT BRUCHTERMEN. 1. Kürzen von Bruchtermen


Die Zeilen mit geraden Zahlen beim Halbieren werden gestrichen.

Umgekehrter Dreisatz Der umgekehrte Dreisatz ist ein Rechenverfahren, das man bei umgekehrt proportionalen Zuordnungen anwenden kann.

Sätze über ganzrationale Funktionen

Termumformungen (ohne binomische Formeln)

Mathedidaktik Mal & Geteilt Inhaltlicher Fokus

Wiederholung der Grundlagen

Dualzahlen

Programmieren I. Kapitel 5. Kontrollfluss

Mathematik 1 -Arbeitsblatt 1-4: Rechnen mit Brüchen. 1F Wintersemester 2012/2013 Unterlagen: LehrerInnenteam GFB RECHNEN MIT BRÜCHEN

Mathematik: Mag. Wolfgang Schmid Arbeitsblatt 7 4. Semester ARBEITSBLATT 7 RECHNEN MIT LOGARITHMEN

Wenn Du Deinen Rechner zum ersten Mal einschaltest, verlangt er von Dir einige Angaben. Wähle als Sprache Deutsch.

Schleifenanweisungen

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

ALGEBRA Lineare Gleichungen Teil 1. Klasse 8. Datei Nr Friedrich W. Buckel. Dezember 2005 INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK

Folgende drei Punkte erleichtern die Entwicklung der Rechenfertigkeit bei allen Lernenden

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

Lösungen. z4q62k Lösungen. z4q62k. Name: Klasse: Datum:

MATKING MATQUEEN Five

Übungsblatt 1. Java Vorkurs (WS 2017)

Programmieren mit dem TI-92

Binomischer Satz. 1-E Vorkurs, Mathematik

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 5 1. Semester ARBEITSBLATT 5 RECHNEN MIT BRÜCHEN. 1. Arten von Brüchen und Definition

Bei schönen Päckchen Auffälligkeiten beschreiben und begründen Transkripte zu den Videos

Grundwissen. 5. Jahrgangsstufe. Mathematik

Musterlösungen Lehrbrief 01 Technik (Mathematische Grundlagen) Seite 1 von 7

ARBEITSBLATT 14 ANALYTISCHE BERECHNUNGEN AM KREIS

Download. Basics Mathe Gleichungen mit Klammern und Binomen. Einfach und einprägsam mathematische Grundfertigkeiten wiederholen.

Übungspaket 9 Logische Ausdrücke

Ich mache eine saubere, klare Darstellung, schreibe die Aufgabenstellung ab und unterstreiche das Resultat doppelt.

5 Stellenwertsysteme. Berechne q :=, und setze r := a q b. = 2.25, also q = 2.25 = 2 und = 3. Im Beispiel ergibt sich a b

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen

Die Karten Die Karten werden benutzt, um die Piñatas zu füllen. Es gibt 3 verschiedene Typen von Karten:

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Grundwissen JS 5 Algebra

Mathematischer Vorkurs

WELT DER ZAHL Schuljahr 1

1) Martin kauft im Supermarkt drei Liter Milch um je m, zwei Packungen Toastbrot um t und eine Packung Butter um b.

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Die Mal-Mühle: ein Übungsformat zum multiplikativen Rechnen

Station 1 TERME BEGRIFFE 1. Station 2 ADDITION UND SUBTRAKTION GANZER ZAHLEN. Berechne a) 7 13 = b) 7 13 = d) = h) = f) 9 28 = g) 9 28 =

Vorübung 1 Beschriften Sie die Tabelle wie in der Abbildung dargestellt.

(1) Werte berechnen und Definitionsbereich finden. (2) Kürzen und Erweitern von Bruchtermen

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 6. Semester ARBEITSBLATT 3 RECHENREGELN FÜR DAS DIFFERENZIEREN VERKETTETER FUNKTIONEN

Richtig rechnen H 3/4 Fördern und Inklusion

Trage nachfolgend bitte ein, wie lange du insgesamt für die Bearbeitung dieses Übungsblattes gebraucht hast.

Mathe Leuchtturm Übungsleuchtturm 5.Kl.

1. Binomische Formel. Hilfe 1.1. Seite Binomische Formel: (a + b)² = a² + 2ab + b²= a a + 2 a b + b b

Veranschaulichung des Zusammenspiels der Komponenten eines von-neumann-rechners

Addition und Subtraktion natürlicher Zahlen

1 Körper. Wir definieren nun, was wir unter einem Körper verstehen, und sehen dann, dass es noch andere, ganz kleine Körper gibt:

Natürliche Zahlen, besondere Zahlenmengen

Handbuch Programmieren für Kinder

Die Ausgangsposition. Der aus drei Scheiben bestehende Turm steht auf Platz 1.

Rechnen mit Potenzen und Termen

Werkstatt zur Übung und Festigung des zusammengesetzten Nomens

Transkript:

Das Attiny-Projekt Arbeiten mit dem Stack 1 Arbeiten mit dem Stack Der Stack ist einer der wichtigsten Konzepte von FORTH. Wir können uns den Stack vorstellen als einen Stapel von Zahlen. In der Tat heißt das englische Wort stack auf deutsch nichts anderes als Stapel. Wozu dient nun der Stack und wie wird er praktisch eingesetzt? Das soll in diesem Kapitel erklärt werden. Schauen wir uns zunächst das Wort stapeln an: : stapeln 11 22 33 44 55 ; Wird dieses Wort ausgeführt, so werden die Zahlen 11, 22, 33, 44 und 55 der Reihe nach auf den Stack gelegt. Anschaulich können wir uns das so vorstellen: Abb. 1 Abb. 2 Am Ende liegen unsere fünf Zahlen übereinander, die 11 zuunterst, die 55 ganz oben. Die oberste Zahl wird auch TOS (= Top Of Stack) genannt. Wörter wie z. B.. und wait greifen auf diesen Stapel zu. Das Wort. holt sich z. B. den TOS vom Stapel und gibt diese Zahl auf dem Port B aus; das Wort wait greift sich auch den TOS und wartet entsprechend viele Sekunden. Wird das folgende Wort : ausgabe. wait. ; nach dem Wort stapeln ausgeführt, geschieht folgendes:. holt die Zahl 55 vom Stack und gibt sie auf Port B aus. wait holt die Zahl 44 vom Stack und wartet entsprechend viele Sekunden.. holt die Zahl 33 vom Stack und gibt sie auf Port B aus.

Das Attiny-Projekt Arbeiten mit dem Stack 2 Am Schluss befinden sich nur noch die Zahlen 11 und 22 auf dem Stack. Abb. 3 Wörter verändern i. A. den Stack: Unser Wort stapeln legt 5 Zahlen auf den Stack, unser Wort ausgabe entfernt die obersten drei Zahlen. Manche Worte holen erst Zahlen vom Stapel und legen anschließend neue Werte auf dem Stapel ab. Dies gilt insbesondere auch für Rechenoperationen wie Plus und Minus. Wir schauen uns einmal etwas genauer an, wie man mithilfe des Wortes + in FORTH zwei Zahlen addiert. Zum Beispiel sollen die Zahlen 4 und 9 addiert werden. Von den meisten Taschenrechnern, aber auch von vielen Programmiersprachen, ist man es gewohnt, die folgende Anweisung zu schreiben: 4 + 9 Das Rechenzeichen steht zwischen den beiden Summanden; man spricht hier von einer Infix- Schreibweise. In FORTH schreibt man dies so: 4 9 + (Leerzeichen zwischen 4 und 9 nicht vergessen!) Hier werden zuerst die beiden Summanden eingegeben und anschließend erst das Rechenzeichen; man spricht hier von einer Postfix-Schreibweise. Was steckt dahinter? Natürlich unser Stapel! Zunächst werden die Zahlen 4 und 9 auf den Stapel gelegt; dann holt das Wort + diese beiden Zahlen vom Stapel, addiert sie und legt das Ergebnis (also 13) wieder auf den Stapel. Der Vorteil dabei: Das Wort + führt bei FORTH die Addition sofort aus; beide Summanden liegen ja bereits vor. Bei der Infix-Schreibweise ist das nicht so einfach möglich. Hier müssen sich Taschenrechner oder Computer das Pluszeichen zunächst merken; die eigentliche Addition kann erst ausgeführt werden, wenn nach dem zweiten Summanden noch ein weiterer Befehl z. B. in Form von = erfolgt.

Das Attiny-Projekt Arbeiten mit dem Stack 3 Wenden wir unsere Kenntnisse nun an, um den Attiny mit FORTH die Rechenaufgabe 4 + 9 durchführen zu lassen. Unser Programm sieht so aus: : main 4 9 +. ; Wir geben es in das Quelltext-Feld ein, interpretieren, kompilieren und übertragen es. Die Leuchtdioden am Port B zeigen tatsächlich die Zahl 13 an (&B00001101). Abb. 4 Wir haben bereits gelernt, was hier im Einzelnen geschieht: Zuerst werden die Zahlen 4 und 9 auf den Stack gelegt; dann holt das Wort + diese beiden Zahlen vom Stack, addiert sie und legt das Ergebnis wieder auf den Stack. Das nächste Wort. holt sich diese Zahl 13 vom Stack und gibt sie auf dem Port B aus. Wir sehen: Der Stack ist eine Art Marktplatz, auf dem die einzelnen Wörter Zahlen holen oder auch abgeben können. Im Gegensatz zu einem echten Marktplatz können hier allerdings nur Zahlen gehandelt werden; außerdem gibt es hier nur einen einzigen Stand und an diesem Stand liegen die Zahlen nicht irgendwie nebeneinander, sondern ordentlich übereinander auf einem einzigen Stapel. An dieser Stelle sei schon verraten: FORTH stellt noch weitere Möglichkeiten zum Austausch von Daten zwischen den Wörtern zur Verfügung, z. B. sogenannte Variablen. Der Austausch über den Stack ist aber die wichtigste Methode. Deswegen wollen wir den Umgang mit dem Stack noch etwas üben. Wie man einfache Rechenaufgaben mit FORTH lösen kann, haben wir schon kennen gelernt. Wie aber sieht es mit komplexen Termen aus? 1. Beispiel: Term: ( 3 + 5 ) * 2 Abb. 5

Das Attiny-Projekt Arbeiten mit dem Stack 4 FORTH: 3 5 + 2 * 2. Beispiel: Term: 120-5 * 20 FORTH: 120 5 20 * - Bei dem letzten Beispiel könnten die Zahlen 120, 5 und 20 schon fertig auf dem Stack liegen; um das Ergebnis des Terms zu erhalten, müssten nur noch die Worte * und - hintereinander ausgeführt werden. Ginge das auch beim ersten Beispiel? Nein, auf keinen Fall wäre das so einfach wie im Beispiel 2: Da die Zahl 2 auf dem TOS liegt, würde jede Operation sich auf jeden Fall (auch) auf diese Zahl 2 beziehen. Die Klammern im Term verlangen aber, dass zunächst die Zahlen 3 und 5 verarbeitet (addiert) werden. Es gibt aber eine Reihe von FORTH-Wörtern, die die Zahlen auf dem Stack manipulieren (vertauschen, entfernen oder verdoppeln) können: swap ( a b b a ) vertauscht die zwei obersten Stackwerte dup ( a a a ) dupliziert (verdoppelt) den obersten Stackwert over ( a b a b a ) kopiert den zweitobersten Stackwert nach oben rot ( a b c b c a ) rotiert die drittoberste Zahl nach oben drop ( a ) entfernt die oberste Zahl vom Stack

Das Attiny-Projekt Arbeiten mit dem Stack 5 Hier wurde auch eine für FORTH typische Beschreibung der Stackmanipulation benutzt: Die benutzten Stackwerte werden hinter dem FORTH-Wort in Klammern angegeben. Links vom Bindestrich stehen die Stackinhalte vor der Anwendung des FORTH-Wortes, rechts vom Bindestrich die Stackinhalte nach Ausführung des Wortes. Im Prinzip ist diese Schreibweise nur eine vereinfachte formale Darstellung unserer Stapelbilder wie in Abb. 4; bei der Klammerdarstellung ist das Stapelbild lediglich um 90 im Uhrzeigersinn gedreht. Nehmen wir einmal an, auf dem Stack lägen schon die Zahlen a und b; Ziel wäre es, den Term a * ( a + b) auszurechnen. Ein geeignetes Wort zur Berechnung des Terms könnte so aussehen: : term over + * ; Das macht die folgende Bildfolge deutlich. Abb. 6 Ließe sich auf ähnliche Weise auch ein geeignetes Wort für die Lösung unseres ersten Beispiels finden? Natürlich, und zwar so: : beispiel1 rot rot + * ; Zeichnen Sie dazu einmal selbst eine entsprechende Folge von Stapelbildern! Sie sehen: Der Umgang mit den Stackmanipulationen ist im Prinzip einfach, aber gewöhnungsbedürftig. Deswegen hier einige Fingerübungen: 1. Überlegen Sie einmal selbst, wie man mit dem * -Wort das quadrat -Wort definiert; dieses soll zu einer Zahl auf dem TOS die zugehörige Quadratzahl liefern: quadrat ( a a 2 )

Das Attiny-Projekt Arbeiten mit dem Stack 6 2. drop_2 ( a b c... a c... ) 3. antirot ( a b c c a b ) 4. swap_2 ( a b c b a c ) 5. /or Division ohne Rest-Anzeige; / benutzen