Anda di halaman 1dari 10

PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01

coamcycesh@gmail.com 01-5294870
PROGRAMA EN MATLAB DE GEOMETRIA TRIANGULOS
Desarrollar un programa de geometra de tringulos en el Interfaz Grafica de Usuario
(GUI) y M-File de MATLAB, que calcule el permetro, rea, as mismo que realice la
clasificacin del triangulo de acuerdo a su ngulo y lado, finalmente el programa debe
calcular la altura, mediana o bisectriz con respecto a cada lado del triangulo. Como
datos de ingreso se tendr nicamente los valores numricos de cada lado. Usted debe
controlar los check box, botton group y los Static Text de presentacion de resultados
de acuerdo a la seleccin que haga el usuario del programa.
PERMETRO
c b a p + + =
AREA
c b a p + + =
2
p
s =
) )( )( ( c s b s a s x =
sx A =
ALTURAS RELATIVAS DE UN TRIANGULO
c b a p + + =
2
p
s =
) )( )( ( c s b s a s s x =
a
x
ha 2 =
b
x
hb 2 =
c
x
hc 2 =
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
MEDIANAS RELATIVAS DE UN TRIANGULO
|
.
|

\
|
+ =
2 2 2
2
1
2
1
a c b ma
|
.
|

\
|
+ =
2 2 2
2
1
2
1
b c a mb
|
.
|

\
|
+ =
2 2 2
2
1
2
1
c b a mc
BISECTRICES
c b a p + + =
2
p
s =
( )
c b
a s sbc
ba
+

=
2
( )
c a
b s sac
bb
+

=
2
( )
b a
c s sab
bc
+

=
2
CALCIFICACIN DE TRINGULOS POR SU NGULO
Rectngulos
En alguno de los tres casos
2 2 2
c b a + =
2 2 2
c a b + =
2 2 2
b a c + =
Acutngulo
Si se cumple los tres casos
2 2 2
c b a +
2 2 2
c a b +
2 2 2
b a c +
Obtusngulo
Si no se cumple ninguna de las anteriores
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
CALCIFICACIN DE TRINGULOS POR SU NGULO
Equiltero
Si: b a = y c a =
Escaleno
Si: b a = y c a =
Issceles
En alguno de los tres casos
Si: b a = y c a =
Si: c a = y b a =
Si: c b = y a b =
CDIGO DEL PROGRAMA
CENTRAR EL GUI
scrsz=get(0,'screensize');
pa=get(gcf,'position');
xr=scrsz(3)-pa(3);
xp=round(xr/2);
yr=scrsz(4)-pa(4);
yp=round(yr/2);
set(gcf,'position',[xp yp pa(3) pa(4)]);
COMO MOSTRAR O SUBIR UNA IMAGEN AL GUI
img=imread('triangulo.jpg');
axes(handles.axes1);
imshow(img)
axis off
CLASIFICACIN POR SU ANGULO
v=get(handles.angulo,'value');
a=str2double(get(handles.ladoa,'string'));
b=str2double(get(handles.ladob,'string'));
c=str2double(get(handles.ladoc,'string'));
if a+b>c & a+c>b & b+c>a
if v==1
if a^2==b^2+c^2 | b^2==a^2+c^2 | c^2==a^2+b^2
set(handles.text8,'string','Rectangulo')
elseif a^2<b^2+c^2 & b^2<a^2+c^2 & c^2<a^2+b^2
set(handles.text8,'string','Acutangulo')
else
set(handles.text8,'string','Obtusangulo')
end
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
set(handles.text8,'visible','on')
set(handles.text4,'visible','on')
else
set(handles.text8,'visible','off')
set(handles.text4,'visible','off')
end
else
msgbox('Los datos ingresados no corresponden a un
Triangulo','MENSAJE')
return
end
CLASIFICACIN POR SU LADO
v=get(handles.lado,'value');
a=str2double(get(handles.ladoa,'string'));
b=str2double(get(handles.ladob,'string'));
c=str2double(get(handles.ladoc,'string'));
if a+ b>c & a+c>b & b+c>a
if v==true
if a==b & a==c
set(handles.text9,'string','Equilatero')
elseif a~=b & a~=c
set(handles.text9,'string','Escaleno')
elseif a==b & a~=c | a==c & a~=b | b==c & b~=a
set(handles.text9,'string','Isosceles')
end
set(handles.text9,'visible','on')
set(handles.text5,'visible','on')
else
set(handles.text9,'visible','off')
set(handles.text5,'visible','off')
end
else
msgbox('Los datos ingresados no corresponden a un
Triangulo','MENSAJE')
return
end
PERIMETRO
v=get(handles.perimetro,'value');
a=str2double(get(handles.ladoa,'string'));
b=str2double(get(handles.ladob,'string'));
c=str2double(get(handles.ladoc,'string'));
if a+ b>c & a+c>b & b+c>a
if v==1
p=a+b+c;
set(handles.text11,'string',p)
set(handles.text7,'visible','on')
set(handles.text11,'visible','on')
else
set(handles.text7,'visible','off')
set(handles.text11,'visible','off')
end
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
else
msgbox('Los datos ingresados no corresponden a un
Triangulo','MENSAJE')
return
end
AREA
v=get(handles.area,'value');
a=str2double(get(handles.ladoa,'string'));
b=str2double(get(handles.ladob,'string'));
c=str2double(get(handles.ladoc,'string'));
if a+ b>c & a+c>b & b+c>a
if v==1
p=a+b+c;
s=p/2;
x=(s - a)+(s - b)+(s - c);
area=sqrt(s*x);
set(handles.text10,'string',area)
set(handles.text10,'visible','on')
set(handles.text6,'visible','on')
else
set(handles.text10,'visible','off')
set(handles.text6,'visible','off')
end
else
msgbox('Los datos ingresados no corresponden a un
Triangulo','MENSAJE')
return
end
CALCULO DE LA HALTURA MEDIANA O BISECTRIZ
u=get(handles.altura,'value');
v=get(handles.mediana,'value');
w=get(handles.bisectriz,'value');
a=str2double(get(handles.ladoa,'string'));
b=str2double(get(handles.ladob,'string'));
c=str2double(get(handles.ladoc,'string'));
if a+ b>c & a+c>b & b+c>a
if u==1
p=a+b+c;
s=p/2;
x=s*(s-a)*(s-b)*(s-c);
ha=2*sqrt(x)/a;
hb=2*sqrt(x)/b;
hc=2*sqrt(x)/c;
set(handles.text12,'string','Altura');
set(handles.text16,'string',ha);
set(handles.text17,'string',hb);
set(handles.text18,'string',hc);
set(handles.text13,'string','ha');
set(handles.text14,'string','hb');
set(handles.text15,'string','hc');
elseif v==1
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
set(handles.text12,'string','Mediana');
ma = sqrt(0.5*(b^2+c^2-0.5*a^2));
mb = sqrt(0.5*(a^2+c^2-0.5*b^2));
mc = sqrt(0.5*(a^2+b^2-0.5*c^2));
set(handles.text16,'string',ma);
set(handles.text17,'string',mb);
set(handles.text18,'string',mc);
set(handles.text13,'string','ma');
set(handles.text14,'string','mb');
set(handles.text15,'string','mc');
elseif w==1
p = a+b+c;
s = p/2;
ba = sqrt(s*b*c*(s-a))*2/(b+c);
bb = sqrt(s*a*c*(s-b))*2/(a+c);
bc = sqrt(s*a*b*(s-c))*2/(b+a);
set(handles.text12,'string','Bisectriz');
set(handles.text16,'string',ba);
set(handles.text17,'string',bb);
set(handles.text18,'string',bc);
set(handles.text13,'string','ba');
set(handles.text14,'string','bb');
set(handles.text15,'string','bc');
end
else
msgbox('Los datos ingresados no corresponden a un
Triangulo','MENSAJE')
return
end
SALIR DEL GUI
close(TRIANGULO);
BOTON AYUDA
helpdlg('No se olvide de ingresar los tres lados del triangulo antes de
escoger las opciones. En el caso de que no sea un triangulo ingrese
nuevos valores','AYUDA');
BOTON NUEVO (Limpiar valores)
close(TRIANGULO)
TRIANGULO
En realidad existe varias formas de limpiar los valores ingresados, cada programador
escoger de acuerdo a su criterio, lo importante es utilizar la menor cantidad de bytes
posibles en la codificacin.
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
INTERFAZ PRINCIPAL DEL PROGRAMA
DESCRIPCION DE COMANDOS
SENTENCIAS GET Y SET
La asignacin u obtencin de valores de los componentes se realiza mediante las
sentencias get y set.
get = Obtiene valores de un objeto
set = Asigna valores a un parametro especifico de un objeto
La lgica como trabaja estas funciones
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
get(handles.nombre_del_objeto,'parametro')
set(handles.nombre_del_objeto,'paarametro','valor')
handles = Manejar (Manejador de datos)
ESTRUCTURAS DE CONTROL
SENTENCIA IF
La estructura bsica para la bifurcacin es el if... then... else... end. En MatLab, se escribe
if <condicion>
<acciones a realizar por respuesta afirmativa>
else
<acciones a realizar por respuesta negativa>
end
if <condicion>
<acciones a realizar por respuesta afirmativa>
elseif <condicion>
<acciones a realizar por respuesta afirmativa>
else
<acciones a realizar por respuesta negativa de todas las anteriores>
end
A=2;
B=5:
if A==B
disp('A=B')
elseif A>B
disp('A es mayor que B')
else
disp('A es menor que B')
end
HELPDLG
Este comando crea y visualiza un cuadro de ayuda
helpdlg('No se olvide de ingresar los tres lados del triangulo antes de
escoger las opciones. En el caso de que no sea un triangulo ingrese
nuevos valores','AYUDA');
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
CLOSE
Este comando sirve para cerrar un figure o salir de un interfaz
close(TRIANGULO)
MSGBOX
Crea y abre una caja de mensaje
msgbox('Los datos ingresados no corresponden a un Triangulo','MENSAJE')
VALORES, OPERADORES Y EXPRESIONES BOOLEANAS
Las valores booleanos, en general , solo pueden tomar dos valores: Verdadero o
Falso (True y False en los lenguaj es de programacin).
MatLab no maneja los valores True y False para este tipo de expresi ones, sino que
representa a True con un 1, y a False con un O.
Los operadores de comparacin son operadores que devuelven un valor booleano.
Estos operadores se listan a continuacin:
<: Menor que
>: Mayor que
<=: Menor o igual que
>=: Mayor o igual que
~=: Distint o que
==: Igual que
Existen tambin los operadores que trabaj an directamente sobre los valores
booleanos, para devolver otro valor booleano. Estos se conocen como operadores
booleanos, y aparecen a continuacin:
&: 'y' lgico (And)
|: '' lgico (Or)
~: 'no' lgico (Not)
PROGRAMACIN DIGITAL IC-244 LABORATORIO N 01
coamcycesh@gmail.com 01-5294870
A B A And B
0 0 0
0 1 0
1 0 0
1 1 1
Tabla 1: Tabla de verdad AND
B A Or B
0 0 0
0 1 1
1 0 1
1 1 1
Tabla 2: Tabla de verdad OR
>> 23>22
ans =
1
>> 23<25
ans =
1
>> (23>22)&(23<25)
ans =
1
El trabajo es individual y debern entregar en formato digital e impreso
indicando todo el proceso de elaboracin del programa el 01/06/2009

Anda mungkin juga menyukai