Fondamenti di Informatica

Documenti analoghi
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 A.A. 2017/18

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

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

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

Fondamenti di Informatica

15 Riepilogo di esercizi in MATLAB

Mini-Corso di Informatica

CORSO DI LABORATORIO DI INFORMATICA

Introduzione al MATLAB c Parte 3 Script e function

Fondamenti di Informatica

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

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

Fondamenti di Informatica

10 Funzioni MATLAB. dove: output1, output2,.. sono gli output (opzionali), che, se dichiarati, devono essere inizializzati dalla funzione

Esercitazione 1 Conversione di base

10 Funzioni MATLAB. dove. output1, output2,.. sono gli output (opzionali), che, se dichiarati, devono essere inizializzati dalla funzione

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Informatica B

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

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

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

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Esercitazione 4. Comandi iterativi for, while, do-while

Fondamenti di Informatica T-1 Modulo 2

MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Fondamenti di Informatica

Laboratorio di Calcolo Numerico

Laboratorio di Python

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

n deve essere maggiore di 0, altrimenti il metodo restituisce null.

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

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Quadrato Magico. Fondamenti di Programmazione

Fondamenti di Informatica T-1 Modulo 2

Corso di Informatica di Base

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

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

STRUTTURE DI CONTROLLO DEL C++

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Laboratorio di Python

Fondamenti di Programmazione

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

Introduzione a Matlab. Renato Mainetti

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Formule e funzioni. Fondamenti di informatica. Formule e funzioni. Formule e funzioni - errori. Formule e funzioni - errori

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Esercitazione 1: Introduzione a MATLAB

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

Esercitazione. Esercizio 1 Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi)

Traccia. Soluzione. Scrivere uno script SCILAB che calcoli la somma di tutti i numeri divisibili per 3 o per 5 compresi fra 1 e 100

Transcript:

Fondamenti di Informatica Strutture Selettive, Iterative, Gestione File e Grafici in MATLAB: Esercizi (Carte) rof. Arcangelo Castiglione A.A. 2016/17

unteggio 5 3 2 4 7 3 3 2 1 9 NOTA: Negli esercizi possono essere utilizzate funzioni viste a lezione (negli esempi), funzioni realizzate negli esercizi precedenti e/o funzioni built-in di MATLAB In questa esercitazione verranno utilizzate una matrice M ed un array riga Lamatrice M rappresenta un mazzo (non necessariamente completo) dicarte da gioco L elemento M(indice_seme, indice_valore) varrà 1 se la carta con valore specificato da indice_valore, ed appartenente al seme specificato da indice_seme, risulterà presente nel mazzo, varrà 0 altrimenti Esempio: M(1, 7) à ha valore 0 e indica che la carta di valore 7 e seme 2 non è presente nel mazzo Esempio: M(4, 2) à ha valore 1 e indica che la carta di valore 2 e seme 4 è presente nel mazzo L elemento (indice) rappresenta il punteggio della carta (a prescindere dal seme) avente valore specificato da indice Esempio: (2) à indica che una carta con valore 2 (colonna 2), ottiene un punteggio pari a 3 punti Sia l array riga che la matrice contengono esclusivamente dati numerici (evidenziati in arancio nell esempio) rogrammazione in MATLAB Gestione File Grafici: Esercitazione

