Matlab - Condicionantes para variables de entrada

   
Vista:

Condicionantes para variables de entrada

Publicado por Mateo Ale (7 intervenciones) el 10/08/2017 07:20:04
Saludos:
Realice una función (.m) la cual tiene un argumento de entrada (radio) y dos de salida (área y perímetro)
El ejercicio me dice que si llamo a la función sin argumentos de salida esta debe gratificar el circulo.
Si llamo a la función con argumentos de salida esta me calcula el resultado del (área y perímetro).
Ademas debe haber ciertas condicionantes para el argumento de entrada:
El radio debe de ser mayor que cero, si es menor imprimir ERROR.

Hasta aquí llegue:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function [Ac,Pc]=circulo2Salida_ap(r)
 
if  nargin==1 && nargout==0 && r>0
    teta=(0:0.01:2*pi);
    x=r.*cos(teta);
    y=r.*sin(teta);
    hold on
    figure(gcf)
    fill(x,y,'r')
    axis([-3,3,-3,3])
    axis equal
elseif  nargin==1 && nargout==2 && r>0
    Ac=pi*r^2;
    Pc=2*pi*r;
 
else
    disp('ERROR')
end

Al mandar a correr NO me cumple
[Ac,Pc]=circulo2Salida_ap(-2)
[Ac,Pc]=circulo2Salida_ap(0)

Lo de mas SI
que puedo hacer ???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH

Condicionantes para variables de entrada

cambia disp por error :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function [Ac,Pc]=circulo2Salida_ap(r)
if  nargin==1 && nargout==0 && r>0
    teta=(0:0.01:2*pi);
    x=r.*cos(teta);
    y=r.*sin(teta);
    hold on
    figure(gcf)
    fill(x,y,'r')
    axis([-3,3,-3,3])
    axis equal
elseif  nargin==1 && nargout==2 && r>0
    Ac=pi*r^2;
    Pc=2*pi*r;
 
else
    error('ERROR Radio Negativo o equivalente a 0')
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Condicionantes para variables de entrada

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (4473 intervenciones) el 10/08/2017 18:27:20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function [Ac,Pc]=circulo2Salida_ap(r)
if  nargin==1 && nargout==0 && r>0
    teta=(0:0.01:2*pi);
    x=r.*cos(teta);
    y=r.*sin(teta);
    hold on
    figure(gcf)
    fill(x,y,'r')
    axis([-3,3,-3,3])
    axis equal
elseif  nargin==1 && nargout==2 && r>0
    Ac=pi*r^2;
    Pc=2*pi*r;
 
elseif  nargin==1 && nargout==2 && r<=0
    Ac=[]; Pc=[];
    disp('ERROR')
else
      disp('ERROR')
end

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad