DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli – Ver. aggiornata al 31 Marzo 2014
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Esercitarsi sui costrutti visti a lezione Costrutti iterativi Array e Stringhe 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsercizi 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 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 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 switch 6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice con lo switch: zoom 7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Piccolo problema… 8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Perche’??? 9 Flusso
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lo switch ed il break 10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEZoom 11 Flusso
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lo switch: default 12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsercizi 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, 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: 3 min: 1 in posizione: 2 14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 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 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 serie 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 = [ ]: La media è
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 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 = [ ]; a2 = [2 3] : a2 è contenuto in a1 a1 = [ ]; a2 = [3 2} : a2 NON è contenuto in a1 18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 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 = [ ]; a2 = [2 2] : a2 è contenuto 2 volte in a1 a1 = [ ]; a2 = [2 2} : a2 è contenuto 1 volta in a1 19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE BUON LAVORO! 20