DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli –...

12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Lab 4: 15 Aprile 2013 Gianluca Durelli – [email protected] Marco D. Santambrogio – [email protected] Ver. aggiornata al 14 Aprile 2013

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 4: 15 Aprile 2013Lab 4: 15 Aprile 2013

Gianluca Durelli – [email protected] D. Santambrogio – [email protected]

Ver. aggiornata al 14 Aprile 2013

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ArgomentiArgomenti

• Argomenti di questo laboratorio: Funzioni Passaggio parametri per

valore/indirizzo Strutture dati

• Obiettivo: Risolvere completamente un esercizio Cercare di impostarne un secondo

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Cifrario a scorrimento• Calcoli su triangolo• Libreria:

Creazione catalogo libri Ricerca libro Ordinamento oggetti Acquisto libro

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Esercizio 1 - Cifrario a scorrimentoEsercizio 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 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 ROT13 che utilizza uno spostamento di 13 caratteri.

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Esercizio 1 - Cifrario a scorrimentoEsercizio 1 - Cifrario a scorrimento

• Si scriva un programma che, ricevuta in ingresso una stringa di testo, prima la cifri usando ROT13 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 passato per copia lo cifrino o decifrino secondo lo schema ROT13.

V2: Passaggio per indirizzo• Si risolva l’esercizio definendo le funzioni crypt e decrypt

che, ricevuto in ingresso un carattere passato per copia lo cifrino o decifrino secondo lo schema ROT13.

Cosa succede se usate la funzione crypt anche per decifrare il testo? Perchè?

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Esercizio 2 - Calcoli su Esercizio 2 - Calcoli su triangolotriangolo• Si scriva un programma che chieda all’utente di inserire 3

punti del piano che identificano i vertici di un triangolo e calcoli perimetro ed area del triangolo stesso. Es.: A(0, 1) - B(1, 4) – C(2, 2)

• Perimetro: 7.634414• Area: 2.5

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)• Triangolo (definito dai suoi tre vertici e gli attributi perimetro ed area)

V1: Si usi una funzione calcolaTriangolo che riceva in ingresso una struttura di tipo triangolo passata per copia e la aggiorni con perimetro ed area.

V2: Si usi una funzione calcolaTriangolo che riceva in ingresso una struttura di tipo triangolo passata per indirizzo e la aggiorni con perimetro ed area.

Si risolva il problema usando diverse funzioni come ad esempio:• lunghezzaSegmento• calcolaPerimetro• calcolaArea• coeffAngolareRetta• puntoIntersezioneRette

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

LibreriaLibreria

• Si definiscano le strutture ed i tipi di dato necessari a modellizzare un catalogo di libri per una libreria.

• In particolare si definisca il tipo di dato libro identificato da: Codice numerico Titolo Costo Numero di copie disponibili

• Sfruttando i tipi di dato qui definiti si affrontino i problemi successivi

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Esercizio 3 - Libreria: Creazione Esercizio 3 - Libreria: Creazione catalogocatalogo

• Si scriva un programma che permetta di creare il catalogo della libreria.

• Il programma chiede all’utente quanti libri si vogliono inserire e poi procede con la richiesta dei dati sul singolo libro

• Vincolo: Si risolva l’esercizio usando una funzione

aggiungiAlCatalogo che ricevuto in ingresso un libro lo aggiunga nella prima posizione disponibile del catalogo.

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Esercizio 4 - Libreria: Ricerca Esercizio 4 - Libreria: Ricerca librolibro

• Si scriva un programma che permetta la ricerca di un libro nel catalogo dei libri disponibili.

• Il programma chiede all’utente di inserire un titolo, oppure un codice per effettuare la ricerca del libro.

• Se il libro desiderato viene trovato nel catalogo si stampino a video le sue proprietà (codice, titolo, costo, copie disponibili).

• Vincolo: Si utilizzino due funzioni cercaTitolo e

cercaCodice per risolvere l’esercizio. Le funzioni devono ritornare un oggetto di tipo libro.

9

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Esercizio 5 - Libreria: Ordinamento Esercizio 5 - Libreria: Ordinamento OggettiOggetti

• Si scriva un programma che permetta di ordinare il catalogo secondo una proprietà scelta dall’utente (codice, titolo, costo oppure copie disponibili).

• Si ordini il catalogo e se ne effettui la stampa.

• Vincolo: Si utilizzino quattro funzioni differenti per

ordinare il catalogo secondo le diverse proprietà.

• Suggerimento: Si usi una funzione scambia per scambiare le

posizioni di due libri nel catalogo.

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Esercizio 6 - Libreria: Acquisto Esercizio 6 - Libreria: Acquisto librolibro

• Si scriva un programma che permetta di effettuare l’acquisto di un libro.

• Il programma chiede all’utente il libro che desidera comprare (titolo oppure codice) ed il numero di copie desiderate.

• Se è possibile effettuare la vendita si presenti all’utente il totale da pagare, altrimenti si comunichi il motivo del mancato acquisto: Libro non presente nell’archivio Copie desiderate non disponibili

• Vincolo: Si utilizzi la funzione acquista che ricevuto in

ingresso un libro ed il numero di copie desiderate ritorni il risultato dell’acquisto.

11

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – durelli@elet.polimi.it Marco D. Santambrogio – marco.santambrogio@polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

• BUON LAVORO!

12