Fondamenti di Informatica

Documenti analoghi
Fondamenti di Informatica

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

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

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

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

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

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

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 Esercizio 4 Esercizio 5 Totale

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

Introduzione al MATLAB c Parte 3 Script e function

Fondamenti di Informatica

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

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

A.A. 2018/2019. Esercitazione 4 [Guidata] Risoluzione di un Problema con Strutturazione del Codice Sorgente mediante MATLAB

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

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Fondamenti di Informatica

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)

Introduzione al MATLAB c Parte 2

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

Fondamenti di Informatica

Appello di Fondamenti di Informatica 12/09/2017

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

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

ESERCIZIO 1. Informatica B - Esercitazione 12

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

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

Fondamenti di Informatica

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

MATLAB Alcune funzioni utili: fprintf, length, size

Fondamenti di Informatica A.A. 2017/18

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

Informatica B - A.A. 2018/2019

Fondamenti di Informatica e Programmazione

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

Fondamenti di Informatica

Fondamenti di Informatica

Appello di Fondamenti di Informatica e Programmazione 03/01/2018

Fondamenti di Informatica A.A. 2017/18

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

3+4 2 (3+1) 4. Variabili a = 3 b = 4 c = a + b who, whos MATrixLABoratory Un numero è una matrice 1 1.

I Appello di Fondamenti di Informatica 03/01/2017

Fondamenti di Informatica

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

CORSO DI LABORATORIO DI INFORMATICA

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

A.A. 2018/2019. Esercitazione 5 [Per Casa] Modellazione e Risoluzione di Problemi mediante MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Fondamenti di Informatica

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

Operatori relazionali

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

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

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

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

Laboratorio di Python

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica A.A. 2016/17

Metodi numerici con elementi di Programmazione A.A

Fondamenti di Informatica

Elementi di Calcolo Scientifico per l Ingegneria A.A

Laboratorio di Python

Esercitazione 00 Introduzione a Matlab

Ingegneria Chimica Dipartimento di Ingegneria Industriale (DIIn) Università degli Studi di Salerno Prof. Arcangelo Castiglione A.A.

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici

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

Fondamenti di Informatica

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

Fondamenti di Informatica

La prova di verifica e algoritmi di forza bruta

Laboratorio di Matlab

Transcript:

Fondamenti di Informatica Introduzione alla programmazione in MATLAB E s e rc i ta z i o n e 1 Po s s i b i l i S o l u z i o n i P r o f. R a f fa e l e P i z zo l a n t e A. A. 2 0 1 6 / 1 7

Esercizio 1 Scrivere una funzione, chiamata maggiore3 (da memorizzare in un M-file function), che pra i seguenti parametri di input: numero1, numero2 e numero3 e restituisca, in output, il maggiore di tali numeri Esercizio 2 Scrivere un M-File Script MATLAB che generi il seguente output

Esercizio 1 Possibili Soluzioni Soluzione 1 function [ maggiore ] = maggiore3(numero1, numero2, numero3) if numero1 > numero2 maggiore_temporaneo = numero1; else maggiore_temporaneo = numero2; if numero3 > maggiore_temporaneo maggiore_temporaneo = numero3; maggiore = maggiore_temporaneo; Soluzione 2 (Utilizzando funzioni built-in di MATLAB) function [ maggiore ] = maggiore3(numero1, numero2, numero3) maggiore = max([numero1 numero2 numero3]);

Esercizio 2 Possibili Soluzioni Soluzione 1 for riga = 1:10 valore = 1; for colonna = 1:riga A(colonna) = colonna; disp(a); Soluzione 2 for riga = 1:10 disp([1:riga]); Soluzione 3 i = 1; while i < 11 disp(1 : i); i = i + 1;

Esercizio 3 Scrivere una funzione (che utilizzi cicli for annidati) per generare la seguente matrice A A = 4 8 12 10 14 18 16 20 24 22 26 30 N.B.: A(1, 1) = 4; A(1, 2) = A(1, 1) + 4; A(2, 1) = A(1, 3) 2; A(2, 2) = A(2, 1) + 4;

