Utilizando las siguientes líneas de código se puede crear una calculadora básica en MATLAB, lo cual suele ser una de las tareas iniciales en el desarrollo de GUIs. Se ha prescindido del entorno de desarrollo (GUIDE) en este caso.
function calculadora
% Calculadora básica
% $ Por: Jorge De Los Santos $
% $ http://matlab-typ.blogspot.com $
% $ Rev. 1.0.0 $ $ Fecha: 02/01/14 $
figure('MenuBar','none','NumberTitle','off','Name','Calculadora',...
'position',[200 200 200 280],'resize','off');
centerfig(gcf);
p=uipanel(gcf,'units','pixels','position',[10 10 180 200]);
pantalla=uicontrol('style','text','string','',...
'position',[10 230 180 40],'HorizontalAlignment','right',...
'FontSize',20,'FontWeight','b','FontName','Courier');
% Botón AC (Limpiar)
uicontrol('style','push','string','AC','position',[60 195 40 15],...
'backgroundcolor','r','callback',@acFcn,'foregroundcolor','w',...
'fontweight','b');
% Botón OFF (Apagar)
uicontrol('style','push','string','OFF','position',[100 195 40 15],...
'backgroundcolor','b','callback',@offFcn,'foregroundcolor','w',...
'fontweight','b');
% Controles numéricos y operadores
uicontrol(p,'style','push','string','0','position',[8 8 35 35]);
uicontrol(p,'style','push','string','.','position',[51 8 35 35]);
uicontrol(p,'style','push','string','=','position',[94 8 35 35]);
uicontrol(p,'style','push','string','+','position',[137 8 35 35]);
uicontrol(p,'style','push','string','1','position',[8 51 35 35]);
uicontrol(p,'style','push','string','2','position',[51 51 35 35]);
uicontrol(p,'style','push','string','3','position',[94 51 35 35]);
uicontrol(p,'style','push','string','-','position',[137 51 35 35]);
uicontrol(p,'style','push','string','4','position',[8 94 35 35]);
uicontrol(p,'style','push','string','5','position',[51 94 35 35]);
uicontrol(p,'style','push','string','6','position',[94 94 35 35]);
uicontrol(p,'style','push','string','*','position',[137 94 35 35]);
uicontrol(p,'style','push','string','7','position',[8 137 35 35]);
uicontrol(p,'style','push','string','8','position',[51 137 35 35]);
uicontrol(p,'style','push','string','9','position',[94 137 35 35]);
uicontrol(p,'style','push','string','/','position',[137 137 35 35]);
set(findobj('parent',p),'callback',@calcFcn,'FontSize',14);
% Guarda y evalua los cálculos
function calcFcn(src,~)
global cnum ceval
% cnum - Guarda cadena numérica
% ceval - Guarda cadena a evaluar
pres=get(src,'str');
if ~any(strcmp(pres,{'*','/','+','-','='}))
cnum=[cnum,pres];
set(pantalla,'str',cnum);
elseifany(strcmp(pres,{'+','-','*','/'}))
ceval=[ceval,cnum,pres];
cnum='';
elseif strcmp(pres,'=')
ceval=[ceval,cnum];
set(pantalla,'str',str2num(ceval));
ceval=get(pantalla,'str');
cnum='';
end
end
% Borra pantalla y restaura variables
function acFcn(~,~)
global cnum ceval
cnum='';
ceval='';
set(pantalla,'str','0');
end
% "Apaga" la calculadora
function offFcn(~,~)
clearvars('-global','cnum','ceval');
set(pantalla,'str','');
end
end
muy xd y todo pero no funciona
ResponderBorrarcierto xd
Borrarputo
Borrarlo escribio un tal axel alv
ResponderBorrar