DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 18 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio – Ver. aggiornata al 17 Aprile 2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEArgomenti Argomenti di questo laboratorio: Funzioni Passaggio parametri per valore/indirizzo Strutture dati Obiettivo: Risolvere completamente 1 esercizio Impostarne almeno un secondo 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsercizi Cifrario a scorrimento Calcoli su rettangolo Tavola periodica degli elementi: Creazione tavola Ricerca elemento Ordinamento elementi Crea molecola 3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 1 - Cifrario a scorrimento 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 nellalfabeto. La sostituzione avviene lettera per lettera scorrendo il testo dallinizio 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 1 - Cifrario a scorrimento 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 lesercizio 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 lesercizio 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 2 - Calcoli su triangolo Si scriva un programma che chieda allutente 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) Perimetro: 8 Area: 3 Si definiscano ed utilizzino tutte le strutture dati che si ritengono opportune, in particolare si definisca: 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. Si stampino le informazioni calcolate allinterno 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. Si stampino le informazioni calcolate allinterno del main Si risolva il problema usando diverse funzioni come ad esempio: lunghezzaSegmento calcolaPerimetro calcolaArea coeffAngolareRetta 6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tavola periodica degli elementi 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 3 – Creazione tavola periodica Si scriva un programma che permetta di creare la tavola periodica Il programma chiede allutente quanti elementi si vogliono inserire e poi procede con la richiesta dei dati sul singolo elemento Vincolo: Si risolva lesercizio usando una funzione aggiungiAllaTavola che ricevuto in ingresso un elemento lo aggiunga nella prima posizione disponibile della tavola. 8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 4 – Ricerca elemento Si scriva un programma che permetta la ricerca di un elemento nella tavola Il programma chiede allutente di inserire un nome, oppure un simbolo per effettuare la ricerca dellelemento Se lelemento desiderato viene trovato si stampino a video le sue proprietà Vincolo: Si utilizzino due funzioni cercaNome e cercaSimbolo per risolvere lesercizio. Le funzioni devono ricevere in ingresso la stringa da cercare e ritornare un oggetto di tipo elemento. 9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 5 - Ordinamento Elementi Si scriva un programma che permetta di ordinare la tavola secondo una proprietà scelta dallutente (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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio 6 – Crea molecola Si scriva un programma che permetta di effettuare la creazione di una molecola composta da due elementi della tavola Il programma chiede allutente 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