Qualificatore di triangoli

Esame di Stato – Seconda prova di Informatica – 1987

Il candidato deve ideare, orientandosi verso un linguaggio di programmazione a sua scelta, uno o più programmi che permettano di gestire la situazione descritta di seguito.

Si vuole un “qualificatore” di triangoli che qualifichi secondo la geometria elementare triangoli per conto, e con la collaborazione attiva, di un utente che non conosce la terminologia relativa a queste figure (ad esempio un bambino), ma è tuttavia in grado di confrontare segmenti e di riconoscere angoli retti, acuti e ottusi.

Il programma dovrà rivolgere domande che, nell’ambito di competenza dell’utente richiedano risposte di tipo SI/NO, VERO/FALSO o simili. La forma e il numero di tali domande sono lasciati al candidato.

Quando riterrà di avere avuto informazioni sufficienti il programma produrrà la qualifica richiesta nella forma di un messaggio che dice “il tuo triangolo è” seguito da una delle qualifiche: “equilatero”, “isoscele rettangolo”, “isoscele ottusangolo”, “isoscele acutangolo”, “scaleno rettangolo”, “scaleno ottusangolo”, “scaleno acutangolo”.

triangoli2La classificazione dei triangoli può essere schematizzata con l’albero qui a lato:

Produrre:

  • analisi e documentazione del progetto ideato comprese le eventuali ipotesi aggiuntive poste dal candidato;
  • le dichiarazioni di tutti i tipi, le variabili e le costanti necessarie alla scrittura dei programmi che realizzeranno il progetto documentato;
  • la codifica degli algoritmi e/o dei segmenti di programma che si ritengono maggiormente utili ad illustrare le idee guida del progetto.

Lo schema di soluzione seguente differisce dalla consegna e si basa sulla richiesta delle dimensioni dei tre lati del triangolo

  1. equilatero?
    1. (a=b)\wedge(b=c)
  2. isoscele?
    1. (a=b)\vee(a=c)\vee(b=c)
    2. quali lati sono uguali?
  3. scaleno?
    1. (a\ \neq \ b)\wedge (a\ \neq \ c)\wedge(b\ \neq \ c)
  4. rettangolo?
    1. (a^2=b^2+c^2)\vee(b^2=a^2+c^2)\vee(c^2=a^2+b^2)
    2. quali lati sono i cateti?
    3. in quale vertice c’è l’angolo retto?
  5. ottusangolo?
    1. (a^2\ > \ b^2+c^2)\vee(b^2\ > \ a^2+c^2)\vee(c^2\ > \ a^2+b^2)
    2. quale angolo è ottuso?
  6. acutangolo?
    1. (a^2\ < \ b^2+c^2)\vee(b^2\ < \ a^2+c^2)\vee(c^2\ < \ a^2+b^2)
  7. è un vero triangolo?
    1. (a+b\ >\ c)\wedge(a+c\ > \ b)\wedge(b+c \ > \ a)

Le espressioni logiche non sono indipendenti tra loro quindi non sarà necessario valutarle tutte.


RISORSE

  1. Wikipedia: Triangolo, Triangolo rettangolo, teorema dei seni, teorema del coseno, …