Esercizio 3 Possibili Soluzioni 1/2 Soluzione 1 function [ A ] = genera_matrice1() riga1 = 4:4:12; A(1, :) = riga1; for i = 2:4 A(i, :) = A(i - 1, :) + 6; Soluzione 2 function [ A ] = genera_matrice2() colonna1 = [ 4:6:22 ]'; A(:, 1) = colonna1; for i = 2:3 A(:, i) = A(:, i - 1) + 4;

Esercizio 3 Possibili Soluzioni 2/2 Soluzione 3 function [ A ] = genera_matrice3() A(1, 1) = 4; for riga = 1:4 for colonna = 1:3 if ((riga > 1) && (colonna == 1)) A(riga, colonna) = A(riga - 1, colonna) + 6; elseif (colonna > 1) A(riga, colonna) = A(riga, colonna - 1) + 4;

Esercizio 4 Esercizio 4.1 (fattoriale) Scrivere una funzione che pra in input n, calcoli e restituisca in output n! Esercizio 4.2 (divisori) Scrivere una funzione che pra in input n, calcoli e restituisca in output un array contenente i divisori di n Esercizio 4.3 (numero primo) Scrivere una funzione che pra in input n e restituisca 1 se n è primo, 0 altrimenti Esercizio 4.4 (somma primi n interi positivi) Scrivere una funzione che pra in input n e restituisca la somma dei primi n interi positivi Esercizio 4.5 (riga con somma massima diunamatrice) Scrivere una funzione che pra in input una matrice A e restituisca il valore della somma della riga di A, avente la somma degli elementi massima fra tutte le righe di A NOTA: Le funzioni di tali esercizi possono invocare ulteriori funzioni sia viste a lezione e sia contenute negli esercizi precedenti oppure funzioni built-in o altre funzioni da voi definite

Esercizio 4 Possibili Soluzioni 1/5 Soluzione Esercizio 4.1 function [n_fact] = fattoriale(n) if n == 0 n_fact = 1; else n_fact = 1; for i = 2:n n_fact = n_fact * i;

Esercizio 4 Possibili Soluzioni 2/5 Soluzione Esercizio 4.2 function [ array_divisori ] = divisori(n) divisore_idx = 1; for i = 1:n if mod(n, i) == 0 array_divisori(divisore_idx) = i; divisore_idx = divisore_idx+1;

Esercizio 4 Possibili Soluzioni 3/5 Soluzione Esercizio 4.3 function [ primo ] = primo(n) divisori_n = divisori(n); if length(divisori_n) == 2 primo = 1; else primo = 0;

Esercizio 4 Possibili Soluzioni 4/5 Soluzione Esercizio 4.4 function [ somma ] = somma_interi_positivi(n) somma = 0; for i = 1:n somma = somma + i;

Esercizio 4 Possibili Soluzioni 5/5 Soluzione 1 Esercizio 4.5 function [somma_maxriga_matrice] = somma_maxriga_matrice1(m) [nr, nc] = size(m); for i=1:nr somma_righe_matrice(i) = sum(m(i,:)); somma_maxriga_matrice = max(somma_righe_matrice); Soluzione 2 Esercizio 4.5 function [somma_maxriga_matrice] = somma_maxriga_matrice2(m) somma_maxriga_matrice = max(sum(m, 2));

Esercizio 5 Esercizio 5.1 (inversione array) Scrivere una funzione che pra in input un array a, e restituisca in output l array contenente gli stessi elementi di a ma in ordine inverso Esempio Input: a = [1 2 3 4 5] Ouput: o = [5 4 3 2 1] Esercizio 5.2 (numero occorrenze in array) Scrivere una funzione che pra in input un array a e un numero (scalare) n, e restituisca in output il numero di occorrenze di n all interno di a Esempio: a = [ 3 5 6 7 8 4 7 8 11 7 91 ], n = 7 n_occorrenze = 3 Esercizio 5.3 (somma diagonale principale di una matrice quadrata) Scrivere una funzione che pra in input una matrice quadrata A, calcoli e restituisca in output la somma degli elementi della diagonale principale NOTA: Le funzioni di tali esercizi possono invocare ulteriori funzioni sia viste a lezione e sia contenute negli esercizi precedenti oppure funzioni built-in o altre funzioni da voi definite

