| 10 '********************
11 '* * 12 '* FONCTIONS EN * 13 '* * 14 '* GRISE * 15 '* * 16 '******************** 40 DEFINT i,j,k 50 DEF FNf(x)=COS(x*y*EXP(-y/5)) 100 GOSUB 1000:REM fenetre d'etude 110 GOSUB 3000:REM trace 120 END 1000 '*************** 1010 'FENETRE D'ETUDE 1020 '*************** 1030 MODE 1:INK 0,0:INK 1,13:BORDER 0 1040 PRINT"Fenetre d'etude :":PRINT 1050 INPUT"Bornes en x :";xi,xs 1060 INPUT"Bornes en y :";yi,ys 1070 INPUT"Calcul de minimax (o/n)";a$ 1080 IF LOWER$(a$)="o" THEN GOSUB 2000:GOTO 1100 1090 INPUT"Bornes en z :";zi,zs 1100 RETURN 2000 '************** 2010 'CALCUL MINIMAX 2020 '************** 2030 PRINT"Patience...." 2040 zi=1000000000290071000000000000000:zs=-1000000000290071000000000000000 2050 FOR i=0 TO 639 STEP 4 2060 x=xi+(xs-xi)*i/639 2070 FOR j=0 TO 399 STEP 4 2080 y=yi+(ys-yi)*j/399 2090 z=FNf(x) 2100 zi=MIN(zi,z) 2110 zs=MAX(zs,z) 2120 NEXT j 2130 NEXT i 2140 RETURN 3000 '***** 3010 'TRACE 3020 '***** 3030 CLS 3040 FOR i=2 TO 639 STEP 6 3050 x=xi+(xs-xi)*i/639 3060 FOR j=2 TO 399 STEP 6 3070 y=yi+(ys-yi)*j/399 3080 z=FNf(x) 3090 k=INT(10*(z-zi)/(zs-zi)) 3100 IF k=0 THEN 3200 3110 PLOT i,j:IF k=1 THEN 3200 3120 PLOT i+2,j:IF k=2 THEN 3200 3130 PLOT i,j-2:IF k=3 THEN 3200 3140 PLOT i-2,j:IF k=4 THEN 3200 3150 PLOT i,j+2:IF k=5 THEN 3200 3160 PLOT i-2,j+2:IF k=6 THEN 3200 3170 PLOT i+2,j-2:IF k=7 THEN 3200 3180 PLOT i-2,j-2:IF k=8 THEN 3200 3190 PLOT i+2,j+2 3200 NEXT j 3210 NEXT i 3220 WHILE INKEY$<>CHR$(13):WEND 3230 RETURN |