
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
' =========================================================================== ' Demoprogramm: PI-Berechnung mit Integer mittels Spigot-Algorithmus ' In OCBASIC 1.12a_e1 für Open-Maxi von Dietmar Harlos am 2. September 2026 ' =========================================================================== ' Nach: ' http://stanleyrabinowitz.com/bibliography/spigot.pdf ' APPENDIX 2. PASCAL CODE ' Ausgabe überprüfen: ' 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067 ' 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067 ' --- Definitionen ---------------------------------------------------------- INCLUDE "omax.def" 'Definitionen für die Open-Maxi DEFINE a &h2aa 'Array an 1. Adresse hinter dem USER-RAM DIM n, len, i, j, k, q, x, nines WORD DIM predigit BYTE ' --- Hauptprogramm --------------------------------------------------------- End2Host=ON 'Bei Programmende (siehe END) gleich in den Host-Modus wechseln n = 100 'Anzahl der zu berechnenden Stellen len = 10*n / 3 ' Array initialisieren (Alle Elemente auf 2 setzen) FOR j = 1 TO len: POKEW a+j*2, 2: NEXT j nines = 0 predigit = 0 'First predigit is a 0 FOR j = 1 TO n q = 0 FOR i = len DOWNTO 1 'Work backwards x = 10*PEEKW(a+i*2) + q*i POKEW a+i*2, x MOD (2*i-1) q = x / (2*i-1) NEXT i POKEW a+2, q mod 10 q = q / 10 IF q = 9 THEN ADD nines, 1 ELSE IF q = 10 THEN PUT predigit+1+ASC("0") predigit = 0 WHILE nines PUT ASC("0") 'zeros SUB nines,1 WEND ELSE PUT predigit+ASC("0") predigit = q WHILE nines PUT ASC("9") SUB nines,1 WEND END IF NEXT j PUT predigit+ASC("0") END 'Zurück in den Hostmodus. Neustart mit RETURN-Taste. ' --- Programmende --------------------------------------------------------- Passender Link: Infosite zu den OM-Mikrocontrollern Meine Homepage: http://ccintern.dharlos.de/ |
| Antwort schreiben |