|  |  | Pythagore et scripts |

## Pythagore et scripts

Une des possibilités d'utilisation didactique de DR. GEO consiste dans l'utilisation des scripts Scheme pour résoudre des exercices de géométrie.

Comme exemple, nous allons montrer la solution d'un problème classique mettant en oeuvre le théorème de Pythagore dont le texte est le suivant :

Soit un trapèze rectangle ABCD où sont connues les bases et la hauteur. Calculer le périmètre et l'aire du trapèze.

Il n'est pas difficile, si vous suivez le même modèle, de développer d'autres exemples similaires.

Solution :

Commençons par construire la figure dans DR. GEO qui doit être comme ci-dessous :

Trapèze rectangle

La figure comprend les données à partir desquelles nous pouvons résoudre le problème. D'abord nous pouvons répondre à la première question de l'aire, pour cela nous pouvons écrire le script Scheme suivant ayant comme entrée les deux bases et la hauteur du trapèze :

    define AB (getLength a1))
    (define DC (getLength a2))
    (define AD (getLength a3))
    (/ ( * AD (+ AB DC )) 2 )

Nous calculons la longueur du segment BH en écrivant un script Scheme avec comme objet en entrée les segments AB et CD, et le texte du script est le suivant :

    (define AB (getLength a1))
    (define CD (getLength a2))
    (- AB CD)

À ce stade, nous pouvons appliquer le théorème de Pythagore dans le triangle rectangle CHB. Ici aussi nous utilisons un script Scheme avec comme objets en entrée le segment CH et le script BH :

    (define CH (getLength a1))
    (define BH (getValue a2))
    (+ (* CH CH) (* BH BH))

Finalement nous pouvons obtenir la valeur du segment BC en calculant la racine carrée de la valeur retournée par le script précédent :

    (define q (getValue a1))
    ( sqrt q )

Les deux scripts précédents peuvent être regroupés en un seul script un peu plus élaboré.

Maintenant nous pouvons conclure l'exercice en calculant le périmètre avec un script Scheme :

    (define AB (getLength a1))
    (define CB (getValue  a2))
    (define DC (getLength a3))
    (define AD (getLength a4))
    (+ (+ AB CB )(+ DC AD ))

|  |  | Pythagore et scripts |