• Non ci sono risultati.

MATLAB Le funzioni

N/A
N/A
Protected

Academic year: 2022

Condividi "MATLAB Le funzioni"

Copied!
5
0
0

Testo completo

(1)

MATLAB Le funzioni

MATLAB - Funzioni 2

Funzioni

Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un valore come risultato, come avviene anche per una funzione matematica f(x).

f(x) restituisce un valore, in generale, diverso per ogni diverso valore di x. I valori che inseriamo tra parentesi, che in matematica chiamiamo variabili indipendenti, in MATLAB si chiamano parametri (o argomenti) della funzione

MATLAB - Funzioni 3

Funzioni

Una funzione consiste quindi in una serie di istruzioni, che producono un risultato che varia al variare del valore degli argomenti della funzione stessa.

Per definire una funzione è necessario, in generale, specificare:

Nome della funzione

Parametri formali (che costituiscono l’input della funzione)

Risultati forniti (che costituiscono l’output della funzione) function [<risultati>] =nome funzione ([par.formali])

MATLAB - Funzioni 4

Funzioni

Una funzione possono non essere specificati:

Parametri formali (che costituiscono l’input della funzione)

Ad esempio, una funzione che stampa un messaggio prefissato.

Risultati

Ad esempio, se devo solo presentare i risultati su monitor e non riutilizzarli nei calcoli successivi

(2)

MATLAB - Funzioni 5

Funzioni

Esempio

function y = doppio (x) doppio è il nome della funzione x è il parametro formale (input) y è il risultato (output)

MATLAB - Funzioni 6

Funzioni

Occorre poi definire il codice della funzione function [risultati] =nome funzione ([par.formali])

corpo della funzione

end

function y = doppio (x) y = 2 * x;

end

MATLAB - Funzioni 7

Funzioni

Una volta definita una funzione, essa può essere utilizzata all’interno di un programma (o di un’altra funzione)

a = input("Inserisci un numero ") duevoltea = doppio (a);

disp (duevoltea);

MATLAB - Funzioni 8

Chiamata di funzioni

La funzione (programma) che utilizza al suo interno un’altra funzione si dice, rispetto ad essa, funzione (programma) chiamante; l’utilizzo di una funzione si dice chiamata di funzione.

Nell’esempio precedente il programma chiamante invoca doppio(x)

Le operazioni che nel codice della funzione vengono eseguite sui parametri formali, nella esecuzione della funzione vengono eseguite sui valori dei corrispondenti argomenti che compaiono nella chiamata. Questo si chiama passaggio dei parametri per valore.

Analoga corrispondenza fra parametri esiste per i risultati

(3)

MATLAB - Funzioni 9

Passaggio parametri per valore

La funzione opera sui valori dei parametri formali e non modifica la variabile eventualmente usata nella chiamata.

Es. Se nel programma chiamante ho che

…. x=3;

y=doppio(x); …

dopo l’esecuzione di doppio(x) il valore di x non risulta modificato (y, ovviamente, vale 6).

Ogni chiamata di funzione deve passare tanti valori, attraverso una serie di espressioni dello stesso tipo dei parametri corrispondenti, quanti sono i parametri formali.

MATLAB - Funzioni 10

Funzioni con parametri: riepilogo

Possono operare su valori diversi per ogni chiamata di funzione, a seconda del valore che assumono in quel momento le espressioni che sono inserite nella lista dei parametri della chiamata

Si dice che i parametri vengono passati per valore, cioè la funzione assegna, all’inizio della sua esecuzione, i valori delle espressioni inserite come argomenti della sua chiamata (dette parametri effettivi o argomenti), alle corrispondenti variabili che appaiono nella definizione della funzione come parametri formali.

MATLAB - Funzioni 11

Passaggio parametri per valore

I parametri effettivi (o argomenti, o parametri attuali) sono passati per valore dalla funzione chiamante

I valori dei parametri effettivi sono copiati nei parametri formali utilizzati dalla funzione chiamata, cioè i loro valori sono usati per inizializzare le variabili (parametri formali) corrispondenti all’interno della funzione

Nessun effetto provocato da modifiche nel parametro formale all’interno della funzione si ripercuote sul parametro reale del programma chiamante

MATLAB - Funzioni 12

Esempio

function mx=massimo(m,n) % m,n sono

