10 '***********************************
20 '* Boisson Assistee par Ordinateur * 30 '*** par G.TANNIERE *** 40 '*** le 02-03-87 *** 50 '*** pour tous les Amis qui *** 60 '*** viennent a la Maison *** 70 '*********************************** 80 MODE 0:BORDER 0:INK 1,11:INK 2,26:INK 3,6:INK 4,18:INK 5,0:PAPER 4:CLS 90 LOCATE 3,7:PEN 1:PRINT "B";:PEN 5:PRINT "oissons":LOCATE 6,13:PEN 2:PRINT "A";:PEN 5:PRINT "ssistees":LOCATE 10,16:PRINT "par":LOCATE 9,19:PEN 3:PRINT "O";:PEN 5:PRINT "rdinateur":GOSUB 1000 100 RESTORE 1010:ENV 1,2,2,5,1,0,200:FOR x=1 TO 77:READ c,h,d,v:SOUND c,h,d*0.9,v,1:NEXT 110 CLS:LOCATE 7,6:PRINT "par la":LOCATE 6,12:PRINT "Bande de":LOCATE 5,18:PRINT " SOIFFARDS" 120 ph$="ATTENTION. Ce programme n'a aucune valeur juridique.":TAG:FOR x=640 TO -1000 STEP-20:PLOT x,30,2:PRINT ph$;:NEXT:TAGOFF:FOR x=1 TO 3000:NEXT:MODE 1:RESTORE 1070:FOR x=2 TO 20 STEP 2:READ p$:LOCATE 2,x:PRINT p$:NEXT 130 LOCATE 23,24:PRINT "Une touche SVP.";:WHILE k$<>"":k$=INKEY$:WEND:WHILE k$="":k$=INKEY$:WEND 140 '*** Entree des Donnees *** 150 MODE 1:PAPER 2:PEN 1:CLS:BORDER 0:WINDOW#1,2,18,2,10:PAPER#1,1:PEN#1,2:CLS#1:WINDOW#2,2,18,12,24:PAPER#2,1:PEN#2,2:CLS#2:WINDOW#3,20,39,2,24:PAPER#3,1:PEN#3,2:CLS#3 160 DIM alc(200),alt(200),fine(200),m(200),mal(200):LOCATE#1,2,2:INPUT#1,"NOM:",nom$ 170 LOCATE#1,3,4:INPUT#1,"SEXE :",sex$:sex$=UPPER$(sex$):IF sex$<>"F" AND sex$<>"M" THEN GOTO 170 ELSE IF sex$="F" THEN coef=0.6 ELSE coef=0.7 180 LOCATE#1,3,6:INPUT#1,"POIDS:",poid$:poids=VAL(poid$):LOCATE#1,9+LEN(poid$),6:PRINT#1,"kg" 190 LOCATE#1,2,8:INPUT#1,"HEURE: ",hd:LOCATE#1,8,8:PRINT#1,USING "##.##";hd;:PRINT#1," h" 200 LOCATE#3,5,2:PRINT#3,"CONSOMMATIONS":RESTORE 1090:FOR x=1 TO 16:READ r$:LOCATE#3,2,4+x:PRINT#3,r$:NEXT x 210 '*** ENTREE DES CONSOMMATIONS *** 220 FOR x=0 TO 5:fine(x)=1:NEXT:x=2:h=5:hg=hd:DEF FNalcool=alt(h-1)+alt(h-2)+alt(h-3)+alt(h-4)+alc(h-1)+(0.04*(fine(h-5)=0)) 230 WHILE en$<>"FIN" 240 LOCATE#2,2,x:PRINT#2,USING "##.##";hg:LOCATE#2,10,x:INPUT#2,en$:en$=UPPER$(en$):en=VAL(en$) 250 ON en+1 GOSUB 1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290 260 x=x+2:IF x>13 THEN x=12:PRINT#2,STRING$(2,CHR$(10)) 270 malc=MAX(alc(h)):hg=hg+0.15:h=h+1:IF (hg-INT(hg))>0.59 THEN hg=INT(hg)+1 280 IF hg>24 THEN hg=0.15 290 WEND:fine(h-1)=0 300 h=4:WHILE alc(h)>=0:h=h+1:alt(h)=(m(h)/(4*poids*coef)):alc(h)=FNalcool:mal=alc(h):IF mal>malc THEN malc=mal 310 IF mal>malc THEN malc=mal 320 WEND 330 '*** Sortie du Graphique *** 340 MODE 1:PAPER 2:CLS:LOCATE 10,2:PRINT "GRAPHE de L'ALCOOLEMIE":cy=100:cx=600ç h:ORIGIN 30,180:DRAW 600,0,1:PLOT 0,-10,1:DRAW 0,200:PLOT 0,80:DRAW 600,80:FOR y=0 TO 200 STEP 10:MOVE -6,y:DRAW 0,y:NEXT 350 PRINT CHR$(23)+CHR$(1);:TAG:PAPER 3:MOVE -3,200:PRINT "g/l";:MOVE 590,-4:PRINT "h";:MOVE -30,96:PRINT "0.8";:TAGOFF:PRINT CHR$(23)+CHR$(0):h=6:hd=hd+0.15 360 i=0:PLOT 0,0:WHILE alc(h)>=0:PLOT (h-6)*cx,alc(h-1)*100,0:DRAW (h-5)*cx,alc(h)*100:IF alc(h)>0.8 AND i=0 THEN hdc=hd:i=1 ELSE IF alc(h)<0.8 AND i=1 THEN hfc=hd:i=0 370 IF hd-INT(hd)=0 AND cx>9 THEN PLOT (h-5)*cx,0,1:DRAW (h-5)*cx,-12:PRINT CHR$(23)+CHR$(1);:TAG:PLOT 0,0,3:MOVE (h-5)*cx-32,-16:PRINT INT(hd);:TAGOFF:PRINT CHR$(23)+CHR$(0) ELSE PLOT (h-5)*cx,0,1:DRAW (h-5)*cx,-8 380 IF hd-INT(hd)=0 AND cx<=9 AND (INT(hd)) MOD 4=0 THEN PLOT (h-5)*cx,0,1:DRAW (h-5)*cx,-12:PRINT CHR$(23)+CHR$(1);:TAG:PLOT 0,0,3:MOVE (h-5)*cx-32,-16:PRINT INT(hd);:TAGOFF:PRINT CHR$(23)+CHR$(0) ELSE PLOT (h-5)*cx,0,1:DRAW (h-5)*cx,-8 390 h=h+1:hd=hd+0.15:IF (hd-INT(hd))>0.59 THEN hd=INT(hd)+1 ELSE IF hd>24 THEN hd=0.15 400 WEND 410 '*** Commentaires du Graphe *** 420 WINDOW#4,2,39,17,24:PAPER#4,0:PEN#4,2:CLS#4 430 LOCATE#4,10,2:IF sex$="F" THEN PRINT#4,"Madame ";UPPER$(nom$) ELSE PRINT#4,"Monsieur ";UPPER$(nom$) 440 LOCATE#4,2,4:PRINT#4,"votre alcoolemie maximum est de";USING "##.###";malc:GOSUB 1390:CLS#4 450 IF malc<0.3 THEN RESTORE 1310:READ ph$:PRINT#4,CHR$(10);CHR$(10)ph$:GOSUB 1390 460 IF malc>=0.3 AND malc<0.5 THEN RESTORE 1320:READ ph$:PRINT#4,CHR$(10);ph$:GOSUB 1390 470 IF malc>=0.5 AND malc<0.8 THEN RESTORE 1330:READ ph$:PRINT#4,CHR$(10);ph$:GOSUB 1390 480 IF malc>=0.8 AND malc<1.5 THEN BORDER 6:RESTORE 1340:READ ph$:PRINT#4,ph$:LOCATE#4,12,6:PEN#4,3:PRINT#4,USING "##.##";hdc;:PRINT#4," H a ";:PRINT#4,USING "##.##";hfc;:PRINT#4," H":GOSUB 1390:CLS#4:READ ph1$:PRINT#4,ph1$:GOSUB 1390 490 IF malc>=1.5 AND malc<3 THEN RESTORE 1360:READ ph$:PRINT#4,CHR$(10);ph$:LOCATE#4,12,5:PEN#4,3:PRINT#4,USING "##.##";hdc;:PRINT#4," H a ";:PRINT#4,USING "##.##";hfc;:PRINT#4," H":GOSUB 1390:CLS#4:RESTORE 1350:READ ph1$:PRINT#4,ph1$:GOSUB 1390 500 IF malc>=3 AND malc>5 THEN BORDER 6:RESTORE 1370:READ ph$:PRINT#4,CHR$(10);ph$:LOCATE#4,12,5:PEN#4,3:PRINT#4,USING "##.##";hdc;:PRINT#4," H a ";:PRINT#4,USING "##.##";hfc;:PRINT#4," H":GOSUB 1390:CLS#4:RESTORE 1350:READ ph1$:PRINT#4,ph1$:GOSUB 1390 510 IF malc>=5 THEN BORDER 6,0:RESTORE 1380:READ ph$:PRINT#4,CHR$(10);ph$:LOCATE#4,12,6:PEN#4,3:PRINT#4,USING "##.##";hdc;:PRINT#4," H a ";:PRINT#4,USING "##.##";hfc;:PRINT#4," H":GOSUB 1390:CLS#4:RESTORE 1350:READ ph1$:PRINT#4,ph1$:GOSUB 1390 520 CLS#4:LOCATE#4,7,3:PRINT#4,"voulez-vous un autre Graphe ?":LOCATE#4,15,5:PRINT#4,"Oui ou Non":WHILE a$<>"":a$=INKEY$:WEND:WHILE a$<>"O" AND a$<>"N":a$=UPPER$(INKEY$):WEND:IF a$="O" THEN RUN 140 ELSE CALL 0 530 END 1000 '*** Boire un petit Coup *** 1010 DATA 1,319,30,5,1,319,30,5,1,319,30,5,1,319,30,5,1,319,30,5,1,319,30,5,1,358,30,5,1,358,30,5,1,402,120,5,1,536,60,5,1,1,60,5,1,253,30,5,1,253,30,5,1,253,30,5,1,253,30,5,1,213,120,5,1,239,120,5,1,253,120,5,1,1,60,5,1,253,30,5 1020 DATA 1,253,30,5,1,253,30,5,1,253,30,5,1,253,90,5,1,253,30,5,1,239,30,5,1,253,30,5,1,284,30,5,1,319,30,5,1,253,60,5,1,284,60,5,1,1,30,5,1,239,30,5,1,239,30,5,1,239,30,5,1,239,30,5,1,239,30,5,1,239,30,5,1,253,30,5,1,284,30,5 1030 DATA 1,319,60,5,1,253,60,5,1,379,120,5,1,319,30,5,1,319,30,5,1,319,30,5,1,253,30,5,1,319,120,5,1,358,120,5,1,379,120,5,1,1,60,5,1,253,30,5,1,253,30,5,1,253,30,5,1,225,60,5,1,1,30,5,1,284,30,5,1,284,30,5,1,284,30,5,1,284,60,5 1040 DATA 1,1,30,5,1,225,30,5,1,225,30,5,1,225,30,5,1,253,60,5,1,1,30,5,1,319,30,5,1,319,30,5,1,319,30,5,1,319,60,5,1,1,30,5,1,253,30,5,1,253,30,5,1,284,30,5,1,319,120,5,1,358,120,5,1,379,120,5 1050 RETURN 1060 '*** Data mode d'Emploi *** 1070 DATA " Ce programme est destine a evaluer"," votre taux d'Alcoolemie.Pour cela:","-ENTREZ: NOM-SEXE-POIDS-et HEURE DE"," DEBUT D'absorption d'alcool:","-VALIDEZ a chaque fois par <ENTER>.","-CHOISISSEZ dans la colonne de droite" 1080 DATA " le type d'alcool et ENTREZ le nombre"," face a l'heure d'absorption.","-A la fin du repas ENTREZ le mot FIN","-L'ordinateur se chargera du reste." 1090 '*** Listes des Consommations *** 1100 DATA 1-45%-2 cl Anis,2-45%-6 cl Anis,3-40%-2 cl Whisky,4-40%-6 cl Whisky,5-30%-2 cl Whisky,6-30%-6 cl alc.div. 1110 DATA 7-20%-6 cl alc.div.,8-16%-6 cl vin cuit,9-12%-12 cl vin,10-11%-12 cl vin,11-10%-12 cl vin,12-6%-25 cl biere,13-6%-12 cl cidre,14-40%-3 cl diges.,15-20%-3 cl liqueur,16-10%-12 cl Champ. 1120 '*** Masse d'Alcool par verre *** 1130 m(h)=0:fine(h)=1:RETURN 1140 m(h)=7.2:fine(h)=0:RETURN 1150 m(h)=21.6:fine(h)=0:RETURN 1160 m(h)=6.4:fine(h)=0:RETURN 1170 m(h)=19.2:fine(h)=0:RETURN 1180 m(h)=4.8:fine(h)=0:RETURN 1190 m(h)=14.4:fine(h)=0:RETURN 1200 m(h)=9.6:fine(h)=0:RETURN 1210 m(h)=7.68:fine(h)=0:RETURN 1220 m(h)=11.52:fine(h)=0:RETURN 1230 m(h)=10.56:fine(h)=0:RETURN 1240 m(h)=9.6:fine(h)=0:RETURN 1250 m(h)=12:fine(h)=0:RETURN 1260 m(h)=6:fine(h)=0:RETURN 1270 m(h)=9.5:fine(h)=0:RETURN 1280 m(h)=4.8:fine(h)=0:RETURN 1290 m(h)=9.6:fine(h)=0:RETURN 1300 '*** Datas Commentaires *** 1310 DATA " BRAVO... vous etes tres sage" 1320 DATA " AUCUN troubles apparents mais votre acuite visuelle diminue votre estimation des distances est faussee" 1330 DATA " ATTENTION : les troubles apparaissent les temps de reaction s'allongent legere euphorie " 1340 DATA " ATTENTION:conduire devient dangereux Votre vigilance diminue legere ivresse reflexe de plus en plus troubles vous ne devez pas conduire de:" 1350 DATA " si controle ou accident vous risquez: -1000 a 30000 frs d'amende -2 mois a 2 ans de prison + retrait du permis de 3 ans maximum si accident grave ou recidive ou delit de fuite: les peines sont doublees." 1360 DATA "DANGER:votre allure devient titubante votre vue se dedouble Vous ne devez absolument pas conduire de: " 1370 DATA " DANGER : toute conduite est impossible Vous ne devez absolument pas conduire de: " 1380 DATA " DANGER : vous risquez de sombrer dans un coma pouvant entrainer la mort Vous ne devez absolument pas conduire de: " 1390 '*** Attente touche *** 1400 PEN#4,2:LOCATE#4,23,8:PRINT#4,"une touche SVP.";:WHILE k$<>"":k$=INKEY$:WEND:WHILE k$="":k$=INKEY$:WEND:RETURN |