10 REM +----------------------------+
20 REM ! ROTEN3 .BAS !
30 REM ! VER 3.0 /1981-04-12 !
40 REM ! (C)STEFAN PERSSON !
50 REM ! gjort av Stefan Persson !
60 REM ! Jordgubbsv{gen 13 !
70 REM ! 734 00 Hallstahammar !
80 REM ! 0220/126 93 !
90 REM +----------------------------+
100 A$='' : B$='' : C$='' : D$='' : E$='' : K$='' : I%=0% : G$='0' : J7$='' : H3%=0% : U%=0%
110 ; CHR$(12%)"OBS! Varning f|r spill i ASCII- aritmetiken vid l}nga tal OBS!"
120 ; CUR(5%,14%)"ROTEN" : ; TAB(14%)"=====" : ; "Vilket tal ska jag ta roten ur"; : INPUT A$
130 ONERRORGOTO 130 : ; CUR(9%,0%)"Antal decimaler"; : INPUT I% : IF I%>20% GOTO 150
140 GOTO 170
150 ; CHR$(7%) : ; "H|gst 20 decimaler." : ; "Tryck p} "; : GET F$
160 ; CUR(11%,0%)" " : ; " " : ; CUR(9%,15%)" " : GOTO 130
170 ; : ; : ; "ROTEN UR "A$" = ";
180 U%=INSTR(1%,A$,'.') : IF U%<>0% GOSUB 400
190 GOSUB 310
200 FOR J%=0% TO I%
210 FOR B=10 TO 0 STEP -1
220 B$=RIGHT$(NUM$(B),2) : C$=E$+B$ : F$=MUL$(C$,B$,0)
230 D$=SUB$(A$,F$,0) : IF D$0% GOTO 490
370 ; B$; : K$=K$+B$
380 ; '.'; : RETURN
390 REM **** SUBRUTIN LITET TAL ****
400 K9%=LEN(A$)-U% : IF K9%/2%<>K9%/2 K9%=K9%+1%
410 IF ASC(LEFT$(A$,1%))<>46% GOTO 440
420 FOR I%=U% TO LEN(A$) : P%=INSTR(I%,A$,'0') : IF P%=0% GOTO 420 ELSE NEXT I%
430 [6%=INT((I%-U%-1%)/2)
440 IF K9%=2% K9%=4%
450 H3%=1% : J7$='1' : FOR I%=1% TO K9% : J7$=MUL$(J7$,'10',0) : NEXT I%
460 A$=MUL$(A$,J7$,0)
470 RETURN
480 REM ** SUBRUTIN VID DECIMALTAL **
490 IF LEFT$(B$,1%)=' ' B$=RIGHT$(B$,2%)
500 K9%=U%/2% : ; LEFT$(B$,K9%)'.'STRING$([6%,48%)RIGHT$(B$,K9%+1%);
510 K$=K$+B$ : RETURN