DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA
Lab 3: 27 Aprile 2015
Marco D. Santambrogio – [email protected]
Gianluca Durelli – [email protected]
Ver. aggiornata al 26 Aprile 2015
Obiettivi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Esercitarsi sui costrutti visti a lezione
 Tutto il C visto fino a qui
 In particolare: Funzioni, Array, Matrici,
Ricorsione
2
Esercizi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
•
•
•
•
•
•
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
Exe 0: Prodotto Matrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Scrivere un programma che ricevute in
ingesso due matrici ne calcoli il loro
prodotto, se possibile.
4
Exe 0: Prodotto Matrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
5
Exe 0: Prodotto Matrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6
Exe 0: Prodotto Matrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
7
Exe 0: Prodotto Matrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
8
Exe 1: Shift Array
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
Scrivere una funzione che preso in ingresso un array ed un numero
intero N lo "shifti" in avanti di N posizioni.
•
L'operatore "shift”:



•
Dato



•
•
•
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.
N=4
Array = 123456
Soluzione = 345612
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
Exe 2: Apertura Negozio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
•
•
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
Exe 3: Media, Varianza Array
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Scrivere un programma che:
•riceva in ingresso un array
•ne calcoli la media
•e la deviazione standard
1 N
V = åVi
N i=1
1 N
2
s=
(V
-V
)
å
i
N -1 i=1
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
Exe 4: Media, Varianza per Riga
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Exe 5: Massimo, Minimo Array
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Exe 6: Numero di Eulero
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
Si scriva un programma che approssimi il numero di Eulero (e) in
maniera ricorsiva.
P
1
e=å
N =0 N!
•
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! + ... + 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
Scarica

V0 - PPT