<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.forth-ev.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.forth-ev.de/feed.php">
        <title>Forth-eV Wiki - examples</title>
        <description></description>
        <link>https://wiki.forth-ev.de/</link>
        <image rdf:resource="https://wiki.forth-ev.de/lib/exe/fetch.php/wiki:logo.png" />
       <dc:date>2026-05-16T14:48:17+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:4d_listings?rev=1495424018"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:bmi_calc?rev=1370546810"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:dates_dict?rev=1370546810"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:daymonthyear?rev=1544828061"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:heartbleed?rev=1397246454"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p115?rev=1370546812"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p146?rev=1370546812"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p151?rev=1370546812"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p172?rev=1370546812"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:proof_of_sqrt_baden?rev=1370546812"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:simpleoop?rev=1370546813"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:square_root?rev=1370546813"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:stringstackmk?rev=1495426206"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:tetris_term?rev=1752966695"/>
                <rdf:li rdf:resource="https://wiki.forth-ev.de/doku.php/examples:word_scrambler?rev=1370546813"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.forth-ev.de/lib/exe/fetch.php/wiki:logo.png">
        <title>Forth-eV Wiki</title>
        <link>https://wiki.forth-ev.de/</link>
        <url>https://wiki.forth-ev.de/lib/exe/fetch.php/wiki:logo.png</url>
    </image>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:4d_listings?rev=1495424018">
        <dc:format>text/html</dc:format>
        <dc:date>2017-05-22T03:33:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>4d_listings</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:4d_listings?rev=1495424018</link>
        <description>4d_listings

Die Listings sind jetzt im 4d-Archiv versammelt. (mk 2017-05-22)</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:bmi_calc?rev=1370546810">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Body-Mass-Index berechnen</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:bmi_calc?rev=1370546810</link>
        <description>Body-Mass-Index berechnen

Der Body-Mass-Index ist ein Wert der das Maß der Fettleibigkeit eines Menschen beschreibt. Er berechnet sich zu
BMI=m/(l*l)  mit Länge l in m und Masse m in kg
Bekannterweise arbeitet Forth mit ganzen Zahlen. Die Größe eines Menschen wird in cm gemessen. Deshalb muß die Formel umgeschrieben werden:</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:dates_dict?rev=1370546810">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.forth-ev.de/doku.php/examples:dates_dict?rev=1370546810</link>
        <description>Daten abspeichern im Wörterbuch

Eine interessante Variante in Forth sind die Wörter mit dem Komma.( ,  c,  ,„ ) Sie speichern Daten in das Wörterbuch. Das Wörterbuch ist ein Bestandteil eines Forth-Systems, daß ich mir so vorstelle:

Der Stack ist ein Werktisch und das Dictionary ein großes Hochregal mit vielen Fächern. Daneben gibt es Tore für den Datenaustausch der Festplatte und dem Anwender über tastatur, Bildschirm und Drucker. Als viertes gibt es die Quellcode-Dateien, die das Hochregal m…</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:daymonthyear?rev=1544828061">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-14T22:54:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Datumsberechnung in Forth</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:daymonthyear?rev=1544828061</link>
        <description>Datumsberechnung in Forth

Nachdem Microsoft und Freescale an Silvester ihre geballte Inkompetenz gezeigt haben, blieben Diskussionen zur fehlerfreien Datumsberechnung nicht aus. Dabei ist Datumsberechnung doch so einfach!

Der folgende Code berechnet das Datum des Julianischen und Gregorianischen Kalender (mit Übergang vom 4. Oktober zum 15. Oktober 1582) ohne Tabelle. Zeitnullpunkt, also Tag 0, ist der 1. März im astronomischen Jahr 0 (1 vor Christus), nach Julianischem Kalender.</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:heartbleed?rev=1397246454">
        <dc:format>text/html</dc:format>
        <dc:date>2014-04-11T20:00:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Heartbleed Check</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:heartbleed?rev=1397246454</link>
        <description>Heartbleed Check

Im OpenSSL von Version 1.0.1 bis 1.0.1f (ohne g) war eine ernste Lücke, die hier mit einem kurzen Programm demonstiert wird (das ist ein funktionierender Exploit!). Verwenden mit einem neueren Gforth (snapshot), und dann mit


gforth heartbleed.fs &lt;host&gt; [&lt;port&gt;]</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p115?rev=1370546812">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Project Euler - Problem 115</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p115?rev=1370546812</link>
        <description>Project Euler - Problem 115

Quelle

HINWEIS: Dies ist eine schwierigere Variante des Problem 114.

Eine Reihe mit der Länge n Einheiten enthält rote Blöcke der Mindestlänge m so, dass zwischen zwei roten Blöcken immer mindestens ein schwarzes Quadrat liegt. Die roten Blöcke dürfen verschiedene Längen haben. (Siehe Bild beim Problem 114.)</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p146?rev=1370546812">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Project Euler - Problem 146</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p146?rev=1370546812</link>
        <description>Project Euler - Problem 146

Lösung des Problems und Definitionen von Forth Worten zu den Stichworten:

	*  Doppelte Genauigkeit (double precision)
	*  logic and shift words for double precision operands
	*  double precision math
	*  Miller Rabin Primzahltest</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p151?rev=1370546812">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Project Euler - Problem 151</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p151?rev=1370546812</link>
        <description>Project Euler - Problem 151

Quelle

