Esercitazione 10. 21 Dicembre 2010 (2 ore)



Documenti analoghi
Informatica B a.a. 08/09 Appello 20/7/2009

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

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

Informatica B

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Informatica B

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

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

1 (7) 2 (6) 3 (6) 4 (7) 5 (6)

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica, Prof. G. Boracchi Allievi Ingegneria Civile e Mitigazione del Rischio

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Elementi di Calcolo Scientifico per l Ingegneria A.A

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

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

ESERCIZIO 1. Informatica B - Esercitazione 12

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

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

12 Function Handles e Ricorsione in MATLAB

Laboratorio di Matlab

Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni

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

Fondamenti di Informatica

13 Esercizi di Riepilogo

RIGA COLONNA MATRICOLA

Strutture di controllo condizionali in Matlab

13 Esercizi di Riepilogo

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

Introduzione al MATLAB c Parte 2

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

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

Esercitazione di Reti degli elaboratori

Esercitazione 2. Prima parte

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

Esercitazione 2. Prima parte

Il numero di righe e colonne effettive, rispettivamente num_righe e num_colonne, verrà individuato dalla funzione di lettura del file.

13 Ricorsione con MATLAB

Capitolo 10 - Strutture

>> A = [1 2 3; 4 5 6; 7 8 9]; >> A

Introduzione al MATLAB c Parte 2

Tema A+B COGNOME E NOME. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 4 Febbraio 2016

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

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

15 Riepilogo di esercizi 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/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Fondamenti di Informatica

Lab 7 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 19 Gennaio 2016

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

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

RIGA COLONNA MATRICOLA

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Informatica B - A.A. 2018/2019

Fondamenti di Informatica A.A. 2016/17

Esercizi

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

Grafici tridimensionali

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

Corso di Fondamenti di Informatica

viene disegnato un grafico che passa per i punti le cui ascisse e ordinate sono contenute rispettivamente nei vettori x e y.

MATLAB Elementi di grafica Costrutti di programmazione

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

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018

Operatori relazionali

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B. Esempio di seconda prova in itinere A.A

Diagrammi 2D e 3D Funzioni di ordine superiore

Corso di Laurea in Ingegneria Energetica POLINOMI IN MATLAB. Bologna, 13 marzo Fondamenti di Informatica L a.a

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

Lab 8 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 20 O0obre 2015

Finestre grafiche. >> figure >> figure(n)

Liste di Liste Matrici

ESERCIZIO 1. Informatica B - Esercitazione 14

clear clc v=input(['digitare V']); for i=1:length(v); for j=1:length(v); if i==j; m(i,j)=v(i); else; m(i,j)=0; end; end; end; disp(m)

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Fondamenti di Informatica

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Diagrammi 2D e 3D Funzioni di ordine superiore

Fondamenti di Informatica

A.A. 2018/2019. Esercitazione 5. Modellazione e Risoluzione di Problemi mediante MATLAB. [ Possibili Soluzioni ]

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

14 Function Handles in MATLAB

ESERCIZIO: SHIFT ARRAY (1)

Fondamenti di Informatica

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

Esercitazione Fondamenti di Informatica 2

Fondamenti di Informatica

Indice. Ricerca richiesta d offerta. Risultati della ricerca Navigazione Stati

Transcript:

Esercitazione 10 21 Dicembre 2010 (2 ore) Riassunto Nell'esecitazione di oggi abbiamo lavorato ancora sulle funzioni. Abbiamo inoltre introdotto alcune delle seguenti funzioni per tracciare i grafici. Funzione per tracciare linee su piano cartesiano: plot(x,y) -> x e y sono dei vettori aventi stessa dimensione contenenti le coordinate dei punti da rappresentare. Funzione per tracciare linee su spazio cartesiano: plot3(x,y,z) -> x,y e z sono dei vettori aventi stessa dimensione contenenti le coordinate dei punti da rappresentare. Gli esercizi svolti sono i seguenti: 1. Funzioni e matrici logiche - TDE 03/02/2009A 2. Esercizio 2 (TDE 20/07/2009) 3. Stringhe palindrome 4. Tariffe telefoniche (plot in 2 dimensioni) Esercizio 1. (Funzioni e matrici logiche - TDE 03/02/2009A) Scrivere una funzione che pre come parametro due matrici A e B, della stessa dimensione, e restituisce i seguenti 3 valori: 1. Il numero di elementi uguali in posizioni corrispondenti. 2. Il numero di elementi di A massimali per la matrice B, cioe' il numero di posizioni, nella matrice A, in cui e' presente un elemento che e' maggiore o uguale a tutti gli elementi presenti nella matrice B. 3. Il numero massimo di elementi di A massimali per la matrice B (secondo la definizione precedente) presenti in una stessa colonna della matrice A. function [r1,r2,r3]=soluzione(a, B) t1 = A==B; M = max(max(b)); t2 = A <= M; r1 = sum(sum(t1)); r2 = sum(sum(t2)); r3 = max(sum(t2));

