Fondamenti di Informatica

Documenti analoghi
Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2017/18

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2017/18

Fondamenti di Informatica

Spazio Riservato alla Commissione. Seconda Prova Intracorso di Fondamenti di Informatica 15/06/2018

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Appello di Fondamenti di Informatica 12/09/2017

Fondamenti di Informatica

Traccia B. Spazio Riservato alla Commissione Esercizio 2 (10 punti)

Seconda Prova Intracorso di Fondamenti di Informatica e Programmazione 04/12/2017

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Traccia 2. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

Traccia 4. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

A.A. 2018/2019. Esercitazione 3 [Per Casa] Strutturazione del Codice Sorgente per la Risoluzione di Problemi mediante MATLAB

I Appello di Fondamenti di Informatica 03/01/2017

Traccia C. Spazio Riservato alla Commissione Esercizio 2 (10 punti)

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

Seconda Prova Intracorso di Fondamenti di Informatica e Programmazione 04/12/2017

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Esercitazioni con GNU Octave

Fondamenti di Informatica A.A. 2016/17

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Fondamenti di Informatica

15 Riepilogo di esercizi in MATLAB

Fondamenti di Informatica

Introduzione al MATLAB c Parte 3 Script e function

13 Esercizi di Riepilogo

Matlab: Script e Funzioni

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

12 Function Handles e Ricorsione in MATLAB

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

ESERCIZIO 1. Informatica B - Esercitazione 12

1. Calcolo dell indice di condizionamento di una matrice

Laboratorio n 6 del Ing. Dario Cogliati

Fondamenti di Informatica

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Corso Matlab : Terza lezione (Esercitazione, 17/05/13) Samuela Persia, Ing. PhD.

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 5. !esercizi tratti da temi d esame

14 Function Handles in MATLAB

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

A.A. 2018/2019 FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Fondamenti di Informatica T-1 Modulo 2

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

Fondamenti di Programmazione

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Esercitazione 00 Introduzione a Matlab

Informatica B

MATLAB Alcune funzioni utili: fprintf, length, size

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Fondamenti di Informatica T-1

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 8 Febbraio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 25 Gennaio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Informatica B

Informatica B

Programmare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo

Laboratorio di Matlab

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi

Comunicazioni. Salvo Daniele Valente Dipartimento di Elettronica e Informazione

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Fondamenti di Informatica 2

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Transcript:

Fondamenti di nformatica Strutture Selettive, terative, Gestione File e Grafici in MATLAB: Esercitazione 6 Prof. Arcangelo Castiglione A.A. 2016/17

ncasso Orario 8 10 5 n questa esercitazione verranno utilizzate una matrice ed un array riga Lamatrice rappresenta il prospetto giornaliero di un autonoleggio L elemento (riga, colonna) assume val 1 se l auto specificata dalla riga è noleggiata all ora specificata dalla colonna, val 0 altrimenti Esempio: (2, 7) à ha val 0 ed indica che l Auto 2 (riga 2) è libera (non noleggiata) all ora 7 (colonna 7) Esempio: (3, 2) à ha val 1 ed indica che l Auto 3 (riga 3) è stata noleggiata all ora 2 (colonna 2) L elemento (indice) rappresenta l incasso orario per il noleggio dell auto indicata in colonna Esempio: (2) à indica che l Auto 2 (colonna 2) produce un incasso orario pari ad 8 euro Sia l array che la matrice contengono esclusivamente dati numerici (evidenziati in arancio nell esempio) OTA: egli esercizi possono essere utilizzate funzioni viste a lezione (negli esempi), funzioni realizzate negli esercizi precedenti e/o funzioni built-in di MATLAB

ncasso Orario 8 10 5 Esercizio 1 Scrivere una funzione chiamata _noleggio, che pra come argomenti di input: la matrice (noleggio) ed un numero intero indice_auto, e restituisca come argomento di output il totale delle in cui l auto, avente indice indice_auto, è stata noleggiata Esempio: _noleggio(, 1)à restituisce 5 Possibile Soluzione function [ totale_ ] = _noleggio(, indice_auto) totale_ = sum((indice_auto, :));