In einem Kopierladen laufen 16 Aufträge jede Woche, für die jeweils ein Bogen spezielles farbechtes Papier der Größe A5 benötigt wird.

An jedem Montag Morgen öffnet der Vorarbeiter einen neuen Umschlag in dem ein großer Bogen des Spezialpapiers der Größe A1 ist.
Er teilt ihn auf die Hälfte, und erhält so zwei Bögen der Größe A2. Dann teilt er einen solchen Bogen wiederum auf die Hälfte, und bekommt so zwei Bögen der Größe A3, und so macht er weiter, bis er e…</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p172?rev=1370546812">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Project Euler - Problem 172</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:project_euler_-_problem_p172?rev=1370546812</link>
        <description>Project Euler - Problem 172

Quelle

Wie viele 18-stellige Zahlen (ohne führende Nullen) n gibt es, so dass keine Stelle mehr als drei Mal in n auftritt?

Antwort: Finde es selbst heraus mit Forth ;-) 

----------

Eine Lösung mit gforth:


#! /usr/bin/gforth
 
: d*    ( d d -- d )    3 pick * &gt;r  tuck * &gt;r  um*  r&gt; +  r&gt; +    ;
 
: p172                                       { W: n W: r -- D: ret }
    n 3 = if r r r * * s&gt;d exit then
    n 2 = if r r *     s&gt;d exit then
    n 1 = if r         s…</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:proof_of_sqrt_baden?rev=1370546812">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>odd integer and square root</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:proof_of_sqrt_baden?rev=1370546812</link>
        <description>odd integer and square root

Ungerade Zahlen und das Quadrat. Betrachten wir zum Beispiel das 5×5 Feld mit 25 Elementen.



         x x x x x
         O x x x 0
         O O X 0 0
         O X X X 0
         X X X X X



Durch Umsortieren des Quarats entsteht die Reihe ungerader ganzer Zahlen.</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:simpleoop?rev=1370546813">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.forth-ev.de/doku.php/examples:simpleoop?rev=1370546813</link>
        <description>Please go to the svn repository for the code: &lt;http://www.forth-ev.de/repos/simpleOOP/&gt;

And here is documentation as a PDF file: &lt;http://www.forth-ev.de/repos/simpleOOP/doc/simpleOOP.pdf&gt;

File OOP.FS holds the definitions for „simpleOOP“, which loads on top of gforth 0.62. It makes maximum use of the existing Forth mechanisms to realize OO and therefore, it is very concise - 415 lines of code realize all mechanisms, which can be expected from an OO package to the best of my knowledge, namely: …</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:square_root?rev=1370546813">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Quadratwurzel ziehen</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:square_root?rev=1370546813</link>
        <description>Quadratwurzel ziehen

Das Quadratwurzel zu ziehen ist ein Standard-Problem. 
Es gibt verschiedene Verfahren dafür.

signed integer square root (Heron)

Hierbei wird mit dem Ausdruck

&lt;latex&gt;x&#039; = {{n\over x} + x\over 2}&lt;/latex&gt;

also Näherungswert=(Schätzwert+Eingangswert/Schätzwert)/2 so lange an das Ergebnis angenähert, bis eine vorher festgelegte Genauigkeit erreicht worden ist. Das Verfahren konvergiert rasch. Algebraisch formuliert lautet die Vorschrift:</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:stringstackmk?rev=1495426206">
        <dc:format>text/html</dc:format>
        <dc:date>2017-05-22T04:10:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>String Stacks - Zeichenketten</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:stringstackmk?rev=1495426206</link>
        <description>String Stacks - Zeichenketten

Diese Fingerübungen sind vor vielen Jahren entstanden auf Anregung von Klaus Schleisiek in Hamburg. Es ging darum Zeichenketten auf einem Stack zu halten und dort manipulieren zu können.

Die Aufgabe war:

	*  Mehrere String-Stacks anlegen können zwischen denen man umschalten kann.</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:tetris_term?rev=1752966695">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-19T23:11:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Der Klassiker: Tetris for Terminals</title>
        <link>https://wiki.forth-ev.de/doku.php/examples:tetris_term?rev=1752966695</link>
        <description>Der Klassiker: Tetris for Terminals

Thanks to Dirk Zoller for giving us Tetris for Terminals.

See more programming examples collected for kForth or review its Technical Information. Thanks to Creative Consulting for Research and Education for collecting those examples. 

----------

Tested ok with gForth on Mac OSX 10.4.5 terminal. Note: kForth uses</description>
    </item>
    <item rdf:about="https://wiki.forth-ev.de/doku.php/examples:word_scrambler?rev=1370546813">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-06T19:26:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>https://wiki.forth-ev.de/doku.php/examples:word_scrambler?rev=1370546813</link>
        <description>Der Wordscrambler lief in gforth. Das Beispiel am Ende der Codesequenz zeigt den Gebrauch. 



\ word scrambler based on random shuffle

vocabulary scrambler
scrambler definitions 

variable seed

base @ hex 10450405 constant generator 
base !

: rnd  ( -- n )  seed @ generator UM* DROP 1+ DUP seed ! ;

: random ( n -- 0..n-1 )  rnd UM* NIP ;  

: init ( -- )
    TIME&amp;DATE  12 * + 31 * + 24 * + 60 * + 60 * +  seed !  ;  init

: c&gt;&lt; ( c-addr1 c-addr2 -- ) \ character exchange
    2dup c@ ( c-addr…</description>
    </item>
</rdf:RDF>
