Benutzer-Werkzeuge

Webseiten-Werkzeuge


vd-archiv:listings:4d2008-02-listings

Dies ist eine alte Version des Dokuments!


4d2008-02 Listings

Berichtgenerator.zip

Berichtgenerator - Berichte generieren mit Hilfe von Gforth — ein Kinderspiel; 3 Listings: in.fs m.dep bio.txt

GTK-Listings.zip

- Widgets zum Anfassen - GUI-Skripting mit Forth und GTK+; Listing 1+2.

Quellcode_Bibliothek.zip

- Ein einfaches Quellcode–Bibiliothekssystem; 3 Listings: SAMPLE.LIB APPL.F LIBRARY.ANS

euler9.fs

\ Euler 9 .solution ( mka)

decimal vocabulary euler euler definitions

\ Satz des Pythagoras: a^2 + b^2 = c^2 : pyt ( a b – c^2 )

dup * swap dup * + ;

\ Quadratwurzel ziehen: Heron-Verfahren (Heron von Alexandria) \ Die Iterationsvorschrift lautet: xn+1 = ( xn + a/xn ) / 2 \ In RPN: a xn / xn + 2 / –> xn+1 \ Weil nur die natürlichen Werte der Wurzel aus c^2 gebraucht werden, \ wird ganzzahlig kalkuliert. \ Quelle: forth-ev wiki \ http://www.forth-ev.de/wiki/doku.php : sqrt ( a – s )

DUP 0= ?EXIT
DUP >R 
BEGIN
 R@ OVER / OVER + 2/
   DUP ROT - ABS 1 <= 
  UNTIL R> DROP ;

\ Wir brauchen nur die Werte von c, für die c eine natürliche Zahl ist. : nsqrt? ( a b – f )

pyt 
dup sqrt         ( -- n s )
dup *            ( -- n s*s )
- 0= ;           ( -- f )  \ if zero, s is natural number.

\ Ist a+b+c=1000? : 1000? ( a b – f )

2dup pyt sqrt 
+ + 1000 = ;

\ Huebsche Ausgabe der gefundenen Loesungen (!) : .solution ( a b – )

cr ." -------------------"
cr 2dup swap ." a=" . ." b=" .  
   2dup pyt sqrt ." c=" .
cr 2dup 2dup pyt sqrt + + ." a+b+c=" .
cr 2dup pyt sqrt * * ." abc=" . ;

\ Teste a,b bis zum Wert a=b=xx variable xx 1000 xx ! : p9 ( – )

xx @  0 DO
  xx @  0 DO
    i j nsqrt? IF 
      i j 1000? IF i j .solution THEN
    THEN
  LOOP
LOOP 
cr ." -------------------" ;

words cr cr ( finis)

</file>

vd-archiv/listings/4d2008-02-listings.1495393475.txt.gz · Zuletzt geändert: 2017-05-21 21:04 von mka