DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 3: 27 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli – Ver. aggiornata al 26 Aprile 2015
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Esercitarsi sui costrutti visti a lezione Tutto il C visto fino a qui In particolare: Funzioni, Array, Matrici, Ricorsione 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsercizi Es0: Prodotto Matrici Es1: Shift Array Es2: Apertura Negozio Es3: Media, Varianza array Es4: Media, Varianza per Riga Es5: Minimo, Massimo array Es6: Numero di Eulero 3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Prodotto Matrici Scrivere un programma che ricevute in ingesso due matrici ne calcoli il loro prodotto, se possibile. 4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Prodotto Matrici 5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Prodotto Matrici 6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Prodotto Matrici 7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Prodotto Matrici 8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 1: Shift Array Scrivere una funzione che preso in ingresso un array ed un numero intero N lo "shifti" in avanti di N posizioni. L'operatore "shift”: prende l'elemento in posizione i lo mette al posto dell'elemento in posizione i+N. Se i+N e' maggiore della lunghezza dell'array si ricomincia a contare dall'inizio. Dato N = 4 Array = Soluzione = La funzione DEVE deve prendere come parametri solo un array ed il numero. L'utente deve poter scegliere il numero degli elementi nell'array. Il riempimento dell'array (scanf) non puo' essere fatto nella funzione che fa lo shift. 9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 2: Apertura Negozio Scrivere un programma per la gestione degli orari di apertura di un negozio. Il programma deve poter permettere di inserire l'elenco degli orari in cui il negozio e' aperto. L'orario di apertura e' definito da: Giorno Ora apertura (ore, minuti) Ora chiusura (ore, minuti) Il programma permette inoltre la stampa dell'elenco degli orari inseriti. Esistera' quindi una funzione che una volta invocata procedera' alla stampa a v ideo di questi dati. Infine il programma deve prevedere una funzione che presi in ingresso un giorno ed un'ora comunichi al chiamante se il negozio e' aperto in quell'ora o meno. 10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 3: Media, Varianza Array Scrivere un programma che: riceva in ingresso un array ne calcoli la media e la deviazione standard Suggerimento: usare due funzioni, una per il calcolo della media ed una per il calcolo della deviazione standard. Per il calcolo della radice quadrata usare la funzione float sqrt(float) Per usarla includere la libreria math.h e compilare nel seguente modo: gcc file.c –o exe -lm 11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 4: Media, Varianza per Riga Scrivere un programma che: Presa in ingresso una matrice calcoli due vettori contenenti le medie per ogni riga della matrice e le deviazioni standard per ogni riga della matrice. In altre parole il programma calcolera' il valore di due vettori mean ed std in cui: l'elemento in posizione i di mean conterra' la media della riga i della matrice l'elemento in posizione i di std conterra' la deviazione standard della riga i della matrice 12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 5: Massimo, Minimo Array Si scriva un programma che: Ricevuto in ingresso un array trovi il massimo ed il minimo dell'array. Scrivere una funzione per il calcolo del massimo ed una per il calcolo del minimo. Entrambe le funzioni DEVONO essere implementate usando la RICORSIONE. 13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 6: Numero di Eulero Si scriva un programma che approssimi il numero di Eulero (e) in maniera ricorsiva. Si calcoli l'approssimazione di e: Si lasci possibilita' all'utente di specificare il numero di passi P della serie. Esempio: P = 0 : e = 1/0! P = 1 : e = 1/0! + 1/1! P = 2 : e = 1/0! + 1/1! + 1/2! ... P = N : e = 1/0! + 1/1! /(N-1)! + 1/N! Si noti che indicato con e_N l'approssimazione del numero di eulero ad N passi questa e' ottenuta come 1/N! + e_(N-1) 14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE BUON LAVORO! 15