|  |  | Soluzione di esercizi |

## Soluzione di esercizi

Uno dei possibili utilizzi didattici di DR. GEO consiste nella possibilità di risolvere, ricorrendo agli script Guile esercizi di geometria. Come esempio mostriamo ora la soluzione di un classico problema di geometria, in cui si applica il teorema di Pitagora, e il cui testo è il seguente:

Sia dato un trapezio rettangolo ABCD di cui sono note le lunghezze delle due basi e dell'altezza. Calcolare perimetro e area del trapezio.

Non è difficile, sulla scia di quanto trattiamo, sviluppare molti altri esempi non necessariamente ristretti all'ambito della Matematica.

Soluzione: Iniziamo costruendo con DR. GEO la figura:

Trapezio rettangolo

Essa comprende i dati e da questi possiamo procedere per risolvere il problema. Innanzitutto possiamo rispondere subito alla domanda riguardante l'area. Per fare questo scriviamo il seguente script Guile che ha come parametri in ingresso basi e altezza del trapezio:

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

ci calcoliamo quindi la lunghezza del segmento BH scrivendo uno script in Guile i cui oggetti in ingresso sono i segmenti AB e CD:

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

A questo punto possiamo applicare il teorema di Pitagora al triangolo rettangolo CHB. Anche qui usiamo uno script Guile che ha come oggetti in ingresso il segmento CH e lo script BH:

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

Finalmente possiamo ricavare la lunghezza del lato obliquo BC calcolando la radice quadrata del valore restituito dallo script precedente:

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

I due script precedenti potevano essere compendiati in un unico script, ma leggermente più complesso. A questo punto possiamo concludere l'esercizio calcolando il perimetro con lo script Guile:

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

|  |  | Soluzione di esercizi |