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