ESERCITAZIONE - CONVERSIONI
Pubblicare le soluzioni sul registro del professore utilizzando un unico file ODS/XLS. Tutte le soluzioni proposte devono rispettare questi vincoli:

1) Le formule devono essere scritte nelle celle con tonalità grigie o azzurra. Le grigie vanno intese come celle di supporto ai calcoli mentre quelle azzurre come celle di output.
3) Le celle gialle rappresentano le uniche celle di input e devono essere le sole modificabili. In altre parole se cerco di scrivere su una qualsiasi altra cella (non gialla) si deve visualizzare questo messaggio di errore.


3) L'aspetto grafico deve essere identico alle immagini (quindi anche la griglia non deve essere visibile)
4) Il file uploadato deve presentare più fogli come indicato nella figura sottostante.

Ogni studente deve pubblicare la propria soluzione e questo anche nel caso sia stata sviluppata in collaborazione con altri compagni. Il nome del file deve  essere: ESER_CO.ZIP.

ESERCIZIO 1

Costruire un traduttore su un foglio con etichetta "Decimale.Binario" che trasforma un numero intero positivo in un numero binario puro a 8 bit. Utilizzare le funzioni DECIMALE.BINARIO, TESTO e STRINGA.ESTRAI.
NB: l'esercizio è stato limitato a 8 bit poiché la funzione
DECIMALE.BINARIO funziona per numeri <= 29-1

ESERCIZIO 2

Costruire un traduttore su un foglio con etichetta "Decimale.BinarioSenzaFormule" che trasforma un numero intero positivo in un numero binario puro a 16 bit. E' ammesso l'uso della sola funzione di Excel/OpenCalc RESTO.

ESERCIZIO 3

Costruire un traduttore su un foglio con etichetta "Decimale.ComplementoA2SenzaFormule" che trasforma un numero intero con segno (quindi sia positivo che negativo) in un numero binario in complemento a due.  E' ammesso l'uso della sola funzione di Excel/OpenCalc RESTO.
Suggerimento: si ricordi che dato un numero
X rappresentato con N cifre in base B si definisce il suo complemento alla base la quantità BN-X.

ESERCIZIO 4

Costruire un traduttore su un foglio con etichetta "Decimale.EccessoK_ModuloSegno" che fornisce di un numero intero con segno la sua rappresentazione binaria in eccesso-K (K=215) oppure in modulo e segno a seconda di cosa indicato nella cella A5. (si vedano le due immagini d'esempio)

Nel caso in A5 non sia scritto "Eccesso-K" o "Modulo & Segno" il foglio dovrà visualizzare una sequenza di punti di domanda (vedi immagine sottostante). Inoltre il controllo non deve essere case sensitive ovvero deve essere indifferente scrivere "Eccesso-K" o "ECCESSO-K".

Suggerimento: usare le funzioni:  RESTO, SE, ASS, MAIUSC

ESERCIZIO 5

Costruire un traduttore su un foglio con etichetta "BaseN.BaseM" che trasformi un numero intero positivo (B3) da una base N (D4) ad una Base M (K4).Non è richiesto alcun controllo sui digit che si suppongono sempre conformi alla condizione 0 <= Ci < B. Le basi N e M ammesse vanno da 2 a 10
Suggerimento: moltiplicare l'i-esimo simbolo del numero in B3 (
STRINGA.ESTRAI) per la potenza della base D4 corrispondente [base^(LUNGHEZZA(numero)-i)]. Sommare le potenze cosi ottenute per ottenere il numero in base 10 F3 corrispondente. Partendo dal numero in base 10 calcolare in successione i resti Rk delle divisioni rispetto alla base finale. Ad ogni calcolo del resto impostare come prossimo dividendo Dk+1 il risultato della divisione intera di (Dk-Rk)/base finale

ESERCIZIO 6

Si componga su un foglio "Half_Adder" un semi sommatore. Le celle C4 ed D12 rappresentano i due addendi mentre E2 e B8 rispettivamente la somma ed il riporto. La tabella di verità dell'Half Adder deve essere riportata sotto al semi sommatore.

ESERCIZIO 7

Si scriva un foglio Full_Adder dove le celle C4 ed D12 rappresentano i due addendi mentre E9 il riporto della somma dei digit precedenti. La tabella di verità del Full-Adder deve essere riportata in basso al sommatore.

ESERCIZIO 8

