Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Traitement d'une fonction du second degré. Mar 20 Déc 2016 - 10:18 | |
| Bonjour. Voici un petit programme de dessin d'une telle fonction, vite réalisé. A adapter à votre gré. - Code:
-
dim a, b, c, crlf$, delta, k, maximum, ox, oy, x1, x2, y1, y2
maximize 0 2d_target_is 0
crlf$=chr$(10)+chr$(13)
ox=screen_x/2 oy=screen_y/2
' ax²+bx+c ' b² = 25 ' 4ac = -24 ' delta = 49 ' x1 = (-5-7)/-4 = 3 ' x2 = (-5+7)/-4 = 2/-4 = - 0.5 a=-2 b=5 c=3
delta=b*b-4*a*c
for x1=0 to ox*2 step 25 2d_line x1,oy-5,x1,oy+5 if mod(x1,5)=0 then print_locate x1-5,oy+10:print str$((x1-ox)/25) next x1
for y1=0 to oy*2 step 25 2d_line ox-5,y1,ox+5,y1 if mod(y1,5)=0 then print_locate ox+10,y1-5:print str$((oy-y1)/25) next y1
if delta>0 k=0 2d_line ox,0,ox,oy*2 2d_line 0,oy,ox*2,oy 2d_pen_color 255,0,0 2d_pen_width 3 for x1=-10 to 10 step 0.01 k=k+1 y1=a*x1*x1+b*x1+c x2=int(ox+x1*25) y2=int(oy-y1*25) if k=1 2d_poly_from x2,y2 else 2d_poly_to x2,y2 end_if next x1 end_if
x1=(0-b-sqr(delta))/(2*a) x2=(0-b+sqr(delta))/(2*a) maximum=x2-(x2-x1)/2
message "Delta= "+str$(delta)+crlf$+"x1= "+str$(x1)+crlf$+"x2= "+str$(x2)+crlf$+crlf$+"Maximum en ("+str$(maximum)+" ; "+str$(a*maximum*maximum+b*maximum+c)+")"
while 0=0 x1=mouse_x_position(0) y1=mouse_y_position(0) x1=(x1-ox)/25 y1=(oy-y1)/25 caption 0,"x: "+str$(x1)+", y1: "+str$(y1) end_while | |
|
Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Peux-tu peaufiner ? Mar 20 Déc 2016 - 12:47 | |
| Bonjour Pedro
Peux-tu afficher dans un coin de l'écran la fonction et l'échelle ? Pourra-t-on les modifier ? Si tu sais faire du second degré, pourquoi pas du troisième ?
PS. Je ne suis pas arrivé à sortir par la croix.
Cordialement | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traitement d'une fonction du second degré. Mar 20 Déc 2016 - 13:04 | |
| Bonjour tout le monde.
@Ouf_ca_passe
Dans le code de Pedro Alvarz, il n’est pas prévu de sortir. On se retrouve dans une boucle sans fin : while 0 = 0 . La condition de la boucle étant toujours satisfaite jusqu’à la fin des temps, il faut attendre … la fin des temps ! Bon, il suffit d’insérer, avant end_while, la ligne if scancode = 27 then terminate. De cette manière, un appui sur <ESC> permet de revenir au temps présent ! | |
|
Contenu sponsorisé
| Sujet: Re: Traitement d'une fonction du second degré. | |
| |
|