DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 18 Aprile 2013 Gianluca Durelli – [email protected] Marco D. Santambrogio – [email protected] Ver. aggiornata al 17 Aprile 2013 Argomenti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Argomenti di questo laboratorio: Funzioni Passaggio parametri per valore/indirizzo Strutture dati • Obiettivo: Risolvere completamente 1 esercizio Impostarne almeno un altro 2 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Cifrario a scorrimento • Calcoli su rettangolo • Tavola periodica degli elementi: Creazione tavola Ricerca elemento Ordinamento elementi Crea molecola 3 Esercizio 1 - Cifrario a scorrimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • I cifrari a scorrimento sono metodi di cifratura che agiscono su un testo in cui ogni lettera del testo in chiaro viene sostituita, nel testo cifrato, con la lettera che si trova un certo numero di posizioni dopo nell’alfabeto. • La sostituzione avviene lettera per lettera scorrendo il testo dall’inizio alla fine. • Un famoso cifrario a scorrimento è il cifrario di Cesare, usato da Cesare per cifrare le comunicazioni militari, che utilizzava uno spostamento di 3 caratteri. Testo in chiaro: abcdefghiklmnopqrstux Testo cifrato: DEFGHIKLMNOPQRSTVXABC • Un altro cifrario famoso è il ROT N che utilizza uno spostamento di N caratteri. 4 Esercizio 1 - Cifrario a scorrimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che, ricevuta in ingresso una stringa di testo ed il numero N, prima la cifri usando ROT N e poi decifri la stringa così ottenuta per riavere la stringa iniziale. V1: Passaggio per copia • Si risolva l’esercizio definendo le funzioni crypt e decrypt che, ricevuto in ingresso un carattere alla volta passato per copia ed il valore N, lo cifrino o decifrino secondo lo schema ROT N. V2: Passaggio per indirizzo • Si risolva l’esercizio definendo le funzioni crypt e decrypt che, ricevuto in ingresso un carattere alla volta passato per indirizzo ed il valore N, lo cifrino o decifrino secondo lo schema ROT13. 5 Esercizio 2 - Calcoli su triangolo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che chieda all’utente di inserire 4 punti (in ordine) del piano che identificano i vertici di un rettangolo e calcoli perimetro ed area del rettangolo stesso. Es.: A(0, 1) - B(3, 1) – C(3, 2) – D(0, 2) • • Si definiscano ed utilizzino tutte le strutture dati che si ritengono opportune, in particolare si definisca: • • • Si stampino le informazioni calcolate all’interno del main V2: Si usi una funzione calcolaRettangolo che riceva in ingresso una struttura di tipo rettangolo passata per indirizzo e la aggiorni con perimetro ed area. • Punto Retta (definita da un punto ed il suo coefficiente angolare) Rettangolo (definito dai suoi quattro vertici e gli attributi perimetro ed area) V1: Si usi una funzione calcolaRettangolo che riceva in ingresso una struttura di tipo rettangolo passata per copia e la aggiorni con perimetro ed area. • Perimetro: 8 Area: 3 Si stampino le informazioni calcolate all’interno del main Si risolva il problema usando diverse funzioni come ad esempio: • • • • lunghezzaSegmento calcolaPerimetro calcolaArea coeffAngolareRetta 6 Tavola periodica degli elementi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si definiscano le strutture ed i tipi di dato necessari a rappresentare un sottoinsieme della tavola periodica degli elementi. • In particolare si definisca il tipo di dato elemento identificato da: Numero atomico Nome Simbolo Peso atomico • Sfruttando i tipi di dato qui definiti si affrontino i problemi successivi 7 Esercizio 3 – Creazione tavola periodica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che permetta di creare la tavola periodica. • Il programma chiede all’utente quanti elementi si vogliono inserire e poi procede con la richiesta dei dati sul singolo elemento • Vincolo: Si risolva l’esercizio usando una funzione aggiungiAllaTavola che ricevuto in ingresso un elemento lo aggiunga nella prima posizione disponibile della tavola. 8 Esercizio 4 – Ricerca elemento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che permetta la ricerca di un elemento nella tavola. • Il programma chiede all’utente di inserire un nome, oppure un simbolo per effettuare la ricerca dell’elemento. • Se l’elemento desiderato viene trovato si stampino a video le sue proprietà. • Vincolo: Si utilizzino due funzioni cercaNome e cercaSimbolo per risolvere l’esercizio. Le funzioni devono ricevere in ingresso la stringa da cercare e ritornare un oggetto di tipo elemento. 9 Esercizio 5 - Ordinamento Elementi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che permetta di ordinare la tavola secondo una proprietà scelta dall’utente (Nome, simbolo, numero e peso atomico). • Si ordini il catalogo e se ne effettui la stampa. • Vincolo: Si utilizzino quattro funzioni differenti per ordinare la tavola secondo le diverse proprietà. • Suggerimento: Si usi una funzione scambia per scambiare le posizioni di due oggetti nella tavola. 10 Esercizio 6 – Crea molecola DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • Si scriva un programma che permetta di effettuare la creazione di una molecola composta da due elementi della tavola. Il programma chiede all’utente gli elementi con cui vuole comporre la molecola (simbolo, nome) ed il nome della molecola. La molecola viene composta e vengono stampate a video le sue informazioni. Vincolo: • Si utilizzi la funzione assembla che ricevuto in ingresso un vettore di elementi, il loro numero ed il nome della molecola, li componga e restituisca il nuovo elemento. Es: Na + Cl = NaCl – Cloruro di Sodio Il programma crea un elemento: • • • • Nome: Cloruro di Sodio Simbolo NaCl Peso atomico: somma dei pesi atomici Numero atomico: somma dei numeri atomici 11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • BUON LAVORO! 12