home *** CD-ROM | disk | FTP | other *** search
- 10 !
- 20 ! PROGRAM: FRACTION.BAS
- 30 ! AUTHOR: MICHAEL RUF
- 40 ! DATE: AUGUST 20,1979
- 50 !
- 60 ?
- 70 ?"FRACTION MATH"
- 80 ?
- 90 ?
- 100 ?"VALID SIGNS: -+*/"
- 110 ?
- 120 ?
- 125 P=1:E$=CHR$(155)
- 130 GOSUB 5000
- 140 IF P=1 AND A<48 AND A<>46 THEN ?CHR$(7);:GOTO 130
- 142 IF P=2 AND A<48 AND A<>46 THEN 300
- 150 PRINT CHR$(A);
- 160 EQ$=EQ$+CHR$(A)
- 165 LE=LE+1
- 170 GOTO 130
- 300 EQ$=EQ$+CHR$(A)
- 305 P=P+1:LE=0
- 310 PRINT E$"A";
- 320 FOR I=1 TO LE+2
- 330 ?E$"C";
- 340 NEXT
- 350 PRINT CHR$(A);E$"A";" ";
- 5000 WAIT &72,255,2
- 5010 A=INP(&73)-128
- 5012 IF P=4 AND A=61 THEN 6000
- 5015 IF P/2<>P\2 AND A=13 THEN ?E$"B";:FOR I=1 TO LE:
- ?E$"D-";E$"D";:NEXT:?E$"B";:EQ$=EQ$+CHR$(13):LE=0:P=P+1:GOTO 130
- 5020 IF A>41 AND A<58 AND A<>44 THEN RETURN ELSE ?CHR$(7);:GOTO 5000
- 6000 ?E$"A";
- 6010 FOR I=1 TO LE+2
- 6020 ?E$"C";
- 6030 NEXT
- 6040 PRINT "=";E$"A ";
- 6100 CO=0:P=0
- 6110 CO=CO+1
- 6115 CH$=MID$(EQ$,CO,1)
- 6120 IF CH$=CHR$(13) THEN P=P+1:EQ$(P)=MID$(EQ$,1,CO-1):EQ$=MID$(EQ$,CO+1):C=0:GOTO 6110
- 6125 IF P=2 THEN EQ$(3)=EQ$:GOTO 6200
- 6130 GOTO 6110
- 6200 N1=VAL(EQ$(1))
- 6210 D1=VAL(EQ$(2))
- 6220 CO=0
- 6230 CO=CO+1
- 6240 CH$=MID$(EQ$(2),CO,1)
- 6250 IFCH$<"0"ANDCH$<>"." THEN S$=CH$:EQ$(2)=MID$(EQ$(2),CO+1) ELSE 6230
- 6260 N2=VAL(EQ$(2))
- 6270 D2=VAL(EQ$(3))
- 6280 IF S$="*" THEN D=D1*D2:N=N1*N2:GOTO 10000
- 6290 IF S$="/" THEN D=D1*N2:N=N1*D2:GOTO 10000
- 10000 ! REDUCE FRACTION
- 10010 IF D/N=D\N THEN D=D/N:N=1
- 10020 IF N/D=N\D THEN N=N/D:D=1
- 10030 IF N>D THEN X=D/2 ELSE X=N/2
- 10040 FOR I=2 TO X
- 10050 IF N/I=N\I AND D/I=D\I THEN N=N/I:D=D/I:EXIT 10030
- 10060 NEXT I
- 10070 PRINT N;E$"B";
- 10080 FOR I=1 TO LEN(STR$(N))-1
- 10090 PRINT E$"D";E$"D-";
- 10100 NEXT I
- 10110 PRINT E$"B";E$"D";E$"D";D
- 10120 ?:?:?
- 10125 CLEAR
- 10130 GOTO 125
-