Si scriva un foglio Addizionatore dove le celle R19 ed R21 rappresentano i due addendi A e B (interi positivi) da digitare mentre in AF19 deve apparire la loro somma. La somma deve essere ottenuta sfruttando la tabella di verità di ogni singolo full-adder.
Suggerimento: utilizzare le funzioni
BINARIO.DECIMALE, DECIMALE.BINARIO, STRINGA.ESTRAI, VALORE, TESTO, RESTO, CONCATENA, SE, RESTO, CONCATENA

ESERCIZIO 9

Costruire nel foglio "ParityCheck" il simulatore di trasmissione cosi descritto.
- Nelle area B3:H3 si scrive un testo di 7 caratteri ASCII non estesi (quindi a 7 bit). Nell'area B6:H12 devono essere scritte le sequenze di bit (scritte in verticale) relative ai 7 caratteri digitati (si utilizzino a tale scopo le funzioni:
TESTO, DECIMALE.BINARIO, CODICE, STRINGA.ESTRAI e VALORE). Si imposti poi il controllo di parità sulle aree J6:J12 (far apparire 1 se il numero di uni sulla riga corrispondente è dispari altrimenti 0), B14:H14 (far apparire 1 se il numero di 1 sulla colonna corrispondente è dispari altrimenti 0) e sulla cella J14 si inserisca il parity check relativo alle aree J6:J12 e B14:H14 (far apparire 1 se il numero di uni nelle due aree è dispari altrimenti 0).
- Simulare la trasmissione impostando una frequenza di errore sul singolo bit  nella cella N9. Nell'area Q6:Y14 simulare i bit ricevuti (per riprodurre l'errore utilizzare le funzioni 
CASUALE.TRA, RESTO, SE) Nelle aree AB6:AB12, Q16:W16 e AB16 replicare gli stessi controlli di parità visti relativamente all'area Q6:W12.
- Basandosi sul confronto tra i parity bit ricevuti e i parity check determinare i possibili errori di trasmissione evidenziandoli nelle zone Q17:W17 e AC6:AC12. Immaginare quindi un algoritmo di correzione (esempio invertire il bit in corrispondenza delle righe e colonne che presentano un possibile errore) e proporre nell'area Q3:W3 la stringa corretta
Effettuare delle prove sulla bontà dell'algoritmo di correzione simulando diverse trasmissioni premendo la combinazione del ricalcolo CTRL+SHIFT+F9.

ESERCIZIO 10

Si scriva un foglio "File_Analizer" che accetta nelle celle C4:F4 4 byte in formato esadecimale e restituisca l'interpretazione dei 4 byte come se fossero relativi ad:
- un file di testo di 4 byte
- un file composto da 2 numeri interi short
- un file composto da un numero intero long/int
- un file composto da un numero float (con la virgola in notazione IEEE 754)
Utilizzare le funzioni indicate nella figura.

ESERCIZIO 13 - PRONTUARIO ...

Redigere/aggiornare, usando WORD/WRITER, un proprio prontuario delle funzioni elencate nelle esercitazioni (quelle in BLU per intenderci). Utilizzare l'help di Excel/OpenCalc come supporto personale e caricarlo mediante il registro web con il nome Manuale.zip. Esempio sul come svolgere il lavoro:

SE(argomento1;argomento2;argomento3)

argomento1 è un valore o un'espressione qualsiasi che può dare come risultato VERO o FALSO
argomento2 Valore restituito se argomento1 risulta vero
argomento3 Valore restituito se argomento1 risulta falso
Valore restituito argomento1 o argomento2 a seconda

esempio =SE(A10>0;"Positivo";"Non positivo")

E(arg1;arg2;...;arg30)

arg1 è un valore o un'espressione qualsiasi che può dare come risultato VERO o FALSO
...
arg30 è un valore o un'espressione qualsiasi che può dare come risultato VERO o FALSO
Valore restituito VERO se tutte le condizioni arg1 ... arg30 sono vere

esempio =E(A10>0;VERO;A1=A8)

O(arg1;arg2;...;arg30)

arg1 è un valore o un'espressione qualsiasi che può dare come risultato VERO o FALSO
...
arg30 è un valore o un'espressione qualsiasi che può dare come risultato VERO o FALSO
Valore restituito VERO se almeno una delle condizioni arg1 ... arg30 risulta vera

esempio =O(A10>0;VERO;A1=A8)

                                                                                                                            Buon Lavoro