Georges
Nombre de messages : 290 Age : 55 Localisation : Martinique Date d'inscription : 29/05/2009
| Sujet: POINT D'INTERSECTION DE DEUX DROITES Jeu 5 Nov 2009 - 21:08 | |
| Salut à tous Toujours dans un repère orthonormé, ce prog donne l'intersection de 2 droites en x et en y Les droites s'écrivent sous la forme y=ax+b. Il faut entrées deux droites.Seuls les données a et b sont à entrée. A1 et B1 pour la première droiteet A2 et B2 pour la deuxième droite. par exemple 2 droites y = 2x+5 A1= 2 B1= 5y= -3x+1 A2= -3 B2= 1 le résultat est l'intersection de ces deux droites, le prog donne comme résultat : x= -4/5 et y= 17/5
- Code:
-
rem ************************************************************** rem ** ** rem ** POINT D'INTERSECTION DE DEUX DROITES ** rem ** ** rem ************************************************************** rem Création d'étiquette label calcul,alert1,pun,pdeux,choix label boucle,saut,reinit,fin,propos rem Définition de variables dim a1,b1,a2,b2,a,b,x,y,p dim n,u,z,k,g,h,i,c,u1,u2 dim x$,y$,tx$,ty$ rem taille de la fenêtre left 0,350 top 0,200 width 0,550 height 0,400 border_hide 0 rem insertion de l'image de fond ' picture 1 ' file_load 1,"espace.bmp" ' command_target_is 0 ' full_space 1 rem on_click 1,fin rem Titre de l'application alpha 2 left 2,80 top 2,20 font_color 2,255,0,0 font_size 2,14 caption 2,"POINT D'INTERSECTION DE DEUX DROITES" rem Texte explicatif alpha 3 left 3,80 top 3,50 font_color 3,236,131,56 font_size 3,12 caption 3,"Les droites s'écrivent sous la forme suivantes : y = ax + b " rem Entrée du premier point alpha 4 left 4,45 top 4,80 font_size 4,12 caption 4,"POINT A1" edit 5 left 5,150 top 5,78 width 5,80 height 5,25 alpha 6 left 6,300 top 6,80 font_size 6,12 caption 6,"POINT B1" edit 7 left 7,405 top 7,78 width 7,80 height 7,25 rem Entrée du deuxième point alpha 8 left 8,45 top 8,115 font_size 8,12 caption 8,"POINT A2" edit 9 left 9,150 top 9,113 width 9,80 height 9,25 alpha 10 left 10,300 top 10,115 font_size 10,12 caption 10,"POINT B2" edit 11 left 11,405 top 11,113 width 11,80 height 11,25 button 12 left 12,330 top 12,350 width 12,100 height 12,30 caption 12,"CALCULER" on_click 12,calcul button 13 left 13,450 top 13,350 width 13,80 height 13,30 caption 13,"Quitter" on_click 13,fin picture 14 top 14,150 left 14,25 file_load 14,"acequa.bmp" edit 15 top 15,250 left 15,30 edit 16 top 16,250 left 16,300 alpha 18 left 18,30 top 18,220 width 18,1 font_color 18,255,39,40 font_size 18,14 button 19 left 19,200 top 19,350 width 19,100 height 19,30 caption 19,"A propos" on_click 19,propos on_click 5,reinit on_click 7,reinit on_click 9,reinit on_click 11,reinit rem dessin de ligne de cadre 2d_target_is 0 2d_pen_width 10 2d_line 0,0,0,400 2d_line 0,0,550,0 2d_line 0,400,550,400 2d_line 550,0,550,400 end calcul: rem captage du point A1 if text$(5)="" then return if numeric(text$(5))=0 then return a1=val(text$(5)) rem captage du point B1 if text$(7)="" then return if numeric(text$(7))=0 then return b1=val(text$(7)) rem captage du point A2 if text$(9)="" then return if numeric(text$(9))=0 then return a2=val(text$(9)) rem captage du point B2 if text$(11)="" then return if numeric(text$(11))=0 then return b2=val(text$(11)) a=a2-a1:b=b2-b1:b=b*-1 if a=0 then goto alert1 x=b/a y=(a1*x)+b1 if x<>int(x) then gosub pun if x=int(x) then x$=str$(x) if y<>int(y) then gosub pdeux if y=int(y) then y$=str$(y) tx$="x = "+x$ font_color 15,128,0,132 font_size 15,20 left 15,30 top 15,250 width 15,200 height 15,35 text 15,tx$ ty$="y = "+y$ font_color 16,128,0,132 font_size 16,20 left 16,250 top 16,250 width 16,200 height 16,35 text 16,ty$ rem affichage de l'alpha 18 left 18,30 top 18,220 caption 18,"Les coordonnées du point d'intersection sont : " return alert1: button 17 left 17,50 top 17,250 width 17,400 height 17,30 caption 17,"Cette opération est impossible" on_click 17,fin return pun: p=1 gosub choix return pdeux: p=2 gosub choix return choix: if p=1 then n=x if p=2 then n=y u=n:z=int(n):k=z:g=1:h=1:i=0 boucle: if abs(n-k/g)<0.000000001 then goto saut if u-z=0 then goto saut u1=u-z:u2=-1 u=power(u1,u2) z=int(u) c=(k*z)+h h=k k=c c=(g*z)+i i=g g=c goto boucle saut: if p=1 then x$=str$(k)+"/"+str$(g) if p=2 then y$=str$(k)+"/"+str$(g) return reinit: text 15," " text 16," " return propos: message "Insersection de deux droites - Version 1.00 - Copyright 2009" return fin: terminate
Georges @+
Dernière édition par Georges le Jeu 5 Nov 2009 - 22:12, édité 1 fois | |
|