Esercizio 1 unteggio 5 3 2 4 7 3 3 2 1 9 Scrivere una funzione chiamata informazioni_mazzo, che pra come argomenti di input la matrice M (mazzo_carte) e l array riga (punteggio_carte), e restituisca due argomenti di output: il numero di carte contenute nel mazzo ed il punteggio totale relativo a tutte le carte contenute nel mazzo Esempio: [nc, pc] = informazioni_mazzo(m, ) à restituisce nc = 20 e pc = 84 OSSERVAZIONI Il valore 20 si riferisce al numero di carte all interno del mazzo Il valore 84 si riferisce alpunteggio totale relativo a tutte le carte contenute nel mazzo ossibile Soluzione1/2 function [ num_carte_mazzo, punteggio_carte ] = informazioni_mazzo(m, ) num_carte_mazzo = sum(sum(m)); punteggio_carte = sum( * M'); rogrammazione in MATLAB Gestione File Grafici: Esercitazione

Esercizio 1 unteggio 5 3 2 4 7 3 3 2 1 9 Scrivere una funzione chiamata informazioni_mazzo, che pra come argomenti di input la matrice M (mazzo_carte) e l array riga (punteggio_carte), e restituisca due argomenti di output: il numero di carte contenute nel mazzo ed il punteggio totale relativo a tutte le carte contenute nel mazzo Esempio: [nc, pc] = informazioni_mazzo(m, ) à restituisce nc = 20 e pc = 84 OSSERVAZIONI Il valore 20 si riferisce al numero di carte all interno del mazzo Il valore 84 si riferisce alpunteggio totale relativo a tutte le carte contenute nel mazzo ossibile Soluzione2/2 function [ num_carte_mazzo, punteggio_carte ] = informazioni_mazzo(m, ) num_carte_mazzo = sum(sum(m)); [num_semi, num_] = size(m); somma = 0; for indice_seme = 1:num_semi somma = somma + sum(m(indice_seme, :).* ); punteggio_carte = somma; rogrammazione in MATLAB Gestione File Grafici: Esercitazione

Esercizio 2 unteggio 5 3 2 4 7 3 3 2 1 9 Scrivere una funzione chiamata seme_massimo, che pra come argomenti di input: la matrice M (mazzo_carte) e l array riga (punteggio_carte), e restituisca due argomenti di output: l indice del seme di cui sono presenti più carte all internodel mazzo, e l indice del seme le cui carte totalizzano il punteggio massimo all internodel mazzo Esempio: [i1, i2] = seme_massimo(m, )à restituisce i1 = 2 e i2 = 2 OSSERVAZIONI Il valore 2 (di i1) si riferisce al seme 2, che ha il maggior numero di carte nel mazzo di carte Il valore 2 (di i2) si riferisce al seme 2, le cui carte all interno del mazzo totalizzano il punteggio massimo In questo caso, i1 ed i2 sono uguali, ma potrebbe non essere sempre così ossibile Soluzione function [i1, i2] = seme_massimo(m, ) [valore1, i1] = max(sum(m, 2)); [num_semi, num_] = size(m); for indice_seme = 1:num_semi punteggio_seme(indice_seme) = sum(m(indice_seme, :).* ); [valore2, i2] = max(punteggio_seme); rogrammazione in MATLAB Gestione File Grafici: Esercitazione

Esercizio 3 unteggio 5 3 2 4 7 3 3 2 1 9 Scrivere una funzione chiamata carta_non_presente, che pra come argomenti di input: la matrice M (mazzo_carte),uninteroindice_seme eduninteroindice_valore, e restituisca come argomentodi output 1, se la carta non è presente nel mazzo 0, altrimenti Esempio 1: carta_non_presente(m, 2, 3)à restituisce 0 Esempio 2: carta_non_presente(m, 3, 9)à restituisce 1 ossibile Soluzione1/3 function [ non_presente ] = carta_non_presente(m, indice_seme, indice_valore) non_presente = ~M(indice_seme, indice_valore); ossibile Soluzione2/3 function [ non_presente ] = carta_non_presente(m, indice_seme, indice_valore) non_presente = 1 - M(indice_seme, indice_valore); rogrammazione in MATLAB Gestione File Grafici: Esercitazione

Esercizio 3 unteggio 5 3 2 4 7 3 3 2 1 9 Scrivere una funzione chiamata carta_non_presente, che pra come argomenti di input: la matrice M (mazzo_carte),uninteroindice_seme eduninteroindice_valore, e restituisca come argomentodi output 1, se la carta non è presente nel mazzo 0, altrimenti Esempio 1: carta_non_presente(m, 2, 3)à restituisce 0 Esempio 2: carta_non_presente(m, 3, 9)à restituisce 1 ossibile Soluzione3/3 function [ non_presente ] = carta_non_presente(m, indice_seme, indice_valore) if M(indice_seme, indice_valore) == 1 non_presente = 0; else non_presente = 1; rogrammazione in MATLAB Gestione File Grafici: Esercitazione

Esercizio 4 unteggio 5 3 2 4 7 3 3 2 1 9 Scrivere una funzione chiamata carta_punteggio_massimo, che pra come argomenti di input: l array riga (punteggio_carte), e restituisca come argomento di output l indice del valore della carta che ottiene il punteggio massimo Esempio: carta_punteggio_massimo()à restituisce 10 ossibile Soluzione function [ indice_carta ] = carta_punteggio_massimo() [valore, indice_carta] = max(); rogrammazione in MATLAB Gestione File Grafici: Esercitazione

unteggio 5 3 2 4 7 3 3 2 1 9 Esercizio 5 Scrivere un M-File Script chiamato carte_script.m che effettui le seguenti operazioni 1. Importi la matrice M dal file mazzo_carte.txt 2. Importi la matrice dal file punteggio_carte.txt 3. Invochi la funzione dell Esercizio 1 (chiamata informazioni_mazzo) con gli argomenti di input: M e, e mostri a videoi dueoutput prodottidalla funzione stessa 4. Generi un graficoa barre con le seguenti caratteristiche 1. Asse X à Rappresenta gli indici dei semi 2. Asse Y à Rappresenta il numero di carte, all interno del mazzo, in base al seme specificato sull asse X NOTA: I file mazzo_carte.txt e punteggio_carte.txt (mostrati in seguito) contengono solo dati numerici. È utilizzato il separatore virgola (,) per separare le colonne (suggerimento: utilizzare la funzione importdata). Si assuma che i file sianomemorizzati all internodella Current Directory rogrammazione in MATLAB Gestione File Grafici: Esercitazione

unteggio 5 3 2 4 7 3 3 2 1 9 ossibile Soluzione (contenutodi carte_script.m ) Esempio Esercizio 5 Esercizio 5 M = importdata('mazzo_carte.txt'); = importdata('punteggio_carte.txt'); [nc, np] = informazioni_mazzo(m, ) [num_semi, num_] = size(m); x = 1:num_semi; y = sum(m, 2); bar(x, y); 6 5 4 3 2 1 0 1 2 3 4 rogrammazione in MATLAB Gestione File Grafici: Esercitazione