Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [MATLAB] problema con uscite di una funzione

    codice:
    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
    Mario Giuffrida

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    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?

  3. #3
    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?
    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.
    Mario Giuffrida

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Allora:

    codice:
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.