10 :'----------------------------
20 :'CALCULETTE 30 :'---------------------------- 40 PEN 1:PAPER 0 50 DIM T(100),T$(100) 60 DIM LI$(13) 70 DATA +,-,*,/,à,^,A,B,C,D,E,F,G 80 FOR A=1 TO 13 90 READ LI$(A) 100 NEXT A 110 A$="######.##" 120 CT=0 : I=1 : CLS 130 LOCATE 8,1 140 PRINT"C A L C U L A T R I C E " 150 LOCATE 2,4:PRINT"OPERATEURS +,-,/,*,à,^" 160 LOCATE 2,6:PRINT"ABREVIATIONS :" 170 LOCATE 5,7:PRINT"A MEMORISATION" 180 LOCATE 5,8:PRINT"B REMISE A ZERO GENERALE" 190 LOCATE 5,9:PRINT"C REMISE A ZERO DU TOTAL EN COURS" 200 LOCATE 5,10:PRINT"D REMISE A ZERO DU TOTAL MEMORISE" 210 LOCATE 5,11:PRINT"E RAPPEL MEMOIRE EN 1er FACTEUR" 220 LOCATE 5,12:PRINT"F RAPPEL MEMOIRE EN 2eme FACTEUR" 230 LOCATE 5,13:PRINT"G FIN" 240 LOCATE 5,14:PRINT"à MODULO" 250 LOCATE 5,15:PRINT"^ PUISSANCE" 260 GOSUB 1260 270 zz(5)=13 280 :'*** SAISIE ABREVIATION *** 290 OP$="":PAPER 0:PEN 3 300 FOR I=17 TO 20 310 LOCATE 11,I:PRINT" " 320 NEXT I 330 LOCATE 11,17 340 OPER$=INKEY$:oper$=UPPER$(OPER$):IF OPER$="" THEN 340 350 IF OPER$<"A" OR OPER$>"G" THEN 450 360 PRINT OPER$ 370 FOR IOP=7 TO 13 380 IF ASC(OPER$)<>ASC(LI$(IOP)) AND IOP<ZZ(5) THEN NEXT 390 IF ASC(OPER$)<>ASC(LI$(IOP)) THEN 330 400 GOSUB 800:IF OP$="" THEN 430 410 IF OP$="A" THEN 570 420 IF OP$="B" THEN 450 430 GOSUB 1260 440 GOTO 280 450 :'*** SAISIE 1ER NOMBRE *** 460 IF OP$="A" THEN 570 470 ZZ(1)=18 480 ZZ(2)=11 490 ZZ(3)=5 500 ZZ(4)=1 510 GOSUB 1390:IF NUMCHI=0 THEN 470 520 T(I)=NUMCHI 530 CT=CT+1 540 IF CT>90 THEN LOCATE 2,22:PRINT"ATTENTION, TABLE BIENTOT PLEINE ..." 550 I=I+1 560 A=NUMCHI 570 :'*** SAISIE OPERATEUR *** 580 LOCATE 11,20 590 OPER$=INKEY$ 600 IF OPER$="" THEN 590 610 FOR IOP=1 TO 6 620 IF ASC(OPER$)<>ASC(LI$(IOP)) THEN NEXT 630 IF ASC(OPER$)<>ASC(LI$(IOP)) THEN 580 640 LOCATE 11,19:PRINT OPER$ 650 :'*** SAISIE 2EME NOMBRE *** 660 IF OP$="B" THEN OP$="":GOTO 780 670 ZZ(1)=20 680 ZZ(2)=11 690 ZZ(3)=5 700 ZZ(4)=1 710 GOSUB 1390 720 IF NUMCHI=0 THEN 670 730 T(I)=NUMCHI 740 CT=CT+1 750 IF CT>90 THEN LOCATE 22,2:PRINT"ATTENTION, TABLE BIENTOT PLEINE ... " 760 I=I+1 770 B=NUMCHI 780 GOSUB 800 790 GOSUB 1260:GOTO 280 800 ON IOP GOTO 810,840,870,900,930,960,1090,1010,1030,1060,1120,1190,1000 810 :' ADDITION 820 TT=TT+(A+B) 830 RETURN 840 :' SOUSTRACTION 850 TT=TT+(A-B) 860 RETURN 870 :' MULTIPLICATION 880 TT=TT+(A*B) 890 RETURN 900 :' DIVISION 910 TT=TT+(A/B) 920 RETURN 930 :' MODULO 940 TT=TT+(A-(-INT(A/B)*B)) 950 RETURN 960 :' PUISSANCE 970 TT=TT+(A^B) 980 RETURN 990 :' FIN 1000 CLS:END 1010 :'## REMISE A ZERO GENERALE 1020 TT2=0:TT=0:CT=0:I=1 1030 :'## REMISE A ZERO TOTAL EN COURS 1040 TT=0 1050 RETURN 1060 :'## REMISE A ZERO MEMOIRE 1070 TT2=0 1080 RETURN 1090 :'## MEMORISATION TOTAL EN COURS 1100 TT2=TT2+TT 1110 RETURN 1120 :'## RAPPEL MEMOIRE * E * 1130 FOR X=ZZ(2) TO ZZ(2)+6 1140 L0CATE X,ZZ(1):PRINT" " 1150 NEXT 1160 A=TT2:OP$="A" 1170 LOCATE 10,18:PRINT A 1180 RETURN 1190 :'## RAPPEL MEMOIRE * F * 1200 FOR X=ZZ(2) TO ZZ(2)+6 1210 LOCATE X,ZZ(1):PRINT" " 1220 NEXT 1230 B=TT2:OP$="B" 1240 L0CATE 10,20:PRINT B 1250 RETURN 1260 GOSUB 1580 1270 PEN 2:PAPER 3 1280 LOCATE 19,17:PRINT"S/TOTAL:" 1290 LOCATE 19,20:PRINT"MEMOIRE:" 1300 PEN 1:PAPER 0 1310 LOCATE 2,17:PRINT "ABREV. :" 1320 LOCATE 2,18:PRINT "NOMBRE :" 1330 LOCATE 2,19:PRINT "OPERAT.:" 1340 LOCATE 2,20:PRINT "NOMBRE :" 1350 PAPER 3 1360 LOCATE 28,17:PRINT USING a$;tt 1370 LOCATE 28,20:PRINT USING a$;tt2 1380 RETURN 1390 FOR X=ZZ(2) TO ZZ(2)+6 1400 LOCATE X,ZZ(1):PRINT" " 1410 NEXT 1420 LOCATE ZZ(2),ZZ(1) 1430 ZZC=ZZ(2) 1440 ZZS=ZZ(2)+ZZ(3)-1 1450 NUMCHI=0:CHIF$="0" 1460 OPER$=INKEY$ 1470 IF OPER$="" THEN 1460 1480 IF ASC(OPER$)=13 THEN RETURN 1490 IF ASC(OPER$)<48 OR ASC(OPER$)>57 THEN LOCATE ZZC,ZZ(1):GOTO 1460 1500 CHIF$=CHIF$+OPER$:NUMCHI=VAL(CHIF$) 1510 LOCATE ZZC,ZZ(1) 1520 PRINT OPER$ 1530 ZZC=ZZC+1 1540 IF ZZC>ZZS THEN RETURN 1550 LOCATE ZZC,ZZ(1) 1560 GOTO 1460 1570 GOSUB 1580:RETURN 1580 b$="" 1590 FOR J=1 TO 23 :b$=b$+" ":NEXT 1600 PAPER 3 1610 FOR J=17 TO 20 :LOCATE 18,J:PRINT b$:NEXT 1620 RETURN |