PDA

Visualizza la versione completa : [MATLAB] Determinare calcolo e valore di uscita di una funzione


marej89
23-02-2012, 18:48
function [area, perimetro, diagonale] = rettangolo (l1, l2)
inp1= menu('vuoi calcolare l area??','si','no');
if (inp1==1)
area = l1*l2;
end
inp2 = menu('vuoi calcolare perimetro?','si','no');
if (inp2 == 1)
perimetro =(l1+l2)*2;
end
inp3=menu ('vuoi calcolare diagonale?', 'si','no');
if (inp3==1)
diagonale = (l1^2+l2^2)^0.5
end
end

Se per esempio volessi calcolare l'area e la diagonale, ma non il perimetro, come faccio a fare "capire" quale uscita mi deve stampare nel workspace e quale no??

grazie

ramy89
23-02-2012, 19:17
Fai tre funzioni separate.
Altrimenti l' unica impostare le tre variabili con valori dai quali capisci se contengono valori che sono stati calcolati o no.
Per "uscita" intendi variabile? :confused:

marej89
23-02-2012, 19:28
Originariamente inviato da ramy89
Fai tre funzioni separate.
Altrimenti l' unica impostare le tre variabili con valori dai quali capisci se contengono valori che sono stati calcolati o no.
Per "uscita" intendi variabile? :confused:

non posso fare 3 funzioni separate.
Questa del rettangolo un esempio per far capire la natura del problema.
comunque si, per uscita intendo area, perimetro e diagonale che sono anche variabili.
In pratica voglio a posteriori che le variabili mi vadano in uscita o meno e deve dipendere questa cosa dalla risposta alla domanda.

ramy89
23-02-2012, 19:50
Allora:



function calc = rettangolo (l1, l2)
k=1;
inp1= menu('vuoi calcolare l area??','si','no');
if (inp1==1)
calc(k) = l1*l2;
k=k+1;
end
inp2 = menu('vuoi calcolare perimetro?','si','no');
if (inp2 == 1)
calk(k) =(l1+l2)*2;
k=k+1;
end
inp3=menu ('vuoi calcolare diagonale?', 'si','no');
if (inp3==1)
calc(k) = (l1^2+l2^2)^0.5;
end
end

E poi capisci quanti valori sono stati calcolati dalla lunghezza dell' array ritornato.

PS:Ricordati sempre di indentare il codice, per chiarezza.

Loading