% i parametri formali if mn mx=m; % della funzione else mx=n;

end;

end

a  input("Inserisci un numero ") b  input("Inserisci un altro numero ") piugrande = massimo(a,b);

disp("Il massimo è "), disp(piugrande);

(4)

MATLAB - Funzioni 13

Passaggio parametri per valore (by value)

g = 5;

h = doppio(g);

disp(g);

disp(h);

function y=doppio(x) % x è un parametro formale y=2*x;

end

Quale sarà il valore stampato per le variabili g e h ?

MATLAB - Funzioni 14

Esempio

Si realizzi un programma che legga da tastiera il costo di listino di un prodotto e la percentuale di sconto e visualizzi il prezzo da pagare

Per realizzare il programma si definisca e si usi una funzione che riceva come parametri i due valori e calcoli il prezzo finale

MATLAB - Funzioni 15

Esempio

function ps = prezzo_scont (valore, percent) ps = valore - (valore*percent/100);

end

Valore e percent sono i parametri formali della funzione [costo, perc] = input("Introduci costo e percentuale (interi) ");

disp("Prezzo di listino: "), disp(costo);

disp("Sconto: "), disp(perc);

disp("Prezzo finale: "), disp(prezzo_scont(costo, perc) );

Costo e percentuale sono i parametri effettivi della chiamata

Esempio

% Restituisce il valore del minimo di un vettore.

% vet: vettore di cui si cerca il minimo

% dim: numero di elementi del vettore function mn = min_ele (vet,dim)

mn  vet(1);

for i=1:dim

if vet(i)mn mnvet(i);

end end

for i1:10

numeri(i) = input ("Inserire un numero: ");

end

disp("Il minimo è : "), disp(min_ele(numeri,i));

16 MATLAB - Funzioni

(5)

MATLAB - Funzioni 17

Esercizi

Scrivere una funzione

function mx = massimo(vet,dim) che calcoli l’elemento di valore più elevato contenuto nel vettore vet di dimensione dim.

Utilizzando la funzione scrivere un programma che, dati 2 vettori:

calcoli il valore più grande fra il massimo dell’uno e dell’altro

stampi il valore di tale massimo, indicando in quale dei due vettori è contenuto.

Sapendo che la funzione di MATLAB s = sizeof(V) restituisce le dimensioni della variabile V, riscrivere la funzione ma nella forma function mx = massimo(vet)

MATLAB - Funzioni 18

Esercizi

Scrivere una funzione m = media(a,b,c) che restituisce la media di tre numeri a,b,c e un programma he chiami la funzione e stampi i valori di a,b,c e la media.

Scrivere una funzione media_vet(vet, n) che inserisce nell’elemento n_mo del vettore la media dei primi n-1 elementi del vettore stesso e il programma che chiama la funzione e stampa i valori dei primi n-1 elementi e la media, contenuta nell’elemento n_mo.

Scrivere una funzione inverti(vet, n) che stampa i primi n elementi del vettore vet in ordine inverso e il programma che inizializza il vettore con i primi n numeri e chiama la funzione.

Non usare le funzioni di MATLAB, ma solo gli operatori aritmetici di base

Riferimenti

Documenti correlati

Informalmente, il primo passo dell’algoritmo fa in modo che il pivot della prima riga com- paia prima dei pivot delle righe dalla seconda in poi, il secondo passo dell’algoritmo fa

Analisi Matematica A – Secondo modulo Corso di Laurea in Matematica.. Università

[r]

Generalizzando l’esempio, se indichiamo con V i il valore della grandezza totale (300 euro), con V f il valore finale (la percentuale 36 euro), con t il tasso percentuale,

Chiamiamo valore di un’espressione letterale il risultato numerico che si ottiene eseguendo le operazioni indicate dallo schema di calcolo quando alle lettere sostituiamo un

Possiamo finalmente dimostrare che all’interno del disco dove converge uniforme- mente sui compatti, una serie di potenze definisce una funzione olomorfa... Allora f e tutte le

Fino a questo punto gli unici esempi di funzioni olomorfe di cui disponiamo sono i polinomi, e dove sono definite, le funzioni razionali.. In questo paragrafo vogliamo allargare

Riempire le caselle vuote della tabella sottostante (segnalare tra le note i composti non ionici). Assegnare il numero di ossidazione a ciascun atomo sottolineato. Scrivere