Realizziamo degli algoritmi sui triangoli con Algobuild.

Dati in input i lati di un triangolo verificare se è isoscele, equilatero o scaleno.

Per verificare se un triangolo è isoscele, equilatero o scaleno dobbiamo confrontare i lati tra di loro.

Ricordiamo che su Algobuild, come nei linguaggi di programmazione, l’operatore di confronto per l’uguaglianza è il doppio uguale: ==

Algoritmo sui triangoli con Algobuild

Come procediamo per verificare se un triangolo è isoscele, equilatero o scaleno?

Procediamo in questo modo:

Banner Pubblicitario

Prima confrontiamo lato1==lato2 e lato2==lato3 per determinare se il triangolo è equilatero.

Dopo confrontiamo se lato1==lato2 o lato2==lato3 o lato1==lato3 per determinare se il triangolo è isoscele.

Se nessuna delle condizioni sopra si verifica allora il triangolo è scaleno.

Prima però occorre controllare che il triangolo soddisfa questa proprietà fondamentale: In un triangolo ogni lato è minore della somma degli altri due!’

Quindi impostiamo un ciclo do-while con questa condizione:
while !(lato1<lato2+lato3 && lato2<lato3+lato1 && lato3<lato1+lato2)

Se questa condizione è vera quindi richiediamo i lati per far si che rispettino la proprietà.

Come da figura sotto:

Banner pubblicitario
while triangoli

Se la proprietà dei triangoli è verificata allora continuiamo.

Ricordiamo che gli operatore logici in Algobuild, così come nei linguaggi di programmazione si indicano in questo modo:

per l’and si usa il simbolo &&

per l’or si usa il simbolo ||

per il not si usa il simbolo !

Allego lo script completo

triangoli algobuild

La stessa soluzione si poteva implementare anche con gli if annidati.

lati triangoli
isoscele

Ecco lo pseudocodice:

PROG main
DO_WHILE //! (lato1<lato2+lato3 && lato2<lato3+lato1 && lato3<lato1+lato2)
         IN lato1
         IN lato2
         IN lato3
END DO_WHILE ! (lato1<lato2+lato3 && lato2<lato3+lato1 && lato3<lato1+lato2)
IF lato1==lato2 &&lato2==lato3
OUT "il triangolo è equilatero"
ELSE //if lato1==lato2 &&lato2==lato3
IF lato2==lato3 || lato1==lato2 || lato1==lato3
OUT "il triangolo è isoscele"
ELSE //if lato2==lato3 || lato1==lato2 || lato1==lato3
OUT "il triangolo è scaleno"
         END IF //lato2==lato3 || lato1==lato2 || lato1==lato3
     END IF //lato1==lato2 &&lato2==lato3
 END PROG //main

Alcuni link utili

Indice argomenti diagramma a blocchi

Numeri primi da 1 a 100

Array con algobuild

Divisori di un numero con algobuild

Algoritmi di selezione sugli angoli

Algoritmi di selezione

Triangoli con algobuild

Fibonacci con algobuild

Serie buffa con algobuild

Numeri amicabili con algobuild

Numeri perfetti con algobuild

Massimo fra tre numeri

Minore fra tre numeri