Show Visual Long Divisions, listed 08-01-2004 10 ' Showdivi.bas - FreeWare 2004 20 GOTO 90 ' begin 30 SAVE"showdivi.bas":LIST-90 40 GOTO 1300 ' isolate and count 50 GOTO 1330 ' draw lines 60 GOTO 1390 ' test for valid number 70 GOTO 1510 ' get key 80 ' begin 90 CLS:KEY OFF:B=16 100 DEFDBL D,M,Z,N,E,T :M1$="117932" :M2$="62":LM=19:K1$=M1$:K2$=M2$ 110 DIM A(B),CT(B),TU(B),LTU(B),TV(B),NDT(B),QU(B),TG(B),LTG(B) 120 DEFSTR W:W=MKI$(0) 130 PRINT "****************************" 140 PRINT "* SHOW LONG DIVISION *" 150 PRINT "* by: Eric F. Tchong *" 160 PRINT "* serenata@setarnet.aw *" 170 PRINT "* FreeWare 2004 *" 180 PRINT "****************************" 190 PRINT:PRINT "Make showdivi.asc file y/n?" 200 GOSUB 70:CLS 210 IF ASC(W)=121 OR ASC(W)=89 THEN COPY=1 ELSE COPY=0 ' y Y 220 IF COPY THEN OPEN "O",#1,"showdivi.asc" 230 CLS:PRINT" <1> 1902" 240 PRINT" ÄÄÄÄÄÄ" 250 PRINT" 62 ) 117932":PRINT 260 PRINT" <2> 62 / 117932 \ 1902" 270 PRINT" 62" 280 PRINT" ÄÄÄ":PRINT 290 PRINT" <3> Exit":PRINT 300 INPUT" Select 1, 2, 3 ";CH 310 IF CH=3 THEN 1530 ELSE IF CH=1 THEN ST=1 ELSE IF CH=2 THEN ST=0 320 IF CH<1 OR CH>3 THEN 230 330 CLS 340 ' Get dividend DT = 117932 350 INPUT "Dividend -1 menu ";G$:IF G$="" THEN G$=M1$ ELSE M1$=G$ 360 GOSUB 60:IF NG=0 THEN NG=1:GOTO 350 370 DT$=G$:DT=VAL(DT$):K1$=G$ 380 ' Get divisor DL = 62 390 INPUT "Divisor -1 menu ";G$:IF G$="" THEN G$=M2$ ELSE M2$=G$ 400 GOSUB 60:IF NG=0 THEN NG=1:GOTO 390 410 DL$=G$:DL=VAL(DL$):K2$=G$ 420 IF DL=0 THEN BEEP:PRINT:PRINT "Division by zero":GOTO 390 430 IF DT
0 THEN L=L+1:Z=E:GOTO 1310 ELSE RETURN 1320 ' Draw lines ÄÄÄÄ or ---- 1330 PRINT TAB(P)"";: PRINT STRING$(L,"Ä") 1340 IF COPY THEN PRINT #1, TAB(P)"";:PRINT #1, STRING$(L,"-") 1350 RETURN 1360 ' Print when DT
1 THEN 1480 1410 IF G$="-1" THEN G$="":M1$=K1$:M2$=K2$:GOTO 230 1420 FOR X=1 TO L 1430 Z=ASC(MID$(G$,X,1)):IF MID$(G$,X,1)="." THEN T=2:GOTO 1450 1440 IF Z<48 OR Z>57 THEN 1480 1450 NEXT 1460 IF T>1 THEN 1480 1470 NG=1:RETURN 1480 NG=0:PRINT:BEEP:RETURN 1490 ' get key 1500 LSET W=MKI$(0) 1510 WHILE CVI(W)=0:MID$(W,1)=INKEY$:WEND:RETURN 1520 ' Exit 1530 IF COPY THEN CLOSE #1 1540 KEY 5,"showdivi.bas":KEY 6,CHR$(34)+",a":KEY ON:CLS 1550 ' Example in this program 1560 ' DL=62 DT=117932 1570 ' 1902 DQ 1580 ' ÄÄÄÄÄÄ line 1590 ' NDT = 117 62 ) 117932 62 / 117932 \ 1902 1600 ' TU(1)= 62 62 62 1610 ' ÄÄÄ ÄÄÄ 1620 ' TV(1)= 55 559 TG(1)=559 1630 ' TU(2)= 558 558 1640 ' ÄÄÄ 1650 ' TV(2)= 1 TV(3)=13 132 TG(3)=132 1660 ' TU(4)= 124 124 TU(3)=0 1670 ' ÄÄÄ 1680 ' TV(QN)=8 8