{ Structure de stockage de coordonnees reelles } { en deux dimensions } structure coordonnees2D reel x <- 0.0 { Abscisse } reel y <- 0.0 { Ordonnee } fin structure { Type agrege de stockage des composantes } { reelles d'une droite du plan } structure droite2D reel a <- 0.0 { Coefficient directeur } reel b <- 0.0 { Ordonnee a l'origine } fin structure { Calcul de l'intersection entre deux droites } { non paralleles d'équation y = a*x+b } { Implantation sous la forme d'une fonction } coordonnees2D fonction intersection(-> droite2D d1,-> droite2D d2) coordonnees2D inter inter.x <- (d2.b-d1.b)/(d1.a-d2.a) inter.y <- d1.a*inter.x+d1.b retourner inter fin fonction { Calcul de l'intersection entre deux droites } { non paralleles d'équation y = a*x+b } { Implantation sous la forme d'une action } action intersection(-> droite2D d1,-> droite2D d2,coordonnees2D inter ->) inter.x <- (d2.b-d1.b)/(d1.a-d2.a) inter.y <- d1.a*inter.x+d1.b fin action { Action principale } action principale() droite2D da; droite2D db; coordonnees2D c1; coordonnees2D c2; { Saisie de da } ... { Saisie de db } ... { Appel a la fonction intersection } c1 <- intersection(da,db); { Appel a l'action intersection } intersection(da,db,c2); { c1 et c2 contiennent les memes coordonnees } afficherln(c1.x," ",c1.y) afficherln(c2.x," ",c2.y) fin action