DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio –...

20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Lab 3: 31 Marzo 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli – [email protected] Ver. aggiornata al 31 Marzo 2014

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 3: 31 Marzo 2014Lab 3: 31 Marzo 2014

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

Ver. aggiornata al 31 Marzo 2014

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ObiettiviObiettivi

• Esercitarsi sui costrutti visti a lezione Costrutti iterativi Array e Stringhe

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es 0: La calcolatrice con lo switch

• Es1: max, min• Es2: DNA• Es3: Ordina caratteri• Es4: Calcolo media di un vettore

• Es5: Ricerca sequenza• Es6: Conta occorrenze

3

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switchLo switch

4

switch ( expression ){ case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3 case ...

}

• Lo switch ci permette una alternativa al come selezionare la prossima istruzione da eseguire

• Lo switch valuta una espressione, quindi cerca di confrontare un valore con diversi possibili cases

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switchLo switch

• Ciascun case contiene un valore (value) e una lista di istruzioni (statement)

• Il flusso di controllo si traferisce attraverso tutte le istruzioni, partendo dal primo case che “corrisponde”

5

switch ( expression ){ case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3 case ...

}

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice con lo La calcolatrice con lo switchswitch

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice con lo switch: La calcolatrice con lo switch: zoomzoom

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

PiccoloPiccolo problema… problema…

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Perche’???Perche’???

9

Flusso

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switch ed il breakLo switch ed il break

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ZoomZoom

11

Flusso

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switch: defaultLo switch: default

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es 0: La calcolatrice con lo switch

• Es1: max, min• Es2: DNA• Es3: Ordina caratteri• Es4: Calcolo media di un vettore

• Es5: Ricerca sequenza• Es6: Conta occorrenze

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 1: max, minExe 1: max, min

• Si scriva un programma (no funzioni) che, ricevuti e salvati in un array N numeri interi positivi trovi: Il numero massimo e minimo nell’array Per ciascuno dei due numeri, stampi a video la posizione nell’array

Esempio: a[]={3,4,1,56,23,28,17}Max: 56 in posizione: 3min: 1 in posizione: 2

14

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 2: DNAExe 2: DNA

• Si scriva un programma in C che, data una stringa inserita dall’utente di dimensione n, rappresentante una sequenza di DNA, dica quante A, T, C e G sono presenti nella sequenza

• Si ricorda che: Il DNA può essere definito, in maniera semplificata, come una doppia catena polinucleotidica (A,T,C,G)

Si deve quindi verificare che i caratteri inseriti siano solo A, T, C e G

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 3: Ordina caratteriExe 3: Ordina caratteri

• Si scriva un programma (no funzioni) che ricevuti e salvati in un array N caratteri, compresi tra ‘a’ e ‘z’, ordina tali elementi in ordine decrescente.

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 4: Calcolo media di una Exe 4: Calcolo media di una serieserie

• Si scriva un programma che, ricevuto in ingresso un vettore di lunghezza arbitraria N, calcoli la media dei suoi valori. Si ricorda che, dato un vettore v di lunghezza N, la media dei suoi valori è definita come:

• Esempio: v = [1 2 3 4]:

• La media è 2.5

N

iivN

v1

_ 1

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 5: Cerca sequenzaExe 5: Cerca sequenza

• Si scriva un programma in C (NO funzioni) che, dati due array di interi, a1 e a2, rispettivamente di dimensione n e m, con n > m, dica se l’array di a2 è contenuto in a1. Gli array sono popolati dall’utente a2 deve comparire in a1 non solo con gli stessi elementi, ma deve essere perfettamente contenuto (valori, sequenza, etc.)

• Esempio: a1 = [1 2 3 4]; a2 = [2 3]: a2 è contenuto in a1 a1 = [1 2 3 4]; a2 = [3 2}: a2 NON è contenuto in a1

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 6: Conta occorrenzeExe 6: Conta occorrenze

• Dato l’esercizio 5, si scriva un programma in C (NON si devono usare funzioni) che, dati a1 e a2, dice quante volte a2 è contenuto in a1. Non si ammettono sovrapposizioni in a1

• Esempio: a1 = [2 2 2 2]; a2 = [2 2]: a2 è contenuto 2 volte in a1

a1 = [2 2 2 4]; a2 = [2 2}: a2 è contenuto 1 volta in a1

19

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

• BUON LAVORO!

20