Академический Документы
Профессиональный Документы
Культура Документы
Aplicaciones Tecnolgicas
MIS 501
Profesor:
Norberto J. Rojas M.
Asignacin No. 2
Introduccin a la programacin en Matlab
Por
Fecha de entrega
RESUMEN
En el presente informe se presenta, la solucin a los tres problemas correspondientes a la
asignacin 02. En esta asignacin se muestra el uso de comandos que permiten discriminar un
valor segn un rango preestablecido, esto es si pertenece a un conjunto de datos se proceder de
acuerdo a un conjunto de instrucciones. Asimismo se presentan las salidas consistentes con Matlab
de acuerdo a las instrucciones requeridas. En el problema 01 se realiza un programa que calcula el
valor del factor b1. Se recuerda que este factor se utiliza para calcular la profundidad del bloque
equivalente de esfuerzos del hormign en compresin segn Whitney. Este factor es funcin de la
resistencia en compresin del concreto. En el problema 02 se le realiza un programa en que el usuario
pueda seleccionar un tamao de barra y el programa entrega el dimetro y el rea de la barra. En el
problema 03 se hace un programa que calcule la capacidad nominal en flexin de una viga simplemente
reforzada.
1
TABLA DE CONTENIDO
RESUMEN..................................................................................................................................... 1
1. INTRODUCCION ................................................................................................................. 3
1) SEUDOCODIGO ................................................................................................................. 5
9. CONCLUSIONES ............................................................................................................... 16
ANEXO A: ................................................................................................................................... 16
2
1. INTRODUCCION
En esta asignacin se muestra el uso de comandos que permiten discriminar un valor segn un
rango preestablecido, esto es si pertenece a un conjunto de datos se proceder de acuerdo a un
conjunto de instrucciones. Asimismo se presentan las salidas consistentes con Matlab de acuerdo
a las instrucciones requeridas.
2. OBJETIVO GENERAL
Aplicar los comandos de MATLAB aprendidos durante la clase en la solucin de problemas.
3. OBJETIVOS ESPECIFICOS
Incluir los objetivos especficos de la asignacin:
a. Aplicar los comandos que permiten entrada de datos en Matlab resolviendo los
ejercicios de la asignacin 02.
b. Realizar clculos diversos en Matlab usando los comandos y la sintaxis apropiados.
c. Obtener salidas consistentes con el lenguaje de programacin Matlab.
3
4
5. MARCO TEORICO
Las frmulas a usar para solucionar los problemas de la asignacin 02 vienen dadas en la
misma descripcin de los problemas. Tambin se ha utilizado la teora dada por el profesor del
curso.
6. ESTRATEGIAS DE SOLUCION
1) SEUDOCODIGO
Problema 01.-
Problema 02.-
Problema 03.-
5
b: (base) en cm
h: (altura) en cm
num: cantidad de barras a usar
4. Calcular los parmetros siguientes:
d: (peralte efectivo) en cm;
a: (profundidad del bloque equivalente a compresin) en cm
As: (rea de acero) en cm2;
b1: (factor del bloque equivalente a compresin segn whiney);
ro: (cuanta);
romin1: (cuanta mnima);
rob: (cuanta);
romax: (cuanta mxima)
5. Decisin
Si ro >=romin1 y ro<=romax calcule MN (Momento nominal)
MN=As*fy*(d-a/2);
6
2) DIAGRAMA DE FLUJO
La secuencia que se usar es concordante con los seudocdigos especificados en 6.1.
Problema 01.-
Inicio
fc
V
175<=f c<=280 b1=0.85
b1
V b1=0.85-0.05(f c-280)/70>=0.65
f c>280
V
f c<175 Reingrese f c fin
7
Problema 02.-
Inicio
fin
8
Problema 03.-
Inicio
n, m
d, de
d, de
A, Ae
A, Ae
f y: en kg/cm2
fy: en kg/cm2
r: (recubrimiento) en cm
b: (base) en cm
h: (altura) en cm
ro: (cuanta);
romin1: (cuanta mnima);
rob: (cuanta); V
MN=As*fy*(d-a/2)
fin
9
7. PROGRAMA DE MATLAB
Incluir los comandos que utiliz para elaborar el programa. Lo puede hacer en forma de lista. No
es necesario describir completamente como se utiliza el comando. Debe incluir el programa como
un anexo.
1. Asignacin de variables
a. str2num
b. get
c. handles
d. edit
e. string
2. Estructuras de Seleccin
a. if- end
b. switch case-otherwise-end
3. Presentacin de resultados en pantalla
a. set
b. handles
4. Otros comandos
a. pushbutton
b. function
c. clc
Problema 01.-
Ejemplo 01.-
10
Ejemplo 02.-
Ejemplo 03.-
11
Ejemplo 04.-
Problema 02.-
Ejemplo 01.-
12
Ejemplo 02.-
13
Problema 03.-
Ejemplo 01.-
14
Ejemplo 02.-
15
9. CONCLUSIONES
1. Los programas creados generan salidas consistentes con los comandos de Matlab y
la teora propuesta.
2. Fue posible programar los conceptos del anlisis estructural en Matlab debido a la
variedad de comandos propios que posee este software.
ANEXO A:
Problema 01.-
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Beta1_OpeningFcn, ...
'gui_OutputFcn', @Beta1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
handles.output = hObject;
guidata(hObject, handles);
varargout{1} = handles.output;
16
function edit1_CreateFcn(hObject, eventdata, handles)
fpc=str2num(get(handles.edit1,'string'));
set(handles.edit1,'string','');
set(handles.edit2,'string','');
Problema 02.-
17
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
handles.output = hObject;
guidata(hObject, handles);
18
function edit3_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
n=str2num(get(handles.edit1,'string'));
if n<=8
d=n/8;
end
if (n>8)
switch n
case {9}
d=1.128;
case {10}
d=1.27;
case {11}
d=1.41;
case {14}
d=1.693;
case {18}
d=2.257;
case {19}
d=2.337;
otherwise
d=0;
end
end
if (d~=0)
A1=pi*d^2/4;
d2=2.54*d;A2=pi*d2^2/4;
d3=25.4*d;A3=pi*d3^2/4;
set(handles.edit6,'string',A1);
set(handles.edit7,'string',A2);
set(handles.edit8,'string',A3);
end
19
function edit6_CreateFcn(hObject, eventdata, handles)
set(handles.edit1,'string','');
set(handles.edit3,'string','');
set(handles.edit4,'string','');
set(handles.edit5,'string','');
set(handles.edit6,'string','');
set(handles.edit7,'string','');
set(handles.edit8,'string','');
Problema 03.-
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Beta1_OpeningFcn, ...
'gui_OutputFcn', @Beta1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
20
handles.output = hObject;
guidata(hObject, handles);
varargout{1} = handles.output;
fpc=str2num(get(handles.edit1,'string'));
set(handles.edit1,'string','');
set(handles.edit2,'string','');
21