To save you any OCR grief:Notes:
Code:
10REM-------------------------------2030REM CALCULATION OF THE CONSTANT e506070REM (c) BORIS ALLAN, 198390100REM-------------------------------110 @%=1 : REM SETS FORMAT120 INPUT N% : N%=N%+4130 DIM TERM%(N%), E%(N%)140 TERM%(0)=1 : E%(0)=1150 M%=1160170 REPEAT SUM%=0 : REM BUILDS UP TERMS180 FOR I%=0 TO N%190 IF TERM%(I%)<>0 THEN PROC_DIVISION200 NEXT I%210 M%=M%+1220 UNTIL SUM%=0 : REM ALL TERMS ARE ZERO230240 FOR I%=N% TO 1 STEP -1 : REM ISOLATES ENTRIES250 IF I%=N%-4 THEN E%(I%)=E%(I%)+E%(I%+1) DIV 5 : REM ROUNDING260 FOR J%=3 TO 1 STEP -1270 IF I%>J% THEN PROC_SPLITTING280 NEXT J% : NEXT I%290300 N%=N%-4 : REM READY TO PRINT OUT RESULT305 VDU 2310 PRINT E%(0);".";320 FOR I%=1 TO N% : PRINT E%(I%); : NEXT I% : PRINT325 VDU 3330 END : REM END OF MAIN PROGRAM340350 DEF PROC_DIVISION : REM DIVIDING BY M%360 IT%=TERM%(I%) DIV M%370 IF I%<>N% THEN PROC_TERMS380 ENDPROC : REM _DIVISION390400 DEF PROC_TERMS : REM ADDING TERMS410 TERM%(I%+1) = TERM%(I%+1) + 10*(TERM%(I%)-M%*IT%)420 TERM%(I%) = IT%430 E%(I%) = E%(I%)+IT%440 SUM%=SUM%+IT%450 ENDPROC : REM _TERMS460470 DEF PROC_SPLITTING : REM DISTRIBUTING TERMS480 SUM%=1 : FOR K%=1 TO J% : SUM% = SUM%*10 : NEXT K%490 IT%=E%(I%) DIV SUM%500 E%(I%-J%)=E%(I%-J%) + IT%510 E%(I%)=E%(I%) - SUM%*IT%520 ENDPROC : REM _SPLITTING
- Sends output to the printer: delete lines 305 and 325 if you don't want that
- The SUM% variable clashes with the SUM reserved word in later BBC BASIC dialects
- It's not very fast. I hate to think how long the 1000 digit example given would have taken to run.
Code:
?10002.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274274663919320030599218174135966290435729003342952605956307381323286279434907632338298807531952510190115738341879307021540891499348841675092447614606680822648001684774118537423454424371075390777449920695517027618386062613313845830007520449338265602976067371132007093287091274437470472306969772093101416928368190255151086574637721112523897844250569536967707854499699679468644549059879316368892300987931277361782154249992295763514822082698951936680331825288693984964651058209392398294887933203625094431173012381970684161403970198376793206832823764648042953118023287825098194558153017567173613320698112509961818815930416903515988885193458072738667385894228792284998920868058257492796104841984443634632449684875602336248270419786232090021609902353043699418491463140934317381436405462531520961836908887070167683964243781405927145635490613031072085103837505101157477041718986106873969655212671546889570350354
Statistics: Posted by scruss — Mon Feb 12, 2024 1:59 am