//********************************************************************* // Exo 1 (en algorithmique et en C++) //********************************************************************* structure point { x : réel y : réel } struct point { float x; float y; } fonction saisirPoint() : point { variable a : point Afficher("Veuillez saisir les coordonnées du point :") Saisir(a.x, a.y) retourne a } point saisirPoint() { point a; cout << "Veuillez saisir les coordonnées du point :"; cin >> a.x >> a.y; return a; } fonction distancePoints(E A : point, E B : point) : réel { variable distance : réel distance <--- racine_carrée((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)) retourne distance } float distancePoints(point A, point B) { float distance; distance = racine_carrée((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)); return distance; } Algorithme Utilisation_Points { variable p1, p2 : point distance : réel // Saisie (à point ;) p1 <-- saisirPoint() p2 <-- saisirPoint() distance <--- distancePoints(p1,p2) Afficher("La distance entre (", p1.x,",",p1.y,") et (", p2.x,",",p2.y,") est de : ", distance, ".\n") } int main() { point p1, p2; float distance; // Saisie (à point ;) p1 = saisirPoint(); p2 = saisirPoint(); distance = distancePoints(p1,p2); cout << "La distance entre (" << p1.x << ","<< p1.y<<") et ("<< p2.x << "," << p2.y << ") est de : "<< distance << "." << endl; } //********************************************************************* // Exo 2 (seulement en algorithmique) //********************************************************************* structure Disque { rayon : réel centre : point } // Sera-t-il dans le top 50 ? fonction saisirDisque() : Disque { variable d : Disque Afficher("Saisir le rayon : ") Saisir(d.rayon) Afficher("Saisir le centre : ") d.centre <-- saisirPoint() retourne d } fonction testInclusion(E d : Disque, E p : point) : booleen // logique { variable distance : réel distance <-- distancePoints(d.centre, p) Si (distance > d.rayon) alors { retourne FAUX } sinon { retourne VRAI } }