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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ObiettiviObiettivi
• Esercitarsi sui costrutti visti a lezione Costrutti iterativi Array e Stringhe
2
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
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
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 ...
}
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
La calcolatrice con lo La calcolatrice con lo switchswitch
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
La calcolatrice con lo switch: La calcolatrice con lo switch: zoomzoom
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
PiccoloPiccolo problema… problema…
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Perche’???Perche’???
9
Flusso
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lo switch ed il breakLo switch ed il break
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ZoomZoom
11
Flusso
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lo switch: defaultLo switch: default
12
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
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
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
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
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
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• BUON LAVORO!
20