ncasso Orario 8 10 5 Esercizio 2 Scrivere una funzione chiamata _vuote, che pra come argomenti di input la matrice (noleggio), e restituisca come argomento di output il numero di in cui tutte le auto sono libere Esempio: _vuote()à restituisce 1 OSSERVAZO: l val 1 si riferisce all ora con indice 5 (unica ora in cui tutte le auto sono libere) Possibile Soluzione1/4 function [ num vuote ] = _vuote() [num_auto, num_] = size(); num vuote = 0; for indice_ora = 1:num_ if ~(1, indice_ora) && ~(2, indice_ora) && ~(3, indice_ora) num vuote = num vuote + 1;

ncasso Orario 8 10 5 Esercizio 2 Scrivere una funzione chiamata _vuote, che pra come argomenti di input la matrice (noleggio), e restituisca come argomento di output il numero di in cui tutte le auto sono libere Esempio: _vuote()à restituisce 1 OSSERVAZO: l val 1 si riferisce all ora con indice 5 (unica ora in cui tutte le auto sono libere) Possibile Soluzione2/4 function [ num vuote ] = _vuote() [num_auto, num_] = size(); num vuote = 0; for indice_ora = 1:num_ somma_ora_noleggio = 0; for indice_auto = 1:num_auto somma_ora_noleggio = somma_ora_noleggio + (indice_auto, indice_ora); if somma_ora_noleggio == 0 num vuote = num vuote + 1;

ncasso Orario 8 10 5 Esercizio 2 Scrivere una funzione chiamata _vuote, che pra come argomenti di input la matrice (noleggio), e restituisca come argomento di output il numero di in cui tutte le auto sono libere Esempio: _vuote()à restituisce 1 OSSERVAZO: l val 1 si riferisce all ora con indice 5 (unica ora in cui tutte le auto sono libere) Possibile Soluzione3/4 function [ num vuote ] = _vuote() [num_auto, num_] = size(); num vuote = 0; for indice_ora = 1:num_ if sum((:, indice_ora)) == 0 num vuote = num vuote + 1;

ncasso Orario 8 10 5 Esercizio 2 Scrivere una funzione chiamata _vuote, che pra come argomenti di input la matrice (noleggio), e restituisca come argomento di output il numero di in cui tutte le auto sono libere Esempio: _vuote()à restituisce 1 OSSERVAZO: l val 1 si riferisce all ora con indice 5 (unica ora in cui tutte le auto sono libere) Possibile Soluzione4/4 function [ num vuote ] = _vuote() [num_auto, num_] = size(); array_riga_booleano = ones(1, num_); for indice_auto = 1:num_auto array_riga_booleano = array_riga_booleano & ~(indice_auto, :); num vuote = sum(array_riga_booleano);