Esercizio 2 (TDE 20/07/2009) Una matrice Matlab contiene numeri interi. Si vuole progettare una funzione che ricevo la matrice e un array di numeri interi che rappresenta una sequenza, cerchi tale sequenza all interno della matrice. La sequenza può essere disposta, nella matrice, verticalmente dall alto verso il basso od orizzontalmente, da sinistra verso destra. La funzione deve avere la seguente intestazione: function [riga, col, dir] = cercainiziosequenza(matrice, seq) se la sequenza è presente nella matrice allora riga e col indicano gli indici di riga e di colonna del suo primo elemento, mentre dir viene posto uguale al carattere v se la sequenza è disposta verticalmente, o se orizzontalmente (se la sequenza è presente ripetuta in più posizioni, i valori restituiti possono essere quelli relativi a una qualsiasi delle ripetizioni); se la sequenza non è presente, riga e col valgono entrambi 0 e dir vale n. 1. Per codificare la funzione in questione, si sviluppano prima le due seguenti funzioni ausiliarie function [pres] = verificaseqorizzontaledaposizione (matrice, seq, riga, col) function [pres] = verificaseqverticaledaposizione (matrice, seq, riga, col) che ricercano la sequenza nella matrice a partire da una posizione d inizio precisa, in direzione orizzontale o verticale: riga e col sono il punto di inizio; il risultato pres vale 1 se la sequenza è presente, 0 altrimenti. 2. Successivamente si utilizzano queste due funzioni per codificare le due seguenti 1. function [riga, col] = cercainizioseqorizzontale(matrice, seq) 2. function [riga, col] = cercainizioseqverticale(matrice, seq) che ricercano la sequenza in tutta la matrice con disposizione orizzontale e verticale, restituo in riga e col le coordinate del punto d inizio, se la sequenza viene trovata, o il valore 0 altrimenti. 3. Infine si codifichi la funzione cercainiziosequenza faco uso delle due precedenti. Ai fini dell esame, per questioni di tempo, si sviluppino solo le seguenti funzioni, ipotizzando che le altre due siano già state sviluppate: function [pres] = verificaseqorizzontaledaposizione (matrice, seq, riga, col) function [riga, col] cercainizioseqorizzontale = (matrice, seq) function [riga, col, dir] = cercainiziosequenza(matrice, seq) function [pres] = verificaseqorizzontaledaposizione (matrice, seq, riga, col) len=length(seq); pr=matrice(riga,col:col+len-1); pres=all(pr==seq);

function [pres] = verificaseqverticaledaposizione (matrice, seq, riga, col) len=length(seq); pr=matrice(riga:riga+len-1,col); pres=all(pr==seq'); function [riga, col] = cercainizioseqorizzontale (matrice, seq) len = length(seq); [R,C] = size(matrice); for r = 1 : R for c = 1: C-len+1 pres = verificaseqorizzontaledaposizione(matrice, seq, r, c); if pres riga=r; col=c; riga=0; col=0; function [riga, col] = cercainizioseqverticale (matrice, seq) len = length(seq); [R,C] = size(matrice); for c = 1 : C for r = 1: R-len+1 pres = verificaseqverticaledaposizione(matrice, seq, r, c);

if pres riga=r; col=c; riga=0; col=0; function [riga, col, dir] = cercainiziosequenza(matrice, seq) [ro, co] = cercainizioseqorizzontale(matrice, seq); if ro ~= 0 riga = ro; col = co; dir = 'o'; [rv, cv] = cercainizioseqverticale(matrice, seq); if rv ~= 0 riga = rv; col = cv; dir = 'v'; riga=0;

col=0; dir='n'; Esercizio 3. (Stringhe palindrome) Scrivere una funzione ricorsiva che riconosca stringhe palindrome. La funzione ritornerà 1 in caso che la stringa sia palindroma, 0 altrimenti. function [res] = palindrome(seq) if length(seq) == 1 res = 1 elseif seq(1) ~= seq(length(seq)) res = 0 else res = (seq(1) == seq(length(seq))) & palindrome(seq(2:length(seq)-1)) ; Esercizio 4. (Cosa fa) Esercizio 3 (4 punti) Si analizzi la funzione ricorsiva sotto riportata e si spieghi in modo sintetico che cosa calcola. Si indichi inoltre cosa restituisce la funzione quando viene chiamata con argomento pari a 5. function [M]=cosafa(n) if (n == 1) M = 1; else

S = cosafa(n-1); k = size(s,1)+2; M = ones(k)*n; M(2:k-1,2:k-1)=S; Nota: La funzione MATLAB ones(n)restituisce una matrice di dimensione n x n in cui tutti gli elementi sono pari ad 1 La funzione calcola una matrice di dimensione (2 n 1) xi (2 n 1) che ha come elemento centrale 1 le cui cornici concentriche hanno valori che vanno da 2 ad n: octave:3> cosafa(5) ans = 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 5 5 4 3 3 3 3 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 2 1 2 3 4 5 5 4 3 2 2 2 3 4 5 5 4 3 3 3 3 3 4 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 Esercizio 5. (Tariffe telefoniche) Una nota compagnia di telefonia offre due tariffe ai propri clienti. La tariffa T1 ha un costo di 0.17 euro

al minuto tariffati al secondo, la tariffa T2 ha un costo di 0.12 euro al minuto tariffato a scatti di 30 secondi, piu' un ulteriore scatto alla risposta di 0.16 euro. Si chieda l'inserimento di un numero di secondi e si tracci il grafico di entrambe le tariffe a partire da 0 secondi fino al numero di secondi inserito. Codice N=input('Inserire il numero di secondi: '); tempo=0:n; T1=0.17*tempo/60; T2=0.16+0.06*ceil(tempo/30); % 0.06 e' il valore dello scatto (0.12/2) plot(tempo,t1,tempo,t2); title('confronto tariffe telefoniche') xlabel('tempo di conversazione (secondi)') ylabel('costo (euro)') Esecuzione Inserire il numero di secondi: 1000