# Addizioni sessagesimali (scuola media)
## Addizioni sessagesimali (scuola media)

Calcolatrice per fare le addizioni con numeri espressi in forma sessagesimale

## Versione di Scratch utilizzata

La versione di scratch usata in questo progetto è scratch 3.0 online.

## Cosa richiede l'esercizio

Creare una calcolatrice che faccia le addizioni sessagesimali$^{VK}$, tenendo conto che potrebbe verificarsi l'esigenza di fare dei riporti. Fondamentalmente si devono eseguire le somme di gradi, minuti e secondi e poi controllare che secondi e minuti non superino il 59 nel qual caso si devono fare dei riporti togliendone 60 ed aggiungendone una unità all'unità superiore.

## Come funziona una addizione sessagesimale

Per maggior chiarezza commentiamo un esempio:
nell'ultimo passaggio sono stati eseguiti i riporti per riscrivere il risultato in forma normale si sono sottratti $60''$,
aggiungendo $1'$ per ottenere così
ai quali al loro volta sono stati tolti $60'$ per ottenere
Quindi

## Addendi e somma

Per cominciare a far fare a Scratch una addizione sessagesimale dobbiamo fornire in input gli addendi$^{VK}$ e prevedere come Scratch ci restituirà il risultato, la somma$^{VK}$. Ogni numero scritto in forma sessagesimale richiede Gradi, Minuti e Secondi.
Cominciamo quindi a preparare 9 variabili:
| Istruzioni | Immagini |
| Come esempio per il primo addendo Gradi_addendo_1 Minuti_addendo_1 Secondi_addendo_1 altre tre vanno preparate per il secondo addendo ed altre tre per la somma. | Eccole: |

## Come si presenta lo stage: sprite e variabili visibili

Per avviare le funzioni richieste:
* input
* addizione
* riporto Secondi-Minuti
* riporto Minuti-Gradi
possiamo pensare ad assegnare compiti diversi a sprite diversi. Senza troppa fantasia si potrebbero usare:
* Istruzioni
* Il gatto raccoglie gli input
* tasto per eseguire l'addizione
* tasto riporto secondi
* tasto riporto minuti
Lo stage si presenta così

## Cominciamo con gli input

Per prima cosa per far funzionare la calcolatrice si devono fornire gli addendi e quindi il nostro Gatto dovrà farci le 6 domande necessarie per assumere Gradi, Minuti e Secondi dei due addendi.
| Sprite | Blocchi codice | Istruzioni |
| | | Il gatto ci pone 6 domande e assegna i valori alle variabili: Gradi_addendo_1 Minuti_addendo_1 Secondi_addendo_1 Gradi_addendo_2 Minuti_addendo_2 Secondi_addendo_2 qui di fianco c'è il codice per la variabile Gradi_addendo1, per ottenere l'input dei due addendi basta ripetere per 6 volte la domanda, ask, e la conseguente assegnazione, set - answer, modificando la variabile. |
Il completamento dell'immissione degli addendi potrebbe essere segnalata con un output il Gatto potrebbe dire: «OK!», si devono mettere i comandi opportuni.

## Sommiamo!

Aggiungiamo lo sprite del Tasto Addizione e procediamo con l'operazione.
| Sprite | Blocchi codice | Istruzioni |
| | | Il clik sul tasto addizione procede a calcolare la somma dei Gradi come in figura, aggiungete il blocco per la somma dei Minuti e dei Secondi |

## Controllo e riporti

Fatta la somma si deve controllare che il risultato sia espresso in forma corretta, cosiddetta forma normale. I minuti e i secondi devono essere meno di 59 altrimenti si deve procedere con i riporti, sottraendo 60 alla quantità eccedente ed aggiungendo 1 all'unità superiore.

### Riporto Secondi - Minuti

Nella tabella potete vedere come potrebbe essere il codice necessario per procedere con il riporto dai Secondi ai Minuti. Sono presenti due versioni, la prima breve ed essenziale fa quello che deve fare senza nessun tipo di output, cioè non è visibile nessun segnale dell'avvenuto riporto che non sia il cambiamento dei valori di Secondi e Minuti.
La seconda versione fa sì che il tasto riporto secondi comunichi l'avvenuto riporto.
| Sprite | Blocchi codice | Istruzioni |
| | | Il clik sul tasto riporto secondi dopo aver controllato il valore dei secondi, if, procede nel caso che i secondi superino il 59 a fare il riporto sottraendo i secondi eccedenti e aggiungendo un minuto. |
| | | Questo codice fa la stessa cosa di quello sopra aggiungendo due commenti say. |

### Riporto Minuti - Gradi

Aggiungiamo un ulteriore tasto riporto minuti si comporta in modo analogo al precedente riporto secondi, il codice è del tutto simile avendo la sola accortezza di modificare le variabili.

## Modello progetto da completare

Va su https://scratch.mit.edu/projects/358481615/ remixa e rinomina il progetto e completalo.