ncasso Orario 8 10 5 Esercizio 3 Scrivere una funzione chiamata incassi_totali, che pra come argomenti di input: la matrice (noleggio) e l array (incassi), e restituisca come argomento di output l ammontare degli incassi totali giornalieri Esempio: incassi_totali(, )à restituisce 90 Possibile Soluzione1/3 function [ totale_incassi ] = incassi_totali(, ) totale_incassi = sum( * ); Possibile Soluzione2/3 function [ totale_incassi ] = incassi_totali(, ) [num_auto, num_] = size(); totale_incassi = 0; for indice_ora = 1:num_ totale_incassi = totale_incassi + sum((:, indice_ora).* ');

ncasso Orario 8 10 5 Esercizio 3 Scrivere una funzione chiamata incassi_totali, che pra come argomenti di input: la matrice (noleggio) e l array (incassi), e restituisca come argomento di output l ammontare degli incassi totali giornalieri Esempio: incassi_totali(, )à restituisce 90 Possibile Soluzione3/3 function [ totale_incassi ] = incassi_totali(, ) [num_auto, num_] = size(); somma = 0; for indice_ora = 1:num_ for indice_auto = 1:num_auto somma = somma + ((indice_auto, indice_ora) * (indice_auto)); totale_incassi = somma;

ncasso Orario 8 10 5 Esercizio 4 Scrivere una funzione chiamata incassi_non_conseguiti, che pra come argomenti di input: la matrice (noleggio) e l array (incassi), e restituisca come output gli incassi totali giornalieri non conseguiti. Si supponga che gli incassi totali non conseguiti sono ottenuti come: incassi_potenziali incassi_totali, dove incassi_potenziali sono gli incassi giornalieri che si sarebbero ottenuti se tutte le auto fossero state noleggiate durante tutte le Esempio: incassi_non_conseguiti(, )à restituisce 94 Possibile Soluzione1/3 function [ totale_inc_non_conseguiti ] = incassi_non_conseguiti(, ) totale_inc_non_conseguiti = incassi_totali(~, );

ncasso Orario 8 10 5 Esercizio 4 Scrivere una funzione chiamata incassi_non_conseguiti, che pra come argomenti di input: la matrice (noleggio) e l array (incassi), e restituisca come output gli incassi totali giornalieri non conseguiti. Si supponga che gli incassi totali non conseguiti sono ottenuti come: incassi_potenziali incassi_totali, dove incassi_potenziali sono gli incassi giornalieri che si sarebbero ottenuti se tutte le auto fossero state noleggiate durante tutte le Esempio: incassi_non_conseguiti(, )à restituisce 94 Possibile Soluzione2/3 function [ totale_inc_non_conseguiti ] = incassi_non_conseguiti(, ) [num_auto, num_] = size(); incassi_potenziali = 0; for indice_auto = 1:num_auto incassi_potenziali = incassi_potenziali + (num_ * (indice_auto)); totale_inc_non_conseguiti = incassi_potenziali - incassi_totali(, );

ncasso Orario 8 10 5 Esercizio 4 Scrivere una funzione chiamata incassi_non_conseguiti, che pra come argomenti di input: la matrice (noleggio) e l array (incassi), e restituisca come output gli incassi totali giornalieri non conseguiti. Si supponga che gli incassi totali non conseguiti sono ottenuti come: incassi_potenziali incassi_totali, dove incassi_potenziali sono gli incassi giornalieri che si sarebbero ottenuti se tutte le auto fossero state noleggiate durante tutte le Esempio: incassi_non_conseguiti(, )à restituisce 94 Possibile Soluzione3/3 function [ totale_inc_non_conseguiti ] = incassi_non_conseguiti(, ) [num_auto, num_] = size(); incassi_potenziali = 0; for indice_auto = 1:num_auto incassi_potenziali = incassi_potenziali + (num_ * (indice_auto)); incassi_totali_giornalieri = 0; for indice_auto = 1:num_auto incassi_totali_giornalieri = incassi_totali_giornalieri + (sum((indice_auto, :)) * (indice_auto)); totale_inc_non_conseguiti = incassi_potenziali - incassi_totali_giornalieri;

ncasso Orario 8 10 5 Esercizio 5 Scrivere un M-File Script chiamato noleggio_auto_script.m che effettui le seguenti operazioni 1. mporti la matrice dal file noleggio.txt 2. mporti la matrice dal file incassi.txt 3. nvochi la funzione dell Esercizio 4 (chiamata incassi_non_conseguiti) con gli argomenti di input: e, ed infine mostri a video il risultato della funzione stessa OTA: file noleggio.txt e incassi.txt contengono solo dati numerici. È utilizzato il separat virgola (,) per separare le colonne (suggerimento: utilizzare la funzione importdata). Si assuma che i file siano memorizzati all interno della Current Directory Possibile Soluzione = importdata('noleggio.txt'); = importdata('incassi.txt'); incassi_non_conseguiti(, ) Contenuto del file noleggio_auto_script.m

ncasso Orario 8 10 5 Esercizio 6 Scrivere una funzione chiamata grafico_noleggio, che pra come argomenti di input: la matrice (noleggio), e mostri un grafico con le seguenti proprietà: Sull asse X, riporti gli indici di tutte le Sull asse Y, per ogni punto, riporti il numero di auto noleggiate nell ora riportata sull asse X Titolo: Grafico oleggio Etichetta Asse X: Ore Etichetta Asse Y: Auto oleggiate noltre, restituisca un array contenente i valori assegnati all asse Y (Esempio: Array riga o colonna [ 2 2 2 1 0 2 2 1 ]) Possibile Soluzione function [ auto_noleggiate ] = grafico_noleggio() [num_auto, num_] = size(); x = 1:num_; y = sum(); plot(x, y); title('grafico oleggio'); xlabel('ore'); ylabel('auto oleggiate'); auto_noleggiate = y;