Fondamenti di Informatica rogrammazione in MATLAB Gestione File Grafici E s e rc i t a z i o n e 3 o s s i b i l i o l u z i o n i r o f. R a f f a e l e i z zo l a n t e A. A. 2 0 1 6 / 1 7
<<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 In questa esercitazione verranno utilizzati una matrice ed un array colonna L elemento (riga, colonna)rappresenta l importo che il cliente, specificato dalla riga, ha speso nel supermercato, specificato dalla colonna Esempio: (1, 2) indica che l importo speso dal Cliente 1 (riga 1), presso il upermercato 2 (colonna 2), ammonta a 79 L array colonna indica l importo necessario per guadagnare un punto, presso il supermercato specificato dalla riga Esempio: (2) indica che un punto viene guadagnato ogni di spesa effettuata presso il upermercato 2 (riga 2) Ad es., su 35 di spesa vengono guadagnati 2 punti opra è mostrato un esempio di e ia la matrice che l array colonna contengono esclusivamente dati numerici (evidenziati in arancio nell esempio) NOTA: Negli esercizi possono essere utilizzate funzioni viste a lezione (negli esempi), funzioni realizzate negli esercizi precedenti e/o funzioni built-indi MATLAB rogrammazione in MATLAB Gestione File Grafici: Esercitazione
Esercizio 1 <<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 crivere una funzione chiamata punti_cliente, che pra come argomenti di input: la matrice (supermercati), l array (punti_spesa) ed un numero intero indice_cliente, e restituisca come argomento di output i punti accumulati dal cliente avente come indice il valore di indice_cliente (in tutti i supermercati) N.B.: I punti sono erogati in forma non frazionaria. Ad esempio, se un certo supermercato eroga un punto ogni di spesa ed un cliente ha effettuato 28 di spesa, saranno erogati 2 punti per quel cliente (e non 2.33) Esempio: punti_cliente(,, 2) restituisce (5 + 6 + 4) ossibile oluzione function [ punti ] = punti_cliente(,, indice_cliente) punti = sum(floor((indice_cliente, :)./ ')); rogrammazione in MATLAB Gestione File Grafici: Esercitazione
Esercizio 2 <<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 crivere una funzione chiamata cliente_spesa_maggiore, che pra come input: la matrice (supermercati) e restituisca l indice del cliente che ha effettuato la spesa di importo massimo (in tutti i supermercati) Esempio: cliente_spesa_maggiore() restituisce 3 ossibile oluzione function [ indice_cliente ] = cliente_spesa_maggiore() [spesa_cliente, indice_cliente] = max(sum(, 2)); rogrammazione in MATLAB Gestione File Grafici: Esercitazione
Esercizio 3 <<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 crivere una funzione chiamata supermercato_punti, che pra come input: la matrice (supermercati) e l array (punti_spesa), e restituisca l indice del supermercato che ha erogato meno punti al totale dei clienti Esempio: supermercato_punti(, ) restituisce 2 ossibile oluzione function [ indice_supermercato ] = supermercato_punti(, ) [num_clienti, num_supermercati] = size(); for indice_supermercato = 1:num_supermercati somma_punti(indice_supermercato) = sum(floor((:, indice_supermercato) / (indice_supermercato))); [min_supermercato_punti, indice_supermercato] = min(somma_punti); rogrammazione in MATLAB Gestione File Grafici: Esercitazione
Esercizio 4 <<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 crivere una funzione chiamata grafico_supermercati, che pra come argomenti di input: la matrice (supermercati), e mostri un grafico con le seguenti proprietà ull asse X, riporti gli indici di tutti i supermercati ull asse Y, per ogni punto, riporti l ammontare totale della spesa (di tutti i clienti) effettuata presso il supermercato riportato sull asse X Titolo: Grafico upermercati Etichetta Asse X: upermercati Etichetta Asse Y: Ammontare pesa Inoltre, la funzione dovrà restituire un array contenente i valori assegnati all asse Y (Esempio: Array riga o colonna [ 568 203 0 ]) rogrammazione in MATLAB Gestione File Grafici: Esercitazione
Esercizio 4 <<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 ossibile oluzione function [ somma ] = grafico_supermercati() [num_clienti, num_supermercati] = size(); x = [1:1:num_supermercati]; y = sum(); plot(x, y); title('grafico upermercati'); xlabel('upermercati'); ylabel('ammontare pesa'); somma = y; rogrammazione in MATLAB Gestione File Grafici: Esercitazione
Esercizio 4 <<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 Esempio Esercizio 4 600 Grafico upermercati 550 500 Ammontare pesa 450 400 350 300 0 200 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 upermercati rogrammazione in MATLAB Gestione File Grafici: Esercitazione
Esercizio 5 <<supermercati.txt>> upermercato 1 pesa Cliente 1 pesa Cliente 2 pesa Cliente 3 upermercato 2 upermercato 3 upermercato 1 upermercato 2 upermercato 3 crivere un M-File cript chiamato supermercati_script.m che effettui le seguenti operazioni 1. Importi la matrice dal file supermercati.txt 2. Importi la matrice dal file punti_spesa.txt 3. Invochi la funzione dell Esercizio 3 (chiamata supermercato_punti) con gli argomenti di input: e, ed infine mostri a video il risultato della funzione stessa NOTA: I file supermercati.txt e punti_spesa.txt contengono solo dati numerici. È utilizzato il separatore virgola (,) per separare le colonne (suggerimento: utilizzare la funzione importdata). i assuma che i file siano memorizzati all interno della Current Directory ossibile oluzione (contenuto del file supermercati_script.m) = importdata('supermercati.txt'); = importdata('punti_spesa.txt'); supermercato_punti(, ) rogrammazione in MATLAB Gestione File Grafici: Esercitazione