DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 3 Aprile 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: Inserimento dati Es2: Aggiorna DNA Es3: Numeri primi in un intervallo Es4: Coefficiente binomiale Es5: Scomposizione in fattori primi Es6:Numeri amicabili 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: Inserimento dati Es2: Aggiorna DNA Es3: Numeri primi in un intervallo Es4: Coefficiente binomiale Es5: Scomposizione in fattori primi Es6:Numeri amicabili 13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 1: Inserimento dati Si scriva un programma (no funzioni) che controlla il corretto inserimento di dati in un array. L’array è composto solo da numeri interi pari e positivi Il numero di elementi inseriti può essere minore della dimensione massima dell’array 14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 2: Aggiorna DNA Si scriva un programma in C che, data una stringa inserita dall’utente di dimensione n, rappresentante una sequenza di DNA, sostituisca tute le lettere seguendo questa regola: A-T, T-C, C-G e G-A 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: Numeri primi in un intervallo Si scriva un programma che ricevuti in ingresso due numeri x e y (x<y), stampi tutti e soli i numeri primi compresi nell’intervallo. Esempio: x=1, y=5: Numeri primi: 2, 3, 5 16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 4: Coefficiente binomiale Il numero di scelte di k oggetti fra quelli che costituiscono un insieme di n elementi Quindi il numero dei sottoinsiemi di k elementi di un dato insieme di n oggetti, è dato dal cosiddetto coefficiente binomiale: 17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 5: Scomposizione in fattori primi Si scriva in C (si devono usare le funzioni) un programma che, dato un numero N intero positivo, dica quali sono i suoi divisori primi. Esempio N=6, Risposta: 2,3 N=15, Risposta: 3,5 18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 6: Numeri amicabili Si scriva in C un programma che, dati due numeri interi positivi, dica se sono amicabili In matematica, sono numeri amicabili o amici due numeri per cui la somma dei divisori di uno (escluso il numero stesso) è uguale all'altro e viceversa. Un esempio classico è dato dalla coppia 220 e 284. I due numeri sono amicabili in quanto 220 è divisibile per 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 e 110 e la loro somma risulta 284; 284 è divisibile per 1, 2, 4, 71, 142 che sommati tra loro restituiscono proprio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE BUON LAVORO! 20