0 'FAIT PAR FRANCOIS DEMERS 1 'JUIN 1986 10 PI=3.14159265358979323846264338327950288419716939937510 20 DIM M(12),M$(12):DEFINT A,C,W 40 FOR I=1 TO 12 :READ M(I) :NEXT I 50 FOR I=1 TO 12 :READ M$(I):NEXT I 60 FOR I=1 TO 3 :READ C$(I):NEXT I 70 FOR I=1 TO 3 :READ W(I) :NEXT I 80 CLS : PRINT@15,"BIORYTHME" 100 INPUT"QUEL NOM";NOM$(T) 105 IF NOM$(T)="" THEN T=0 :GOTO 200 110 PRINT"DATE DE NAISSANCE 120 PRINT" exemple:21/09/73 130 INPUT" ";DN$(T) 135 IF LEN(DN$(T)) <> 8 THEN BEEP:GOTO 110 136 IF VAL(LEFT$(DN$(T),2)) >31 THEN BEEP:GOTO 110 137 IF VAL(MID$(DN$(T),4,2)) >12THEN BEEP:GOTO 110 140 INPUT"DATE PRESENTE ";DP$(T) 145 IF DP$(T)="" THEN 160 150 IF LEN(DP$(T))<>8 THEN BEEP:GOTO 140 160 INPUT"POUR COMBIEN DE MOIS";NM(T) 170 T=T+1 : IF T<10 THEN 80 ELSE T=0 200 NOM$=NOM$(T):DN$=DN$(T):DP$=DP$(T):NM=NM(T):PP=0:DP=0 202 IF DP$="" THEN DP$=DATE$: DP=1 204 IF DN$="" THEN END 210 AN$=RIGHT$(DN$,2) : AN=VAL(AN$) 220 MN=VAL(MID$(DN$,4,2)) 230 JN=VAL(LEFT$(DN$,2)) 240 AP=VAL(RIGHT$(DP$,2)):IF DP=1 THEN 270 250 MP=VAL(MID$(DP$,4,2)) 260 JP=VAL(LEFT$(DP$,2)) : GOTO 283 270 MP=VAL(LEFT$(DP$,2)) 280 JP=VAL(MID$(DP$,4,2)) 283 FOR MM=1 TO NM 285 IF PP=1 THEN MP=MP+1 286 IF MP>12 THEN MP=1 :AP=AP+1 290 JN$=STR$(JN) : JP$=STR$(JP) 300 J=0:AB=0: NA=AP-AN:AC=AN:NN$=" 19" 310 IF AN>AP THEN 320 ELSE 340 320 NA=AP+100-AN : NN$=" 18" 330 FOR A=AN TO 96 : IF A/4=A\4 THEN AB=AB+1 332 NEXT A : AC=4 340 FOR A=AC TO AP : IF A/4=A\4 THEN AB=AB+1 342 NEXT A 350 IF MN>MP THEN NA=NA-1 360 IF MN=MP AND JN>JP THEN NA=NA-1 370 IF AN=0 THEN AB=AB-1 : GOTO 390 380 IF AN/4=AN\4 AND MN>2 THEN AB=AB-1 390 IF AP/4=AP\4 AND MP<3 THEN AB=AB-1 400 IF MN>MP THEN 450 410 IF MN=MP AND JN>JP THEN 450 420 IF MN=MP AND JN<=JP THEN 500 430 FOR I=MN TO MP-1: J=J+M(I): NEXT I: GOTO 500 450 FOR I=MN TO 12 : J=J+M(I): NEXT I:IF MP=1 THEN 500 460 FOR I=1 TO MP-1: J=J+M(I): NEXT I 500 NJ=NA*365+J+AB-JN+1 510 JR=NJ-NA*365-AB+JP-1 520 IF AP/4=AP\4 AND MP>2 AND MP<=MN AND JP=365 THEN JR=JR-365 :NA=NA+1 550 IF NA<0 THEN NA=0 : JR=0 560 IF AN=AP AND MN=MP THEN NJ=NJ-1 570 IF MP=2 AND AP/4=AP\4 THEN M(2)=29 580 PRINT NJ;"AB=";AB;"NA=";NA;"JR=";JR 590 PRINT "JN=";JN;"JP=";JP;"MN=";MN;"MP=";MP;"AN=";AN;"AP=";AP 600 C(1)=23*(NJ/23-INT(NJ/23)+.01) :P(1)=23 610 C(3)=28*(NJ/28-INT(NJ/28)+.01) :P(3)=28 620 C(2)=33*(NJ/33-INT(NJ/33)+.01) :P(2)=33 630 PRINT C(1)+1;C(3)+1;C(2)+1 700 LPRINTCHR$(18) :LPRINT"C0" :LPRINT"S1 710 LPRINT"J0,-120" :LPRINT"I" 720 LPRINT"J0,-120,480,0,0,240,-480,0 740 FOR X=15 TO 470 STEP 30 750 LPRINT"M";X",68" :LPRINT"J0,-164 760 IF X+15 > 470 THEN 790 770 LPRINT"R15,0" :LPRINT"J0,164 780 NEXT X 790 LPRINT"M480,0" :LPRINT"D0,0 800 LPRINT"M2,100" 810 X=480-12*(6+LEN(JN$)+LEN(M$(MN))) 820 Y=X\12-1 : X=X-2 830 LPRINT"P";LEFT$(NOM$,Y) 840 LPRINT"M";X;",100 850 LPRINT"P";JN;M$(MN);NN$:LPRINT"R2,0":LPRINT"P";AN$ 900 LPRINT"M-8,82" : LPRINT"P";NA;"ANS ET";JR;"JOURS" 910 X=478-12*(6+LEN(JP$)+LEN(M$(MP))) 920 LPRINT"M";X;",82 930 LPRINT"P";JP;M$(MP);" 19" 940 LPRINT"R-10,0": LPRINT"P";AP 1000 LPRINT"M0,-96" :LPRINT"S0" 1010 FOR C=1 TO 9 :LPRINT"P";C 1020 LPRINT"R-3,0 1030 NEXT C :LPRINT"R-3,0 1040 FOR C=10 TO M(MP):LPRINT"P";C 1050 LPRINT"R-9,0" :NEXT C 1060 LPRINT"R9,0" :LPRINT"P1 1070 IF M(MP)=31 THEN 2000 1080 LPRINT"R9,0" :LPRINT"P2 2000 LPRINT"S1" :FOR I=1 TO 3 2010 L=P(I)*2.385 : PQ=PI*(C(I)/P(I)*2) 2020 Y=INT(SIN(PQ)*70) 2030 LPRINT"M0,";Y : LPRINT"C";I 2100 FOR X=PQ TO 500/L+PQ STEP PI/12 2110 X1=INT((X-PQ)*L) 2120 Y=INT(SIN(X)*70) 2130 LPRINT"D";X1;",";Y 2140 NEXT X 2200 LPRINT"M";W(I);",-119" 2210 LPRINT"P";C$(I) 2220 NEXT I: LPRINT"A" 2230 PP=1 :NEXT MM :T=T+1: GOTO 200 9000 DATA 31,28,31,30,31,30,31,31,30,31,30,31 9100 DATA "JANVIER","FEVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOUT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DECEMBRE" 9200 DATA "PHYSIQUE","INTELLECTUEL","EMOTIF" 9300 DATA 12,320,180