10 REM "EXCENT5" 20 PI = 4 * ATN(1): k = 180 / PI: CLS : SCREEN 12 21 INPUT "ANNEE DE DEPART "; AN0: INPUT "ANNEE DE FIN "; AN1 22 CLS : LINE (650, 30)-(0, 30) 23 FOR AN = AN0 TO AN1 STEP 10000 24 PSET (10 + (AN - AN0) / ((AN1 - AN0) / 500) * 1.108, 25) 25 LINE -(10 + (AN - AN0) / ((AN1 - AN0) / 500) * 1.108, 35): NEXT AN 27 LINE (650, 170)-(0, 170): LINE (10, 20)-(10, 320) 28 PSET (10 + (0 - AN0) / ((AN1 - AN0) / 500) * 1.108, 2) 29 LINE -(10 + (0 - AN0) / ((AN1 - AN0) / 500) * 1.108, 320) 30 FOR Y = -.03 TO .03 STEP .01 31 LINE (0, 170 + 2000 * Y)-(10, 170 + 2000 * Y) 32 NEXT Y: PSET (10, 170) 35 XREF = 1: AN = 2000: kk = 0: GOSUB 70: XREF = XPOINT 40 kk = 1: PLUS = 0: MOINS = 0: FOR AN = AN0 TO AN1 STEP 1000 45 GOSUB 70: NEXT AN 50 LOCATE 19, 20 51 PRINT "Evolution climatique de l'an "; AN0; " … l'an "; AN1 60 LOCATE 21, 20 61 PRINT "ann‚es plus froides que maintenant "; MOINS * 1000 62 LOCATE 22, 20 63 PRINT "ann‚es plus chaudes que maintenant "; PLUS * 1000 64 END 70 IE = (23.2916667# + 1.308333 * COS(2 * PI * AN / 41000 + 1.151750966#)) 71 IE = IE / k 72 ES = .0265 + .0265 * COS(2 * PI * AN / 100000 + 1.82397012#) 75 PREC = 2 * PI * AN / 25816.73 - 2 * PI * (AN - 2000) / 21000 + 1.313108 80 IF PREC < 0 THEN PREC = PREC + 2 * PI: GOTO 80 82 IF PREC > 2 * PI THEN PREC = PREC - 2 * PI: GOTO 82 85 LPS = ATN(TAN(PREC / 2) * SQR((1 + ES) / (1 - ES))) 87 IF COS(PREC / 2) < 0 THEN LPS = LPS + PI 88 LPS = LPS * 2 90 IF LPS > 2 * PI THEN LPS = LPS - 2 * PI: GOTO 90 95 IF LPS < 0 THEN LPS = LPS + 2 * PI: GOTO 95 150 AAS = 1.00000101778#: SELL = PI * AAS * AAS * SQR(1 - ES * ES) 160 TETA0 = PI / 2 - LPS: CSTE = 365.25 / PI / AAS / AAS / SQR(1 - ES * ES) 162 IF TETA0 < 0 THEN TETA0 = 2 * PI + TETA0: GOTO 162 163 IF TETA0 > 2 * PI THEN TETA0 = -2 * PI + TETA0: GOTO 163 170 TETA = TETA0 175 DISTDH = AAS * (1 - ES * ES) / (1 + ES * COS(TETA)) 178 GOSUB 300: S0 = S 180 TETA = TETA0 + PI / 2 183 IF TETA > 2 * PI THEN TETA = TETA - 2 * PI: GOTO 183 184 IF TETA < 0 THEN TETA = TETA + 2 * PI: GOTO 184 185 GOSUB 300: S1 = S: IF S1 < S0 THEN S1 = S1 + SELL 190 SHIV = S1 - S0 200 DHIV = SHIV * CSTE 205 DISTFH = AAS * (1 - ES * ES) / (1 + ES * COS(TETA)) 210 TETA = TETA + PI / 2 213 IF TETA > 2 * PI THEN TETA = TETA - 2 * PI: GOTO 213 214 IF TETA < 0 THEN TETA = TETA + 2 * PI: GOTO 214 215 GOSUB 300: S2 = S: IF S2 < S1 THEN S2 = S2 + SELL 220 SPRI = S2 - S1 230 DPRI = SPRI * CSTE 235 DISTFP = AAS * (1 - ES * ES) / (1 + ES * COS(TETA)) 240 TETA = TETA + PI / 2 243 IF TETA > 2 * PI THEN TETA = TETA - 2 * PI: GOTO 243 244 IF TETA < 0 THEN TETA = TETA + 2 * PI: GOTO 244 245 GOSUB 300: S3 = S: IF S3 < S2 THEN S3 = S3 + SELL 250 SETE = S3 - S2 260 DETE = SETE * CSTE 265 DISTFE = AAS * (1 - ES * ES) / (1 + ES * COS(TETA)) 270 TETA = TETA + PI / 2 273 IF TETA > 2 * PI THEN TETA = TETA - 2 * PI: GOTO 273 274 IF TETA < 0 THEN TETA = TETA + 2 * PI: GOTO 274 275 GOSUB 300: S4 = S: IF S4 < S3 THEN S4 = S4 + SELL 280 SAUT = S4 - S3 285 DAUT = SAUT * CSTE: DISTFA = AAS * (1 - ES * ES) / (1 + ES * COS(TETA)) 286 XPOINT = 1 290 XPOINT = XPOINT * SQR((DAUT + DHIV) / 182.625) 292 XPOINT = XPOINT * COS(IE) / COS(.4065162#) 295 IF XPOINT < XREF THEN PLUS = PLUS + 1 ELSE MOINS = MOINS + 1 296 pp1 = 10 + (AN - AN0) / ((AN1 - AN0) / 500) * 1.108 297 IF kk = 1 THEN LINE -(pp1, 170 + 2000 * (XPOINT - 1)) 298 RETURN 300 FC = 2 * ATN(SQR((1 - ES) / (1 + ES)) * TAN(TETA / 2)) 305 IF FC < 0 THEN FC = FC + 2 * PI 310 S = AAS * AAS * SQR(1 - ES * ES) / 2 * (FC - ES * SIN(FC)) 320 RETURN