11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Co<strong>di</strong>ce Morse<br />

E<strong>di</strong>tor esadecimale<br />

Appen<strong>di</strong>ce M. Esercizi<br />

Si converta un file <strong>di</strong> testo in co<strong>di</strong>ce Morse. Ogni carattere del testo verrà rappresentato dal<br />

corrispondente carattere dell’alfabeto Morse, formato da punti e linee (si usi il trattino <strong>di</strong><br />

sottolineatura), separato l’uno dall’altro da spazi. Per esempio, “script” ===> “... _._. ._. .. .__. _”.<br />

Si esegua una visualizzazione in esadecimale <strong>di</strong> un file binario specificato come argomento.<br />

L’output dovrà avere i campi ben or<strong>di</strong>nati in forma tabellare, con il primo campo che in<strong>di</strong>ca<br />

l’in<strong>di</strong>rizzo <strong>di</strong> memoria, ciascuno dei successivi otto campi un numero esadecimale <strong>di</strong> 4 byte e<br />

l’ultimo campo l’equivalente ASCII dei precedenti otto campi.<br />

Simulare uno scorrimento <strong>di</strong> registro<br />

Determinante<br />

Parole nascoste<br />

Anagrammare<br />

“Parole concatenate”<br />

Ispirandosi all’Esempio 26-14, si scriva uno script che simuli uno shift <strong>di</strong> registro a 64 bit, in forma<br />

<strong>di</strong> array. Si implementino le funzioni per il caricamento del registro, per lo scorrimento a sinistra,<br />

per lo scorrimento a destra e la rotazione. Infine, si scriva una funzione che interpreti il contenuto<br />

del registro come caratteri ASCII <strong>di</strong> otto per otto bit.<br />

Si risolva una determinante 4 x 4.<br />

Si scriva un generatore <strong>di</strong> puzzle <strong>di</strong> “parole”, vale a <strong>di</strong>re uno script che celi 10 parole fornite come<br />

input in una matrice 10 x 10 <strong>di</strong> lettere casuali. Le parole possono essere inserite orizzontalmente,<br />

verticalmente o <strong>di</strong>agonalmente.<br />

Facoltativo: si scriva uno script che risolva tali puzzle <strong>di</strong> parole. Per non rendere la soluzione troppo<br />

<strong>di</strong>fficile, si ricerchino solo le parole orizzontali e verticali. (Suggerimento: ogni riga e colonna va<br />

considerata come un’unica stringa in cui trovare le sottostringhe.)<br />

Si trovino gli anagrammi <strong>di</strong> un input <strong>di</strong> quattro lettere. Ad esempio, gli anagrammi <strong>di</strong> word sono: do<br />

or rod row word. Come elenco <strong>di</strong> riferimento si può utilizzare /usr/share/<strong>di</strong>ct/linux.words.<br />

Una “catena <strong>di</strong> parole” è formata da una sequenza <strong>di</strong> parole in cui ognuna <strong>di</strong>fferisce da quella che la<br />

precede per una sola lettera.<br />

Per esempio, una “catena” che va da mark a vase:<br />

mark --> park --> part --> past --> vast --> vase<br />

818

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!