100 REM +---------------------+ 110 REM ! Program ... ROTENUR ! 120 REM ! Roturdragning V 2.5 ! 130 REM ! Klarar ca 3500 ! 140 REM ! decimaler med 32 Kb ! 150 REM ! av ! 160 REM ! Olle Bliding <2182> ! 170 REM ! (c) ovanst}ende och ! 180 REM ! ABC-klubben ! 190 REM +---------------------+ 200 ONERRORGOTO 200 210 ; CHR$(12%)TAB(10%)"KVADRATROTSURDRAGNING" : ; TAB(10%)"MED STOR NOGGRANNHET." 220 ; TAB(10%)"DOCK BARA HELTAL." : ; TAB(10%)"INGEN AVRUNDNING AV" : ; TAB(10%)"SISTA DECIMALEN." 230 ; : ; "Med hur m}nga decimaler, ej mer {n 3500" : ; "(beroende p} minnesutrymme)"; : INPUT Q% : Q=Q% 240 ; "Det tar ca"; 250 IF Q<46 ; INT(Q*Q*.0005*10+.5)/10;" minuter." ELSE ; INT(Q*Q*.0005+.5);" minuter." 260 DIM A%(Q%+9%),B%(9%+Q%),T%(9%+Q%),G%(9%+Q%) 270 ; "Vilket tal skall jag" : ; "dra roten ur"; : INPUT A%(1) 280 ; : ; " ROTEN UR";A%(1);" [R = "; 290 G%=3% : H%=3% : K%=-2% 300 FOR F%=1% TO G% 310 IF A%(F%)>9% A%(F%+1%)=A%(F%+1%)+1% : A%(F%)=A%(F%)-10% : GOTO 310 320 NEXT F% : GOTO 370 330 G%=G%+2% : FOR F%=G% TO 3% STEP -1% : A%(F%)=A%(F%-2%) : NEXT F% : A%(2%)=0% : A%(1%)=0% 340 B%(1%)=B%(1%)*2%-2% : IF B%(1%)>9% B%(2%)=B%(2%)+1% : B%(1%)=B%(1%)-10% 350 H%=H%+2% 360 FOR F%=H% TO 2% STEP -1% : B%(F%)=B%(F%-1) : NEXT F% : IF B%(H%)=0% H%=H%-1% 370 N%=1% 380 B%(1)=N% 390 FOR F%=1% TO G% : T%(F%)=N%*B%(F%) : NEXT F% 400 FOR F%=1% TO G% 410 IF T%(F%)>9% T%(F%+1%)=T%(F%+1%)+T%(F%)/10% : T%(F%)=T%(F%)-T%(F%)/10%*10% 420 NEXT F% : IF T%(F%) G%=F% 430 FOR F%=G% TO 1% STEP -1% 440 IF A%(F%)-2% N%=10% : B%(1)=10% : GOTO 490 470 FOR F%=1% TO G% : G%(F%)=T%(F%) : NEXT F% 480 N%=N%+1% : GOTO 380 490 FOR F%=1% TO G% : A%(F%)=A%(F%)-T%(F%) 500 IF A%(F%)<0% A%(F%)=A%(F%)+10% : A%(F%+1%)=A%(F%+1%)-1% 510 G%(F%)=0% : T%(F%)=0% 520 NEXT F% 530 GOTO 580 540 FOR F%=1% TO G% : A%(F%)=A%(F%)-G%(F%) 550 IF A%(F%)<0% A%(F%)=A%(F%)+10% : A%(F%+1%)=A%(F%+1%)-1% 560 G%(F%)=0% : T%(F%)=0% 570 NEXT F% 580 G%(F%)=0% : T%(F%)=0% 590 K%=K%+1% : IF K%/5=K%/5% THEN ; " "; 600 IF N%>10% ; N%-1%; ELSE ; CHR$(B%(1)+47%); 610 IF K%>Q%-2% END 620 IF A%(G%)=0% G%=G%-1% : IF G%>0% 620 630 IF G%=0% ; : ; "Det var en j{mn kvadrat" : END 640 G%=G%+1% : IF K%=-1 ; ","; 650 GOTO 330