DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 3 Aprile 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli – [email protected] Ver. aggiornata al 31 Marzo 2014 Obiettivi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esercitarsi sui costrutti visti a lezione Costrutti iterativi Array e Stringhe 2 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • 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 Lo switch DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 switch ( expression ){ case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3 case ... } 4 Lo switch DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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” switch ( expression ){ case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3 case ... } 5 La calcolatrice con lo switch DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 La calcolatrice con lo switch: zoom DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 7 Piccolo problema… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 8 Perche’??? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Flusso 9 Lo switch ed il break DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10 Zoom DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Flusso 11 Lo switch: default DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • 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 Exe 1: Inserimento dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 Exe 2: Aggiorna DNA DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 Exe 3: Numeri primi in un intervallo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 Exe 4: Coefficiente binomiale DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 Exe 5: Scomposizione in fattori primi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 Exe 6: Numeri amicabili DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 220. 19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • BUON LAVORO! 20