# Calcolatrice frazioni addizione (scuola media)
## Addizione di frazioni (scuola media)

Calcola la somma di due frazioni fornite trasformandole in frazioni equivalenti aventi come denominatore il mcm dei denominatori. Si può fruire di questo tutorial in forma di mappa mentale su wiki2map

## Versione di Scratch utilizzata

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

## Cosa richiede l'esercizio

Fornite le due frazioni addendi nella sequenza numeratore prima frazione, denominatore prima frazione, numeratore seconda frazione e denominatore seconda, la calcolatrice deve sommarle e restituire la frazione somma.

## Regole per fare l'addizione delle frazioni

Per chi non ama leggere: Matteo Ruffoni, Addizione frazioni 2020 2, su YouTube, 16 apr 2020.
Per sommare delle frazioni con denominatore diverso devo:
* Trovare l’m.c.m dei denominatori delle frazioni;
* Trovare le frazioni equivalenti che abbiano come denominatore l’m.c.m;
* Sommare o sottrarre le frazioni.
Es:
* ${\frac {1}{3}}+{\frac {7}{2}}={\frac {2+21}{6}}={\frac {23}{6}},m.c.m(3;2)=6$
Per ripassare le regole delle operazioni tra le frazioni vai alla pagine La frazione (scuola media) In generale la nostra calcolatrice sarà in grado di fare addizioni anche se i denominatori delle frazioni addendi sono uguali, il mcm in questo caso è uguale ai denominatori e il suo calcolo è velocissimo.

## Operazione complessa facciamo uno schema

Elenchiamo qui sotto i passaggi necessari ad un programma per fare l'addizione di frazioni:
* ricevere in input le due frazioni addendi, in tutto 4 input:
** numeratore prima frazione
** denominatore prima frazione
** numeratore seconda frazione
** denominatore seconda frazione
* calcolare il mcm dei denominatori, per farlo:
** calcolare MCD dei denominatori
** ottenere mcm con la formula moltiplicazione dei denominatori diviso MCD
    ${\frac {den1\cdot den2}{MCD(den1,den2)}}$
* trasformare le frazioni nelle frazioni equivalenti con denominatore il mcm dei denominatori
* procedere alla somma dei numeratori
* restituire in output la frazione somma con numeratore somma dei numeratori e denominatore il mcm

## Dallo schema al codice: le funzioni (My Blocks)

Per riuscire a svolgere un compito complesso può essere utile suddividerlo in processi più piccoli. Ognuno di questi processi esegue una consegna specifica e queste parti una volta assemblate in modo corretto permettono di ottenere lo svolgimento del compito. Per suddividere le operazioni da svolgere Scratch ci mette a disposizione il menù My Blocks che ci permette di creare un blocco che esegue un compito specifico seguendo le istruzioni collegate al blocco Define.
* In fondo il menù MyBlocks
* Pop Up per creare il blocco
* Il blocco è stato nominato Fa_qualcosa
* Define da completare con le istruzioni e blocco da aggiungere al codice
Per ottenere una calcolatrice funzionate dovremo a partire dal solito blocco Bandiera verde mettere in ordine le funzioni che ci permetterranno una volta eseguite in ordine corretto di ottenere la somma delle frazioni.
* Input per inserire gli addendi
* MCD calcola MCD dhe serve per calcolare mcm
* mcm calcola mcm usando MCD
* Output trasforma le frazioni equivalenti, calcola e procede alla somma
* Risposta restituisce i risultati facendo parlare il gatto

## Input frazioni addendi

Clikkata la bandiera verde, il Gatto ci chiederà di inserire ordinatamente:
* numeratore prima frazione
* denominatore prima frazione
* numeratore seconda frazione
* denominatore seconda frazione
valori che il programma assegna alle variabili. Nella tabella viene riportato il codice della funzione InputBlock.

### Variabili per gli input

Per ogni valore immesso va preparata una variabile:
| Valore immesso | Variabile |
| numeratore prima frazione | NumAdd1 |
| denominatore prima frazione | DenAdd2 |
| numeratore seconda frazione | NumAdd2 |
| numeratore seconda frazione | DenAdd2 |

### Funzione InputBlock

| Sprite | Blocchi codice | Istruzioni |
| | | Input Variabile Istruzioni numeratore prima frazione NumAdd1 Il valore della risposta viene assegnato alla variabile dall'istruzione Set denominatore prima frazione DenAdd1 Il valore della risposta viene assegnato alla variabile dall'istruzione Set numeratore seconda frazione NumAdd2 Il valore della risposta viene assegnato alla variabile dall'istruzione Set denominatore seconda frazione DenAdd2 Il valore della risposta viene assegnato alla variabile dall'istruzione Set |