home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG055.ARC / BIOPRINT.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  3KB  |  90 lines

  1. 1 DIM A(12),M$(12)
  2. 2 DATA 0,31,59,90,120,151,181,212,243,273,304,334
  3. 3 FOR I=1 TO 12 : READ A(I) : NEXT
  4. 5 PI=3.14159
  5. 7 PRINT : PRINT
  6. 10 PRINT "THIS PROGRAM WILL PRINT YOUR PERSONAL BIO-RYTHM ANALTSIS"
  7. 20 PRINT " FOR A 30 DAY PERIOD STARTING AT ANY DATE YOU SELECT."
  8. 30 PRINT "DATES SHOULD BE ENTERED IN NUMERICAL FORM WITH THE MONTH,"
  9. 40 PRINT "DAY AND YEAR SEPARATED BY COMMAS. . I.E. JULY 4,1976 WOULD"
  10. 50 PRINT "BE ENTERED AS 7,4,76."
  11. 55 REM LINE 475 SETS THE NUMBER OF DAYS IN A RUN
  12. 70 PRINT : PRINT
  13. 80 PRINT "WHAT IS THE DATE AT WHICH YOU WOULD LIKE THE ANALYSIS"
  14. 90 PRINT "TO START?"
  15. 100 INPUT M,D,Y
  16. 105 M=INT(M) : D=INT(D) : Y=INT(Y)
  17. 110 INPUT "WHAT IS THE DATE OF YOUR BIRTH ";MB,DB,YB
  18. 115 MB=INT(MB) : DB=INT(DB): YB=INT(YB)
  19. 117 INPUT "WHAT IS YOUR NAME ";A$
  20. 120 PRINT
  21. 130 DEF FNI(X)=INT(20*SIN(2*PI*X/33)+.5)
  22. 140 DEF FNE(X)=INT(20*SIN(2*PI*X/28)+.5)
  23. 150 DEF FNP(X)=INT(20*SIN(2*PI*X/23)+.5)
  24. 160 T=INT(D+365.25*Y+A(M)+.01*M-.03)
  25. 170 TB=INT(DB+365.25*YB+A(MB)+.01*MB-.03)
  26. 180 X=T-TB
  27. 183 V=INT((40-LEN(A$))/2)
  28. 184 RB=TB-1-INT((TB-1)/7)*7
  29. 210 DATA MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
  30. 230 FOR I= 0 TO 6 : READ DAY$(I) : NEXT
  31. 240 DATA MON,TUE,WED,THU,FRI,SAT,SUN
  32. 250 FOR I=0 TO 6 : READ D$(I) : NEXT
  33. 255 PRINT : PRINT
  34. 260 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST
  35. 265 DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
  36. 272 FOR I=1 TO 12 : READ M$(I) : NEXT
  37. 273 PRINT SPC(2): FOR I=1 TO V : PRINT "*";:NEXT
  38. 274 PRINT "BIO-RHYTHM ANALYSIS FOR "A$;
  39. 276 PRINT "*";:IF POS(0)<66 THEN 276
  40. 278 PRINT : PRINT
  41. 280 R=T-1-INT((T-1)/7)*7
  42. 282 LE=21+LEN(DAY$(R))+LEN(M$(M))+LEN(STR$(D))+LEN(RIGHT$(STR$(Y),2))
  43. 283 V2=INT((64-LE)/2)
  44. 285 PRINT SPC(2): FOR I=1 TO V2 : PRINT "*";:NEXT
  45. 290 PRINT "STARTING DATE:  "DAY$(R)",  "M$(M)STR$(D)",  19";
  46. 292 PRINT RIGHT$(STR$(Y),2);
  47. 295 PRINT "*"; : IF POS(0)<66 THEN 295
  48. 297 PRINT:PRINT
  49. 300 LL=LEN(DAY$(RB))+LEN(M$(MB))+LEN(STR$(DB))+LEN(RIGHT$(STR$(YB),2))
  50. 301 LB=LL+18
  51. 302 VB=INT((64-LB)/2)
  52. 303 PRINT SPC(2): FOR I=1 TO VB : PRINT "*";:NEXT
  53. 304 PRINT "BIRTH DATE:  "DAY$(RB)",  "M$(MB)STR$(DB)",  19";
  54. 305 PRINT RIGHT$(STR$(YB),2);
  55. 306 PRINT "*"; : IF POS(0)<66 THEN 306
  56. 307 PRINT :PRINT:PRINT
  57. 308 PRINT TAB(20)"DOWN",TAB(40)"CRITICAL",TAB(63)"UP"
  58. 310 PRINT D$(R)D;M$(M);
  59. 320 F(0)=42 : F$(0)="*"
  60. 330 F(1)=42+FNI(X) : F$(1)="I"
  61. 340 F(2)=42+FNE(X):F$(2)="E"
  62. 350 F(3)=42+FNP(X):F$(3)="P"
  63. 360 FOR I=0 TO 2
  64. 370 FOR J=I+1 TO 3
  65. 380 IF F(I)<F(J) THEN 420
  66. 385 IF F(I)=F(J) THEN F(I)=0 : F$(I)="":F$(J)="X": GOTO 420
  67. 390 Q=F(I):Q$=F$(I)
  68. 400 F(I)=F(J):F$(I)=F$(J)
  69. 410 F(J)=Q:F$(J)=Q$
  70. 420 NEXT J,I
  71. 440 FOR I=0 TO 3
  72. 450 PRINT TAB(F(I));F$(I);
  73. 460 NEXT
  74. 470 PRINT : X=X+.5:IF INT(X)<>X THEN 320
  75. 475 IF Z=29 THEN 570
  76. 480 R=R+1 : IF R=7 THEN R=0
  77. 490 D=D+1 : IF M=4 OR M=6 OR M=9 OR M=11 THEN L=30 : GOTO 530
  78. 500 IF M=2 AND Y/4=INT(Y/4) THEN L=29 : GOTO 530
  79. 510 IF M=2 THEN L=28 : GOTO 530
  80. 520 L=31
  81. 530 IF D>L THEN D=D-L : M=M+1 : GOTO 550
  82. 540 PRINT D$(R); D; : Z=Z+1 : GOTO 320
  83. 550 IF M=13 THEN M=1 : Z=Z+1 : GOTO 310
  84. 560 Z=Z+1 : GOTO 310
  85. 570 PRINT:PRINT
  86. 580 END
  87. 0 PRINT D$(R); D; : Z=Z+1 : GOTO 320
  88. 550 IF M=13 THEN M=1 : Z=Z+1 : GOTO 310
  89. 560 Z=Z+1 : GOTO 310
  90. 570 PRINT: