1 REM Ins{nd av Lennart Anderson <6582> 1987-01-17 15.40.37 (SEND) 10 EXTEND : FLOAT 20 REM 30 REM ** BIORYTM-KURVOR ** 40 REM ** version 1.3. Jan 1987 ** 50 REM ** Lennart Anderson ** 60 REM * testad p} 800M * 70 REM 80 REM ** Fysiska cykeln markeras med F ** 90 REM ** K{nslom{ssiga cykeln markeras med K ** 100 REM ** Intellektuella cykeln markeras med I ** 110 REM 120 REM ** Version 3 har tillf|rt ber{kning |ver sekelgr{nser samt viss 130 REM ** enkel felhantering i samband med inmatning 140 DIM T(13) : DIM P$(80) 150 P=6.28318 160 Z=FNInmatning 170 PRINT CHR$(12) 180 D4=D2 : M4=M2 : Y4=Y2 190 FOR I=1 TO 12 200 READ T(I) 210 NEXT I 220 DATA 31,28,31,30,31,30,31,31,30,31,30,31 230 FOR I=1 TO 7 240 READ D$(I) 250 NEXT I 260 DATA "M}ndag","Tisdag","Onsdag","Torsdag","Fredag","L|rdag","S|ndag" 270 L{ngd=(77-LEN(Namn$))/2 280 PRINT #Fil 290 IF Fil=2 THEN PRINT #Fil STRING$(L{ngd,42) " " Namn$ " " STRING$(L{ngd,42) 300 PRINT #Fil 310 PRINT #Fil "Datum" TAB(18) "NER" TAB(47) "NOLL" TAB(77) "UPP" 320 PRINT #Fil STRING$(79,45) 330 WHILE Dagar>0 340 Z=FNR{kna 350 Z=FNSkriv 360 Dagar=Dagar-1 370 WEND 380 PRINT #Fil 390 PRINT #Fil STRING$(79,45) 400 END 1000 DEF FNInmatning 1010 PRINT CHR$(12) 1020 PRINT CUR(3,0) "BIORYTM-KURVOR" 1030 Fel2$="Skall vara namn " 1040 ON ERROR GOTO 1390 1050 PRINT CUR(5,0) "Ange Ditt namn: "; : INPUT Namn$ 1060 Fel1$="Felaktigt tal " 1070 ON ERROR GOTO 1330 1080 PRINT CUR(7,0) "Ange Ditt f|delsedatum (]]]],MM,DD) "; 1090 INPUT Y1,M1,D1 1100 ]r1=INT(Y1/100) 1110 Dag1=FNDagfaktor(Y1,M1,D1) 1120 ON ERROR GOTO 1350 1130 PRINT CUR(9,0) "Ange startdatum f|r bio-kurvan (]]]],MM,DD) "; 1140 INPUT Y2,M2,D2 1150 Fel3$="Du m}ste vara f|dd f|rst " 1160 ]r2=INT(Y2/100) 1170 Dag2=FNDagfaktor(Y2,M2,D2) 1180 IF Dag22 THEN Fil=0 ELSE Fil=2 1310 IF VAL(Fil$)=2 THEN OPEN "PR:VSA36B72.5" AS FILE 2 ! <<<<<<<<<<<<<<<<<<< 1320 RETURN 0 1330 Z$=FNFel$(Fel1$) 1340 RESUME 1080 1350 Z$=FNFel$(Fel1$) 1360 RESUME 1130 1370 Z$=FNFel$(Fel1$) 1380 RESUME 1210 1390 Z$=FNFel$(Fel2$) 1400 RESUME 1050 1410 FNEND 1420 DEF FNR{kna 1430 F1=Antal/23-INT(Antal/23) 1440 X=F1*P 1450 F=(SIN(X)+1)*28+20 1460 F1=Antal/28-INT(Antal/28) 1470 X=F1*P 1480 K=(SIN(X)+1)*28+20 1490 F1=Antal/33-INT(Antal/33) 1500 X=F1*P 1510 I=(SIN(X)+1)*28+20 1520 FOR J=0 TO 79 1530 P$(J)=" " 1540 NEXT J 1550 P$(48)="." 1560 P$(F)="F" 1570 P$(K)="K" 1580 P$(I)="I" 1590 Dagnr=FNVeckodag(Dag2) 1600 RETURN 0 1610 FNEND 1620 DEF FNSkriv 1630 Y$=NUM$(Y4) : IF LEN(Y$)=1 Y$="0"+Y$ 1640 IF LEN(Y$)>2 Y$=RIGHT$(Y$,2) 1650 M$=NUM$(M4) : IF LEN(M$)=1 M$="0"+M$ 1660 D$=NUM$(D4) : IF LEN(D$)=1 D$="0"+D$ 1670 S$=Y$+M$+D$ 1680 Dag$=D$(Dagnr) 1690 PRINT #Fil TAB(1) S$;TAB(9) Dag$;TAB(19); 1700 FOR J=19 TO 79 1710 PRINT #Fil;P$(J); 1720 NEXT J 1730 PRINT 1740 Antal=Antal+1 : D4=D4+1 1750 Dag2=Dag2+1 1760 IF M4<>2 THEN 1800 1770 IF D4<>29 THEN 1800 1780 IF INT(Y4/4)-Y4/4<>0 THEN 1800 1790 RETURN 0 1800 IF D4<=T(M4) RETURN 0 1810 M4=M4+1 1820 D4=1 1830 IF M4>12 THEN 1850 1840 RETURN 0 1850 M4=1 1860 Y4=Y4+1 1870 RETURN 0 1880 FNEND 1890 DEF FNDagfaktor(Y,M,D) 1900 Y1=INT(Y/100) 1910 Y2=Y-100*Y1 1920 N=0 1930 IF M>2 THEN 2020 1940 N=2 1950 IF Y2=0 THEN 2000 1960 R=Y2-4*INT(Y2/4) 1970 IF R<>0 THEN 2020 1980 N=1 1990 GOTO 2020 2000 R=Y1-4*INT(Y1/4) 2010 IF R=0 THEN N=1 2020 C=INT(365.25*Y2)+INT(30.56*M)+N+D 2030 RETURN C 2040 FNEND 2050 DEF FNVeckodag(Dag) 2060 Dagnr=3+Dag-7*INT((Dag+2)/7) 2070 RETURN Dagnr 2080 FNEND 2090 DEF FNFel$(Fel$) 2100 PRINT CHR$(7);CUR(23,5) Fel$; : GET In$ 2110 IF ASCII(In$)=24 THEN PRINT CUR(23,5) SPACE$(40); 2120 RETURN "" 2130 FNEND