Esercizio 5 Possibili Soluzioni 1/3 Soluzione Esercizio 5.1 function [a_inverso] = inversione_array(a) for i=1:length(a) a_inverso(length(a) - i + 1) = a(i);

Esercizio 5 Possibili Soluzioni 2/3 Soluzione 1 Esercizio 5.2 function [n_occorrenze] = numero_occorrenze_array1(a, n) n_occorrenze = 0; for i=1:length(a) if a(i)==n n_occorrenze = n_occorrenze + 1; Soluzione 2 Esercizio 5.2 function [n_occorrenze] = numero_occorrenze_array(a, n) n_occorrenze = numel(find(a == n));

Esercizio 5 Possibili Soluzioni 3/3 Soluzione Esercizio 5.3 function [somma_diag_principale] = somma_diagonale_principale(a) [nr, nc] = size(a); somma = 0; for i = 1:nr somma = somma + a(i, i); somma_diag_principale = somma;

Esercizio 6 Scrivere una funzione, chiamata percentuale_sconto (da memorizzare in un M-file), che pra in input l importo dell acquisto e restituisca, in output, la percentuale di sconto su tale importo. Le percentuali di sconto sono così calcolate: Lo sconto verrà effettuato se e solo se l importo dell acquisto è superiore a 299 Se l importo è superiore a 999, la percentuale di sconto sarà del 5%. Se è superiore a 1499 allora sarà dal 10% La percentuale minima di sconto è 2%

Esercizio 6 Possibili Soluzioni Soluzione function [ perc_sconto ] = percentuale_sconto(importo) if importo >= 299 if importo >= 1499 perc_sconto = 10; elseif importo >= 999 perc_sconto = 5; else perc_sconto = 2; else perc_sconto = 0;

Esercizio 7 Scrivere una funzione, chiamata stagione_anno (da memorizzare in un M-file function), che pra i seguenti parametri di input giorno e mese e restituisca, in output, il codice della stagione in cui tale data è collocata Promemoria stagioni Inverno (Inizio: 23/12 - Fine: 20/03) codice 1 Primavera (Inizio: 21/03 Fine: 21/06) codice 2 Estate (Inizio: 22/06 - Fine: 22/09) codice 3 Autunno (Inizio: 23/09 - Fine: 22/12) codice 4 Data non valida codice -1

Esercizio 7 Possibili Soluzioni Soluzione function [ codice_stagione ] = stagione_anno(giorno, mese) if giorno >= 23 && mese == 12 % Inverno - parte 1 codice_stagione = 1; elseif giorno >= 1 && (mese == 1 mese == 2) % Inverno - parte 2 codice_stagione = 1; elseif giorno <= 20 && mese == 3 % Inverno - parte 3 codice_stagione = 1; elseif giorno >= 21 && mese == 3 % Primavera - parte 1 codice_stagione = 2; elseif giorno >= 1 && (mese == 4 mese == 5) % Primavera - parte 2 codice_stagione = 2; elseif giorno <= 21 && mese == 6 % Primavera - parte 3 codice_stagione = 2; elseif giorno >= 22 && mese == 6 % Estate - parte 1 codice_stagione = 3; elseif giorno >= 1 && (mese == 7 mese == 8) % Estate - parte 2 codice_stagione = 3; elseif giorno <= 1 && mese == 9 % Estate - parte 3 codice_stagione = 3; elseif giorno >= 23 && mese == 9 % Autunno - parte 1 codice_stagione = 4; elseif giorno >= 1 && (mese == 10 mese == 11) % Autunno - parte 2 codice_stagione = 4; elseif giorno <= 22 && mese == 12 % Estate - parte 3 codice_stagione = 4; else codice_stagione = -1;