0% encontró este documento útil (0 votos)
164 vistas61 páginas

Practica01 Progavan2

Este documento presenta una práctica de programación avanzada en MATLAB. Incluye cuatro secciones: 1) Objetivos y materiales, 2) Fundamentos teóricos sobre la historia y evolución de la programación, 3) Análisis de cómo la programación puede relacionarse con la sociedad humana, y 4) Desarrollo de algoritmos y interfaces gráficas de usuario en MATLAB para resolver problemas como encontrar los primeros números primos. El estudiante debe diseñar soluciones originales sin usar funciones de MATLAB que resuelven los problemas directamente, con el fin de

Cargado por

Exovago Martinez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • programación en medicina,
  • programación en sistemas opera…,
  • multiplicación de matrices,
  • programación en seguridad,
  • lenguajes de programación,
  • programación en robótica,
  • programación en software,
  • programación en animación,
  • educación en programación,
  • programación avanzada
0% encontró este documento útil (0 votos)
164 vistas61 páginas

Practica01 Progavan2

Este documento presenta una práctica de programación avanzada en MATLAB. Incluye cuatro secciones: 1) Objetivos y materiales, 2) Fundamentos teóricos sobre la historia y evolución de la programación, 3) Análisis de cómo la programación puede relacionarse con la sociedad humana, y 4) Desarrollo de algoritmos y interfaces gráficas de usuario en MATLAB para resolver problemas como encontrar los primeros números primos. El estudiante debe diseñar soluciones originales sin usar funciones de MATLAB que resuelven los problemas directamente, con el fin de

Cargado por

Exovago Martinez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • programación en medicina,
  • programación en sistemas opera…,
  • multiplicación de matrices,
  • programación en seguridad,
  • lenguajes de programación,
  • programación en robótica,
  • programación en software,
  • programación en animación,
  • educación en programación,
  • programación avanzada

UNIVERSIDAD TECNOLÓGICA

DE TORRÉON
MODELO DE PRORAMACIÓN AVANZADA

PRACTICA 1. “PROGRAMACIÓN AVANZADA EN MATLAB”


ALUMNO: GERARDO ALBERTO MARTÍNEZ ESPARZA
MATRIULA: 143136-7

TORREÓN COAH.
11/06719

0
Práctica No. 1. Programación avanzada en MATLAB
M. C. Joaquín Saucedo Barajas
Universidad Tecnológica de Torreón

1. Objetivo
Desarrollar aplicaciones de control mediante la implementación de algoritmos de control desarrollados en software de
programación.
Utilizar la programación avanzada en lenguaje estructurado.

Desarrollar interfaces gráficas de usuario utilizando lenguaje MATLAB.

2. Material y equipo
Computadora con software MATLAB.

3. Fundamento teórico
1. Realice una semblanza histórica de cómo ha ido desarrollándose la programación desde sus inicios hasta los tiempos actuales.

En sus inicios, la historia de la programación inicia desde el siglo XV con la construcción de una máquina de operaciones
básicas y raíces cuadradas a cargo de Gottfried Wilheml von Leibniz; Aunque en realidad la primera gran maquina que inspiro
la creación de las computadoras fue la maquina diferencial para el calculo de polinomios, empezada por Charles Babbage
(1793 – 1871) con el apoyo de Lady Ada Countess of Lovelance quien desarrollo el sistema de programación con tarjetas
perforadas (1815 – 1852.

Después Herman Hollerit desarrollo un sistema para automatizar la pesada tarea del censo.

Mas adelante, Alan Mathison Turing creo una maquina capaz de resolver problemas con aporte de lógica matemática a través
de una computadora con tubos de vacío.
Luego George Boole contribuyo al algebra binaria y a los sistemas de circuitos de computadora (álgebra booleana).

La primera computadora digital electrónica fue patentada por John Vincent Atanasoff.

Así poco a poco fue progresando el uso de las computadoras con Howard Aiken, John W. Mauchly Johan Ludwing von
Neumann, hasta que fue progresando poco a poco como hoy las conocemos. La programación esta vinculada a la evolución
de las computadoras, así como los distintos lenguajes de programación. Inicialmente se programaba con código binario, en
cadenas de unos y ceros, luego se creo el lenguaje ensamblador, aunque era lo mismo que programar en binario, al estar en
letras era más difícil recordar. Posteriormente aparecieron lenguajes de alto nivel, que en general utilizan palabras en inglés,
para dar órdenes a seguir para lo cual utilizan un proceso intermedio entre lenguaje maquina y el nuevo código llamado
código fuente, este proceso puede ser un compilador o interprete.

Un compilador lee todas las instrucciones y genera un resultado, un intérprete ejecuta y genera resultados línea a línea, en
cualquier caso, han aparecido nuevos lenguajes de programación, unos denominados estructurados y en la actualidad
lenguajes orientados a objetos y lenguajes orientados a eventos.

1
2. Analice y discuta de qué manera puede la programación relacionarse con las sociedades (la humanidad). Cuestione
afirmaciones como: La programación puede fortalecer los valores humanos, la programación puede ayudar a combatir la
pobreza, la programación puede contribuir a la paz mundial, etc. Escriba al menos 200 palabras.

La programación tienes sus pros y sus contras, por un lado, muchas personas utilizan sistemas de computo y conocimientos
en programación de los mismos, para realizar delitos como el trafico de drogas, trafico de armas, trafico de blancas, robo de
información personal, entre otros. Por lo cual esto nos lleva a preguntarnos si la humanidad hizo bien en realizar la creación
de estas tecnologías.

En su contraparte, también la programación y sistemas se computo tienen su lado bueno y muchas ventajas para la
humanidad. La tecnología nos ah conectado con seres queridos a pesar de la distancia, ha reforzado los valores de solidaridad,
empatía y concientización de muchas temáticas a través de redes sociales por medio de asociaciones. La programación ha
dado avances significantes en áreas como la medicina, Ingeniería, licenciatura, incluso en áreas como la educación. El
crecimiento y mejora de la humanidad es proporcional con el crecimiento tecnológico que ha transcurrido gracias al avance
de la programación, entre mayor avance tecnológico existe, las personas de bajos recursos tendrán mayores oportunidades
de acceder a servicios y productos que beneficien su vida en diferentes sectores; como el sector salud, educación, en el sector
laboral, en el sector de comunicaciones, entre otros.

3. Realice un ensayo de al menos una cuartilla de extensión en dónde discuta, analice, proponga y/o especule cómo puede
evolucionar la programación en los próximos años.

La programación ah evolucionado mucho al pasar los años y poco a poco lo sigue haciendo, se siguen teniendo avances
significativos en temas de control, automatización y procesamiento de señales con hardware, así como grandes avances con
software.

Quiero dividir este ensayo en 4 partes que me parecen importantes mencionar, ya que es a donde se dirige el enfoque de la
programación en la actualidad. Estos temas son los siguientes:

AR Y VR

Desde los años 50 inicio el principio de este concepto, a través de Antonín Artaud, pero sin duda la primera referencia
moderna mas acertada se data desde 1935 con Stanley G. Weinbaum. La realidad virtual eh tenido un gran avance
tecnológico desde ese entonces, permitiéndonos crear nuevos mundos e interactuar con ellos a través de la programación.
Se han desarrollado dispositivos como el oculus rift que nos permite programar entornos virtuales para videojuegos, películas,
diseño de estructuras, productos y construcciones. La realidad virtual tiene una alta gama de utilidades.

La programación enfocada a la realidad aumentada también tiene un gran futuro, ya que empresas la están utilizando para
diseñar simulaciones para operar maquinaria, conducir autos, cursos de capacitación, entre otros, ya que es menos riesgoso
y menos costoso aprender en una simulación con realidad aumentada que en la realidad.

TECNOLOGIA 7D

Otra rama en la que quiero hacer énfasis es en el área de animación y efectos visuales. Actualmente existen dos zoológicos
holográficos en el mundo, en Dubái y en Japón. Esta tecnología consiste en una serie de espejos y hologramas, los cuales son
atravesados por un láser, el cual se intercepta con otros reflejos de el mismo en un punto en el espacio. Así programando
secuencias, las cuales les permiten jugar con las luces dinámicas y producir un efecto de realidad aumentada sin utilizar
ningún visor o lentes de R.A. Esta tecnología también está trabajándose para la industria cinematográfica.

2
INDUSTRIA 4.0

Esta industria consiste en la intercomunicación de todas las cosas, atreves de internet (El internet de las cosas). El beneficio
de esta tecnología esta en el manejo de la información instantánea, automatización de procesos administrativos, semi-
automatización de procesos de mantenimiento, verificación del estado de sistemas a través de cualquier dispositivo móvil,
laptop, pc o tableta electrónica. Agiliza todos los procesos.

INTELIGENCIA ARTIFICIAL

La inteligencia artificial podría definirse como la inteligencia de las maquinas y que el ser humano intenta dotar de dicha
inteligencia a los sistemas para que puedan ser capaces de imitar o superar las capacidades mentales del ser humano como
lo son razonamiento, compresión, imaginación, reconocimiento, creatividad hasta poder llegar a reproducir emociones.

Podría definirse también inteligencia artificial como una rama de la computación que tiende a estudiar el hardware y
software que se requiere para simular la comprensión y comportamiento humano. En base a esta definición se ah intentado
darle múltiples aplicaciones de las cuales podemos listarlas en las siguientes ramas:

Robótica: con el fin de producir nuevos tipos de máquinas útiles


Medicina: en la interpretación de imágenes médicas y diagnósticos.
Ingeniería: en sistemas inteligentes de control, en ingeniería de software desde la verificación, depuración y monitoreo de
software.
Educación: en sistemas de tutores inteligentes donde podría detectarse vacíos de conocimiento en el estudiante.

3
4. Desarrollo y procedimiento
Para cada uno de los siguientes problemas realizar y mostrar lo siguiente: a)El algoritmo de cómo se plantea realizar la solución
del problema, b)La carátula o diseño de la ventana de la Interfaz Gráfica de Usuario (G. U. I.), c) El código fuente del programa (de
cada objeto de la G. U. I.) , d) Las ejecuciones que demuestren el correcto funcionamiento del programa, e) En ninguno de los casos
se pueden utilizar las funciones de MATLAB que resuelven directamente los problemas, ya que el objetivo de estos problemas es
que el alumno los resuelva utilizando su capacidad de inventiva y de pensamiento lógico (y de preferencia incrementarlos) en el
desarrollo de las soluciones.

1. Escribir los N primeros números primos.

a) Algoritmo b) G.U.I.

C) Código fuente D)

4
function pushbutton1_Callback(hObject, eventdata, handles)
global n i c v
n = get(handles.edit1,'String');
n = str2double(n);

i=1;
c=1;
v=(1:n);
while c<=n
k=1;
j=0;
while k<=i
if mod(i,k)==0
j=j+1;
end
k=k+1;
end
if j==2
v(c)=i;
c=c+1;
end
i=i+1;
end
v = num2str(v);
set(handles.text2,'visible','on');
set(handles.text2,'String','on');
set(handles.text2,'String',v);

2. Escribir los primeros N elementos de la secuencia: 0,1,3,6,10,15,21,28, ...

5
function pushbutton1_Callback(hObject,
eventdata, handles)
global n c v
n = get(handles.edit1,'String');
n = str2double(n);
c = 0;
v =(0:n);
while c<n
i = (c*(c+1))/2;
v(c+1)=i;
c=c+1;
end
v = num2str(v);
set(handles.text2,'visible','on');
set(handles.text2,'String','on');
set(handles.text2,'String',v);

3. Resolver la ecuación cuadrática. El resultado debe incluir un mensaje con el tipo de respuesta obtenida.

6
7
8
function pushbutton1_Callback(hObject, function pushbutton2_Callback(hObject,
eventdata, handles) eventdata, handles)
% hObject handle to pushbutton1 (see GCBO) % hObject handle to pushbutton2 (see
% eventdata reserved - to be defined in edit1 GCBO)
future version of MATLAB % eventdata reserved - to be defined in
% handles structure with handles and user a future version of MATLAB
data (see GUIDATA) % handles structure with handles and
global a b c x y z user data (see GUIDATA)
set(handles.edit1,'String',' ');
a = get(handles.edit1,'String'); set(handles.edit2,'String',' ');
a = str2double(a); set(handles.edit3,'String',' ');
b = get(handles.edit2,'String'); set(handles.text4,'String',' ');
b = str2double(b); set(handles.text5,'String',' ');
c = get(handles.edit3,'String'); set(handles.text6,'String',' ');
c = str2double(c);
x = (b^2)-(4*a*c);
if x < 0
y = (-b + (x^(1/2)))/(2*a);
z = (-b - (x^(1/2)))/(2*a);
y = num2str(y);
z = num2str(z);
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
set(handles.text6,'Visible','on');
set(handles.text5,'String',y);
set(handles.text6,'String',z);
set(handles.text4,'String','La solucion
es imaginaria (i)');
elseif x == 0
y = (-b + (x^(1/2)))/(2*a);
z = (-b - (x^(1/2)))/(2*a);
y = num2str(y);
z = num2str(z);
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
set(handles.text6,'Visible','on');
set(handles.text5,'String',y);
set(handles.text6,'String',z);
set(handles.text4,'String','La Solución
es Igual para ambas incógnitas, por lo tanto
tiene 1 raíz real.');
elseif x > 0
y = (-b + (x^(1/2)))/(2*a);
z = (-b - (x^(1/2)))/(2*a);
y = num2str(y);
z = num2str(z);
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
set(handles.text6,'Visible','on');
set(handles.text5,'String',y);
set(handles.text6,'String',z);
set(handles.text4,'String','La Solución
tiene dos cantidades posibles, por lo tanto
tiene 2 raíces reales.');

end

9
4. Determinar el MCM (mínimo común múltiplo) de cualquier cantidad de números.

10
function pushbutton1_Callback(hObject,
eventdata, handles)
global cnt n v o c p num2
cnt = 1;
o = 1;
v=(1:p);
c = 1;
msg = ['Ingresa la cantidad de datos para
determinar el MCM',' '];
n = inputdlg(msg, 'Ingresar');
n = str2double(n);
while o <= n
msg = ['Ingresa el dato ',num2str(cnt),'
para determinar MCM'];
num = inputdlg(msg, 'Ingresar');
num = str2double(num);
v(c) = num;
c = c + 1;
o = o + 1;
end
%% metodo burbuja para ordenar
num2 = length(v);
for j = 1 : 1 : num2 - 1
for i = 1 : 1 : num2-1
if v(i)>v(i+1)
temp= v(i);
v(i)=v(i+1);
v(i+1) = temp;
end
end
end
i = 1;
j = 1;
set(handles.text2,'Visible','on');
v3{1,1}='Los numeros que ingresaste son:
';
v3{2,1}=v;
set(handles.text2,'String',v3);
p = primes(length(v));
vector2 = v;

11
12
5. Determinar el MCD (máximo común divisor) de cualquier cantidad de números.

13
14
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global n v o c p num2 modfila
%cnt = 1;
o = 1;
v=(1:p);
c = 1;
msg = ['Ingresa la cantidad de datos para determinar el MCM',' '];
n = inputdlg(msg, 'Ingresar');

15
n = str2double(n);
while o <= n
msg = ['Ingresa el dato ',num2str(c),' para determinar MCM'];
num = inputdlg(msg, 'Ingresar');
num = str2double(num);
v(c) = num;
c = c + 1;
o = o + 1;
end
%% metodo burbuja para ordenar
num2 = length(v);
for j = 1 : 1 : num2 - 1
for i = 1 : 1 : num2-1
if v(i)>v(i+1)
temp= v(i);
v(i)=v(i+1);
v(i+1) = temp;
end
end
end
i = 1;
j = 1;
set(handles.text2,'Visible','on');
v3{1,1}='Los numeros que ingresaste son: ';
v3{2,1}=v;
set(handles.text2,'String',v3);
p = primes(max(v));
vector2 = v;
comuncolum = ones(1);
nvafila = zeros(1,n);
modfila = 1;

while sum(nvafila) ~= n
modfila = mod(vector2,p(1,i));
if sum(modfila)==0
comuncolum(j,1)=p(1,i);
j = j + 1;
end
for k = 1:n
if modfila(1,k)==0
nvafila(1,k) = vector2(1,k)/p(1,i);
else
nvafila(1,k) = vector2(1,k);
end
end
if sum(nvafila) ~= sum(vector2)
vector2 = nvafila;
else
i = i+1;
end
end
mcd = prod(comuncolum);
v3{4,1}= mcd;
v3{3,1}='El maximo comun divisor es:';
set(handles.text2,'String',v3);
clear all;
clc;

16
17
6. Convertir cantidades entre las bases decimal, binario y hexadecimal. Se tendrán las siguientes opciones: a) De decimal a

binario.

b) De decimal a hexadecimal.
c) De binario a decimal.
d) De binario a hexadecimal.
e) De hexadecimal a binario.
f) ) De hexadecimal a decimal.

18
19
20
21
22
23
24
25
26
function radiobutton1_Callback(hObject,
eventdata, handles) if n2 == 1
global n1; set(handles.radiobutton1,'Visible','off');
n1= n1+1; set(handles.radiobutton3,'Visible','off');
if n1 == 2 set(handles.radiobutton4,'Visible','off');
n1 = 0; set(handles.radiobutton5,'Visible','off');
end set(handles.radiobutton6,'Visible','off');
if n1 == 1 elseif n2 == 0
set(handles.radiobutton2,'Visible','off'); set(handles.radiobutton1,'Visible','on');
set(handles.radiobutton3,'Visible','off'); set(handles.radiobutton3,'Visible','on');
set(handles.radiobutton4,'Visible','off'); set(handles.radiobutton4,'Visible','on');
set(handles.radiobutton5,'Visible','off'); set(handles.radiobutton5,'Visible','on');
set(handles.radiobutton6,'Visible','off'); set(handles.radiobutton6,'Visible','on');
elseif n1 == 0 end
set(handles.radiobutton2,'Visible','on'); % --- Executes on button press in radiobutton3.
set(handles.radiobutton3,'Visible','on'); function radiobutton3_Callback(hObject,
set(handles.radiobutton4,'Visible','on'); eventdata, handles)
set(handles.radiobutton5,'Visible','on'); % hObject handle to radiobutton3 (see GCBO)
set(handles.radiobutton6,'Visible','on'); % eventdata reserved - to be defined in a future
end version of MATLAB
% --- Executes on button press in radiobutton2. % handles structure with handles and user data
function radiobutton2_Callback(hObject, (see GUIDATA)
eventdata, handles)
% hObject handle to radiobutton2 (see GCBO) % Hint: get(hObject,'Value') returns toggle state of
% eventdata reserved - to be defined in a future radiobutton3
version of MATLAB global n3;
% handles structure with handles and user data n3= n3+1;
(see GUIDATA) if n3 == 2
n3 = 0;
% Hint: get(hObject,'Value') returns toggle state of end
radiobutton2
global n2;
n2= n2+1;
if n2 == 2
n2 = 0;
end

27
if n3 == 1 if n4 == 1
set(handles.radiobutton1,'Visible','off'); set(handles.radiobutton1,'Visible','off');
set(handles.radiobutton2,'Visible','off'); set(handles.radiobutton2,'Visible','off');
set(handles.radiobutton4,'Visible','off'); set(handles.radiobutton3,'Visible','off');
set(handles.radiobutton5,'Visible','off'); set(handles.radiobutton5,'Visible','off');
set(handles.radiobutton6,'Visible','off'); set(handles.radiobutton6,'Visible','off');
elseif n3 == 0 elseif n4 == 0
set(handles.radiobutton1,'Visible','on'); set(handles.radiobutton1,'Visible','on');
set(handles.radiobutton2,'Visible','on'); set(handles.radiobutton2,'Visible','on');
set(handles.radiobutton4,'Visible','on'); set(handles.radiobutton3,'Visible','on');
set(handles.radiobutton5,'Visible','on'); set(handles.radiobutton5,'Visible','on');
set(handles.radiobutton6,'Visible','on'); set(handles.radiobutton6,'Visible','on');
end end
% --- Executes on button press in radiobutton4.
function radiobutton4_Callback(hObject, % --- Executes on button press in radiobutton5.
eventdata, handles) function radiobutton5_Callback(hObject,
% hObject handle to radiobutton4 (see GCBO) eventdata, handles)
% eventdata reserved - to be defined in a future % hObject handle to radiobutton5 (see GCBO)
version of MATLAB % eventdata reserved - to be defined in a future
% handles structure with handles and user data version of MATLAB
(see GUIDATA) % handles structure with handles and user data
(see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of
radiobutton4 % Hint: get(hObject,'Value') returns toggle state of
global n4; radiobutton5
n4= n4+1; global n5;
if n4 == 2
n4 = 0;
end

28
n5= n5+1;
if n5 == 2 if n6 == 1
n5 = 0; set(handles.radiobutton1,'Visible','off');
end set(handles.radiobutton2,'Visible','off');
if n5 == 1 set(handles.radiobutton3,'Visible','off');
set(handles.radiobutton1,'Visible','off'); set(handles.radiobutton4,'Visible','off');
set(handles.radiobutton2,'Visible','off'); set(handles.radiobutton5,'Visible','off');
set(handles.radiobutton3,'Visible','off'); elseif n6 == 0
set(handles.radiobutton4,'Visible','off'); set(handles.radiobutton1,'Visible','on');
set(handles.radiobutton6,'Visible','off'); set(handles.radiobutton2,'Visible','on');
elseif n5 == 0 set(handles.radiobutton3,'Visible','on');
set(handles.radiobutton1,'Visible','on'); set(handles.radiobutton4,'Visible','on');
set(handles.radiobutton2,'Visible','on'); set(handles.radiobutton5,'Visible','on');
set(handles.radiobutton3,'Visible','on'); end
set(handles.radiobutton4,'Visible','on');
set(handles.radiobutton6,'Visible','on');
end
% --- Executes on button press in radiobutton6.
function radiobutton6_Callback(hObject,
eventdata, handles)
% hObject handle to radiobutton6 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
% handles structure with handles and user data
(see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of


radiobutton6
global n6;
n6= n6+1;
if n6 == 2
n6 = 0;
end

29
if n2==1 if n3==1
% --- Executes on button a=str2double(get(handles.edit1,'String')); dato=str2double(get(handles.edit1,'String'));
press in pushbutton1. x=0; a=num2str(dato);
function y=0; b=length(a);
pushbutton1_Callback(hObje x=a; for (k=[Link])
ct, eventdata, handles) cnt=1; Num(1,k)=str2num(a(k));
% hObject handle to NumD(1,1)=a;
pushbutton1 (see GCBO) end
% eventdata reserved - to be for(k=[Link]) %Invertimos los numeros del Vector
defined in a future version of cnt=cnt+1; k=1;
MATLAB y=a; e=b;
% handles structure with y=floor(x/16); while k<e
handles and user data (see NumD(1,cnt)=y; aux=Num(1,k);
GUIDATA) x=x/16; Num(1,k)=Num(1,e);
global n1 n2 n3 n4 n5 n6 if(y==0) Num(1,e)=aux;
set(handles.text1,'String',n1); break k=k+1;
if n1==1 end e=e-1;
end end
a=str2double(get([Link] %Invertimos los numeros del Vector Decimal=0;
t1,'String')); k=1; Mul=1;
x=0; e=cnt; y=0;
y=0; while k<e for(k=1:b)
x=a; aux=NumD(1,k); if(Num(1,k)==1)
cnt=1; NumD(1,k)=NumD(1,e); y=1*Mul;
NumD(1,1)=a; NumD(1,e)=aux; elseif(Num(1,k)==0)
for k=[Link] k=k+1; y=0*Mul;
cnt=cnt+1; e=e-1; end
y=a; end Mul=Mul*2;
y=floor(x/2); for(k=[Link]nt) lista2(1,k)=y;
NumD(1,cnt)=y; if(mod(NumD(1,k),16)==1) end
x=x/2; y='1'; Decimal=sum(lista2);
if(y==1) elseif(mod(NumD(1,k),16)==2) set(handles.text1,'String',Decimal);
break y='2';
end elseif(mod(NumD(1,k),16)==3)
end y='3';
end
elseif(mod(NumD(1,k),16)==4)
%Invertimos los numeros y='4';
del Vector elseif(mod(NumD(1,k),16)==5) if n4==1
k=1; y='5'; op=str2double(get(handles.edit1,'String'));
e=cnt; elseif(mod(NumD(1,k),16)==6) a=num2str(op);
while k<e y='6'; b=length(a);
aux=NumD(1,k); elseif(mod(NumD(1,k),16)==7) for (k=[Link])
y='7'; Num(1,k)=str2num(a(k));
NumD(1,k)=NumD(1,e); elseif(mod(NumD(1,k),16)==8)
NumD(1,e)=aux; y='8'; end
k=k+1; elseif(mod(NumD(1,k),16)==9) %Invertimos los numeros del Vector
e=e-1; y='9'; k=1;
end elseif(mod(NumD(1,k),16)==10) e=b;
for(k=[Link]nt) y='A'; while k<e
elseif(mod(NumD(1,k),16)==11)
if(mod(NumD(1,k),2)==1) y='B';
y='1'; elseif(mod(NumD(1,k),16)==12)
y='C';
elseif(mod(NumD(1,k),2)==0) elseif(mod(NumD(1,k),16)==13)
y='0'; y='D';
end elseif(mod(NumD(1,k),16)==14)
bin(1,k)=y; y='E';
end elseif(mod(NumD(1,k),16)==15)
set(handles.text1,'String',bin); y='F';
end elseif(mod(NumD(1,k),16)==0)
y='0';
end
Hexa(1,k)=y;
end
set(handles.text1,'String',Hexa);
end

30
aux=Num(1,k);
Num(1,k)=Num(1,e);
Num(1,e)=aux; for(k=[Link]nt) if n5==1
k=k+1; op=get(handles.edit1,'String');
e=e-1; if(mod(NumD(1,k),16)==1) a=num2str(op);
end y='1'; b=length(op);
Decimal=0; elseif(mod(NumD(1,k),16)==2) for (k=[Link])
Mul=1; y='2'; NumS(k)=cellstr(a(k));
y=0; elseif(mod(NumD(1,k),16)==3) end
y='3'; %Invertimos los numeros del Vector
for(k=1:b) elseif(mod(NumD(1,k),16)==4) k=1;
if(Num(1,k)==1) y='4'; e=b;
y=1*Mul; elseif(mod(NumD(1,k),16)==5) while k<e
elseif(Num(1,k)==0) y='5'; aux=NumS(1,k);
y=0*Mul; elseif(mod(NumD(1,k),16)==6) NumS(1,k)=NumS(1,e);
end y='6'; NumS(1,e)=aux;
Mul=Mul*2; elseif(mod(NumD(1,k),16)==7) k=k+1;
lista2(1,k)=y; y='7'; e=e-1;
end elseif(mod(NumD(1,k),16)==8) end
y='8'; for(k=[Link])
Decimal=sum(lista2); elseif(mod(NumD(1,k),16)==9) if(NumS{1,k}=='a'||NumS{1,k}=='A')
y='9'; NumS{1,k}='10';
x=0; elseif(mod(NumD(1,k),16)==10) elseif(NumS{1,k}=='b'||NumS{1,k}=='B')
y=0; y='A'; NumS{1,k}='11';
x=Decimal; elseif(mod(NumD(1,k),16)==11) elseif(NumS{1,k}=='c'||NumS{1,k}=='C')
cnt=1; y='B'; NumS{1,k}='12';
NumD(1,1)=Decimal; elseif(mod(NumD(1,k),16)==12) elseif(NumS{1,k}=='d'||NumS{1,k}=='D')
y='C'; NumS{1,k}='13';
for(k=[Link]) elseif(mod(NumD(1,k),16)==13) elseif(NumS{1,k}=='e'||NumS{1,k}=='E')
cnt=cnt+1; y='D'; NumS{1,k}='14';
y=Decimal; elseif(mod(NumD(1,k),16)==14) elseif(NumS{1,k}=='f'||NumS{1,k}=='F')
y=floor(x/16); y='E'; NumS{1,k}='15';
NumD(1,cnt)=y; elseif(mod(NumD(1,k),16)==15) end
x=x/16; y='F'; end
if(y==0) elseif(mod(NumD(1,k),16)==0) Decimal=0;
break y='0'; Mul=1;
end end y=0;
end NH(1,k)=y;
end for (k=[Link])
%Invertimos los numeros del Vector set(handles.text1,'String',NH); NumN(k)=str2double(NumS(k));
k=1; end end
e=cnt;
while k<e
aux=NumD(1,k);
NumD(1,k)=NumD(1,e);
NumD(1,e)=aux;
k=k+1;
e=e-1;
end

31
for(k=1:b) %Invertimos los numeros del Vector if n6==1
if(NumN(1,k)==1) k=1; dato=(get(handles.edit1,'String'));
y=1*Mul; e=cnt; a=num2str(dato);
elseif(NumN(1,k)==2) while k<e b=length(dato);
y=2*Mul; aux=NumD(1,k); for (k=[Link])
elseif(NumN(1,k)==3) NumD(1,k)=NumD(1,e); NumS(k)=cellstr(a(k));
y=3*Mul; NumD(1,e)=aux; end
elseif(NumN(1,k)==4) k=k+1; %Invertimos los numeros del Vector
y=4*Mul; e=e-1; k=1;
elseif(NumN(1,k)==5) end e=b;
y=5*Mul; for(k=[Link]nt) while k<e
elseif(NumN(1,k)==6) aux=NumS(1,k);
y=6*Mul; if(mod(NumD(1,k),2)==1) NumS(1,k)=NumS(1,e);
elseif(NumN(1,k)==7) y='1'; NumS(1,e)=aux;
y=7*Mul; elseif(mod(NumD(1,k),2)==0) k=k+1;
elseif(NumN(1,k)==8) y='0'; e=e-1;
y=8*Mul; end end
elseif(NumN(1,k)==9) bin(1,k)=y; for(k=[Link])
y=9*Mul; end if(NumS{1,k}=='a'||NumS{1,k}=='A')
elseif(NumN(1,k)==10) set(handles.text1,'String',bin); NumS{1,k}='10';
y=10*Mul; end
elseif(NumN(1,k)==11) elseif(NumS{1,k}=='b'||NumS{1,k}=='B')
y=11*Mul; NumS{1,k}='11';
elseif(NumN(1,k)==12)
y=12*Mul; elseif(NumS{1,k}=='c'||NumS{1,k}=='C')
elseif(NumN(1,k)==13) NumS{1,k}='12';
y=13*Mul;
elseif(NumN(1,k)==14) elseif(NumS{1,k}=='d'||NumS{1,k}=='D')
y=14*Mul; NumS{1,k}='13';
elseif(NumN(1,k)==15)
y=15*Mul; elseif(NumS{1,k}=='e'||NumS{1,k}=='E')
elseif(NumN(1,k)==0) NumS{1,k}='14';
y=0*Mul;
end elseif(NumS{1,k}=='f'||NumS{1,k}=='F')
Mul=Mul*16; NumS{1,k}='15';
lista2(1,k)=y; end
end end
Decimal=sum(lista2); Decimal=0;
x=0; Mul=1;
y=0; y=0;
x=Decimal;
cnt=1; for (k=[Link])
NumD(1,1)=Decimal; NumN(k)=str2double(NumS(k));
for(k=[Link]) End
cnt=cnt+1;
y=Decimal;
y=floor(x/2);
NumD(1,cnt)=y;
x=x/2;
if(y==1)
break
end
end

32
for(k=1:b)
if(NumN(1,k)==1)
y=1*Mul;
elseif(NumN(1,k)==2)
y=2*Mul;
elseif(NumN(1,k)==3)
y=3*Mul;
elseif(NumN(1,k)==4)
y=4*Mul;
elseif(NumN(1,k)==5)
y=5*Mul;
elseif(NumN(1,k)==6)
y=6*Mul;
elseif(NumN(1,k)==7)
y=7*Mul;
elseif(NumN(1,k)==8)
y=8*Mul;
elseif(NumN(1,k)==9)
y=9*Mul;
elseif(NumN(1,k)==10)
y=10*Mul;
elseif(NumN(1,k)==11)
y=11*Mul;
elseif(NumN(1,k)==12)
y=12*Mul;
elseif(NumN(1,k)==13)
y=13*Mul;
elseif(NumN(1,k)==14)
y=14*Mul;
elseif(NumN(1,k)==15)
y=15*Mul;
elseif(NumN(1,k)==0)
y=0*Mul;
end
Mul=Mul*16;
lista2(1,k)=y;
end

Decimal=sum(lista2);
set(handles.text1,'String',Decimal);

end

33
34
7. Multiplicar dos matrices de cualquier
dimensión. El programa debe estar
codificado de tal manera que sepida al
usuario que ingrese cada uno de los
elementos de las matrices
individualmente. Si la operación no
puede efectuarse, se mostrará un
mensaje.

35
36
function pushbutton1_Callback(hObject, while cnt1 <= f
eventdata, handles) while cnt4 <= c2
global m m2 m3 f c f2 c2 cnt1 cnt2 cnt3 cnt4 j i while cnt2 <= c
aux aux2 aux3 aux = m(cnt1,cnt2);
msg = [' Ingresa numero de filas de Matriz 1',' ']; aux2 = m2(cnt3,cnt4);
f = inputdlg(msg, 'Ingresar'); aux3 = aux*aux2;
f = str2double(f); aux4 = aux4 + aux3;
msg = [' Ingresa numero de columnas de Matriz cnt2 = cnt2 + 1;
1',' ']; cnt3 = cnt3 + 1;
c = inputdlg(msg, 'Ingresar'); end
c = str2double(c); m3(i,j)=aux4;
f2 = c; cnt2=1;
c2 = f; cnt3=1;
cnt1=1; cnt4=cnt4+1;
cnt2=1; j=j+1;
if c == f2 && f == c2 aux = 0;
msg = [' Ingresa Datos de matriz 1',' ']; aux2 = 0;
while cnt1 <= f aux3 = 0;
while cnt2 <= c aux4 = 0;
msg = ['Ingresa el dato de fila',' end
',num2str(cnt1),'columna ',' ',num2str(cnt2)]; cnt2=1;
dat = inputdlg(msg, 'Ingresar'); cnt3=1;
dat = str2double(dat); cnt4=1;
m(cnt1,cnt2)= dat; i=i+1;
cnt2 = cnt2 + 1; j=1;
end cnt1=cnt1+1;
cnt1 = cnt1 + 1; aux = 0;
cnt2 = 1; aux2 = 0;
end aux3 = 0;
cnt1 = 1; aux4 = 0;
cnt2 = 1; end
msg = [' Ingresa Datos de matriz 2',' ']; m=num2str(m);
while cnt1 <= f2 set(handles.text2,'String',m);
while cnt2 <= c2 m2=num2str(m2);
msg = ['Ingresa el dato de fila',' set(handles.text3,'String',m2);
',num2str(cnt1),'columna ',' ',num2str(cnt2)];
dat = inputdlg(msg, 'Ingresar'); m3=num2str(m3);
dat = str2double(dat); set(handles.text5,'String',m3);
m2(cnt1,cnt2)= dat;
cnt2 = cnt2 + 1; clear all;
end clc;
cnt1 = cnt1 + 1;
cnt2 = 1;
end
end
cnt1=1;
cnt2=1;
cnt3=1;
cnt4=1;
i=1;
j=1;
aux=0;
aux2=0;
aux4=0;

37
38
8. Escribir un número con palabras. Por ejemplo, si el usuario ingresa 25,
el programa responde con veinticinco.

39
40
41
function pushbutton1_Callback(hObject, eventdata, handles) v{1,4}='dieci';
global cenmillon decmillon millon cenmil decmil mil cen dec u end
n1 n2 n3 n4 n5 n6 n7 n8 n9 if n4 == 2 && n5 == 0
n = get(handles.edit1,'String'); v{1,4}='veinte';
n = str2double(n); elseif n4 == 2
decmil = floor(n/10000); v{1,4}='veinti';
n1 = decmil; elseif n4 == 3 && n5 == 0
mil = floor(n/1000); v{1,4}='treinta';
n2 = mod(mil,10); elseif n4 == 3
cen = floor(n/100); v{1,4}='treinta y ';
n3 = mod(cen,10); elseif n4 == 4 && n5 == 0
dec = floor(n/10); v{1,4}='cuarenta';
n4 = (mod(dec,10)); elseif n4 == 4
u = mod(n,10); v{1,4}='cuarenta y ';
n5 = u; elseif n4 == 5 && n5 == 0
if n > 10000 v{1,4}='cincuenta';
msg = ['El numero ingresado excede el rango de valores','']; elseif n4 == 5
else v{1,4}='cincuenta y ';
if n1 == 1 elseif n4 == 6 && n5 == 0
v{1,1}='diez mil'; v{1,4}='sesenta';
end elseif n4 == 6
%% sentencia para determinar miles) v{1,4}='sesenta y ';
if n2==1 elseif n4 == 7 && n5 == 0
v{1,2}='mil'; v{1,4}='setenta';
elseif n2==2 elseif n4 == 7
v{1,2}='dos mil'; v{1,4}='setenta y ';
elseif n2==3 elseif n4 == 8 && n5 == 0
v{1,2}='tres mil'; v{1,4}='ochenta';
elseif n2==4 elseif n4 == 8
v{1,2}='cuatro mil'; v{1,4}='ochenta y ';
elseif n2==5 elseif n4 == 9 && n5 == 0
v{1,2}='cinco mil'; v{1,4}='noventa';
elseif n2==6 elseif n4 == 9
v{1,2}='seis mil'; v{1,4}='noventa y ';
elseif n2==7 end
v{1,2}='siete mil'; if n5 == 1 && n4 > 1
elseif n2==8 v{1,5}='uno';
v{1,2}='ocho mil'; elseif n5 == 1 && n4 == 0
elseif n2==9 v{1,5}='uno';
v{1,2}='nueve mil'; elseif n5 == 2 && n4 > 1
end v{1,5}='dos';
elseif n5 == 2 && n4 == 0
if n3 == 1 && n4 == 0 && n5 == 0 v{1,5}='dos';
v{1,3}='cien'; elseif n5 == 3 && n4 > 1
elseif n3 == 1 v{1,5}='tres';
v{1,3}='ciento'; elseif n5 == 3 && n4 == 0
elseif n3 == 2 v{1,5}='tres';
v{1,3}='doscientos'; elseif n5 == 4 && n4 > 1
elseif n3 == 3 v{1,5}='cuatro';
v{1,3}='trescientos'; elseif n5 == 4 && n4 == 0
elseif n3 == 4 v{1,5}='cuatro';
v{1,3}='cuatrocientos'; elseif n5 == 5 && n4 > 1
elseif n3 == 5 v{1,5}='cinco';
v{1,3}='quinientos'; elseif n5 == 5 && n4 == 0
elseif n3 == 6 v{1,5}='cinco';
v{1,3}='seicientos'; elseif n5 == 6 && n4 > 1
elseif n3 == 7 v{1,5}='seis';
v{1,3}='setecientos'; elseif n5 == 6 && n4 == 0
elseif n3 == 8 v{1,5}='seis';
v{1,3}='ochosientos'; elseif n5 == 7 && n4 > 1
elseif n3 == 9 v{1,5}='siete';
v{1,3}='novecientos'; elseif n5 == 7 && n4 == 0
end v{1,5}='siete';
elseif n5 == 8 && n4 > 1
if n4 == 1 && n5 == 0 v{1,5}='ocho';
v{1,4}='diez'; elseif n5 == 8 && n4 == 0
elseif n4 == 1 && n5 == 1 v{1,5}='ocho';
v{1,4}='once'; elseif n5 == 9 && n4 > 1
elseif n4 == 1 && n5 == 2 v{1,5}='nueve';
v{1,4}='doce'; elseif n5 == 9 && n4 == 0
elseif n4 == 1 && n5 == 3 v{1,5}='nueve';
v{1,4}='trece'; end
elseif n4 == 1 && n5 == 4 end
v{1,4}='catorce'; set(handles.text2,'String',v);
elseif n4 == 1 && n5 == 5 disp(v);
v{1,4}='quince'; disp(n3);
elseif n4 == 1

42
43
9. Realizar un programa que pida los coeficientes y el grado de un polinomio, después, evalúe dicho polinomio en los puntos
que el usuario especifique. El programa debe continuar evaluando el polinomio mientras el usuario se encuentre
introduciendo los puntos y hasta que sea introducida una contraseña.
Ejemplo Suponga que se quiere evaluar el polinomio p(x) = 5x3+2x2−x−5 en los puntos 0, 2, 4 ,-3. Para cualquier polinomio,
lo primero que se tendrá que ingresar es el grado, que en este caso es 3; enseguida, se tendrán que ingresar los 4 coeficientes
que presenta un polinomio de tercer grado, que para este ejemplo fueron 5, 2, -1 y -5. Finalmente se deben ingresar los
puntos a evaluar, nuevamente, para este caso en particular son 0, 2, 4 y -3.

44
45
46
47
48
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global n
set(handles.text2,'String',' ');
set(handles.text3,'String',' ');
n = get(handles.edit1,'String');
n = str2double(n);

if n == 0
msg = ['Ingresa el coeficiente 1',' '];
coef1 = inputdlg(msg, 'Ingresar');
coef1 = str2double(coef1);
set(handles.text2,'String','p(x) = (coef2*x)+(coef1);');
set(handles.text2,'Visible','on');
set(handles.text3,'Visible','on');
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
set(handles.text3,'String',coef1);
elseif n==1
msg = ['Ingresa el coeficiente 1',' '];
coef1 = inputdlg(msg, 'Ingresar');
coef1 = str2double(coef1);

msg = ['Ingresa el coeficiente 2',' '];


coef2 = inputdlg(msg, 'Ingresar');
coef2 = str2double(coef2);

set(handles.text2,'String','p(x) = (coef2*x)+(coef1);');
set(handles.text2,'Visible','on');
set(handles.text3,'Visible','on');
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
p=1;
i=1;
while p ~= 10307090
msg = ['Ingresa el punto a evaluar ','Ingresa 10307090 para terminar '];
p = inputdlg(msg, 'Ingresar');
p = str2double(p);
if p ~= 10307090
px = (coef2*(p))+(coef1);
v(i,1)= px;

set(handles.text3,'String',v);
i=i+1;
else
msgbox('presiona ok para reiniciar programa');
set(handles.edit1,'String',' ');

end
end
elseif n == 2
msg = ['Ingresa el coeficiente 1',' '];
coef1 = inputdlg(msg, 'Ingresar');
coef1 = str2double(coef1);

msg = ['Ingresa el coeficiente 2',' '];


coef2 = inputdlg(msg, 'Ingresar');
coef2 = str2double(coef2);

49
msg = ['Ingresa el coeficiente 3',' '];
coef3 = inputdlg(msg, 'Ingresar');
coef3 = str2double(coef3);

set(handles.text2,'String','p(x) = (coef3*(x^2))+(coef2*x)+(coef1);');
set(handles.text2,'Visible','on');
set(handles.text3,'Visible','on');
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
p=1;
i=1;
while p ~= 10307090
msg = ['Ingresa el punto a evaluar ','Ingresa 10307090 para terminar '];
p = inputdlg(msg, 'Ingresar');
p = str2double(p);
if p ~= 10307090
px = (coef3*(p^2))+(coef2*(p))+(coef1);
v(i,1)= px;

set(handles.text3,'String',v);
i=i+1;
else
msgbox('presiona ok para reiniciar programa');
set(handles.edit1,'String',' ');

end
end
elseif n == 3
msg = ['Ingresa el coeficiente 1',' '];
coef1 = inputdlg(msg, 'Ingresar');
coef1 = str2double(coef1);

msg = ['Ingresa el coeficiente 2',' '];


coef2 = inputdlg(msg, 'Ingresar');
coef2 = str2double(coef2);

msg = ['Ingresa el coeficiente 3',' '];


coef3 = inputdlg(msg, 'Ingresar');
coef3 = str2double(coef3);

msg = ['Ingresa el coeficiente 4',' '];


coef4 = inputdlg(msg, 'Ingresar');
coef4 = str2double(coef4);

set(handles.text2,'String','p(x) =
(coef4*(x^3))+(coef3*(x^2))+(coef2*x)+(coef1);');
set(handles.text2,'Visible','on');
set(handles.text3,'Visible','on');
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
p=1;
i=1;
while p ~= 10307090
msg = ['Ingresa el punto a evaluar ','Ingresa 10307090 para terminar '];
p = inputdlg(msg, 'Ingresar');
p = str2double(p);

50
if p ~= 10307090
px = (coef4*(p^3))+(coef3*(p^2))+(coef2*p)+(coef1);
v(i,1)= px;

set(handles.text3,'String',v);
i=i+1;
else
msgbox('presiona ok para terminar programa, para reiniciar ingresar grado de
polinomio y presionar determinar');
set(handles.edit1,'String',' ');

end
end
elseif n == 4
msg = ['Ingresa el coeficiente 1',' '];
coef1 = inputdlg(msg, 'Ingresar');
coef1 = str2double(coef1);

msg = ['Ingresa el coeficiente 2',' '];


coef2 = inputdlg(msg, 'Ingresar');
coef2 = str2double(coef2);

msg = ['Ingresa el coeficiente 3',' '];


coef3 = inputdlg(msg, 'Ingresar');
coef3 = str2double(coef3);

msg = ['Ingresa el coeficiente 4',' '];


coef4 = inputdlg(msg, 'Ingresar');
coef4 = str2double(coef4);

msg = ['Ingresa el coeficiente 5',' '];


coef5 = inputdlg(msg, 'Ingresar');
coef5 = str2double(coef5);

set(handles.text2,'String','p(x) =
(coef5*(x^4))+(coef4*(x^3))+(coef3*(x^2))+(coef2*x)(coef1);');
set(handles.text2,'Visible','on');
set(handles.text3,'Visible','on');
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
p=1;
i=1;
while p ~= 10307090
msg = ['Ingresa el punto a evaluar ','Ingresa 10307090 para terminar '];
p = inputdlg(msg, 'Ingresar');
p = str2double(p);
if p ~= 10307090
px = (coef4*(p^4))+(coef3*(p^3))+(coef2*(p^2))+(coef1);
v(i,1)= px;

set(handles.text3,'String',v);
i=i+1;
else
msgbox('presiona ok para terminar programa, para reiniciar ingresar grado de
polinomio y presionar determinar');
set(handles.edit1,'String',' ');

end
end

51
elseif n == 5
msg = ['Ingresa el coeficiente 1',' '];
coef1 = inputdlg(msg, 'Ingresar');
coef1 = str2double(coef1);

msg = ['Ingresa el coeficiente 2',' '];


coef2 = inputdlg(msg, 'Ingresar');
coef2 = str2double(coef2);

msg = ['Ingresa el coeficiente 3',' '];


coef3 = inputdlg(msg, 'Ingresar');
coef3 = str2double(coef3);

msg = ['Ingresa el coeficiente 4',' '];


coef4 = inputdlg(msg, 'Ingresar');
coef4 = str2double(coef4);

msg = ['Ingresa el coeficiente 5',' '];


coef5 = inputdlg(msg, 'Ingresar');
coef5 = str2double(coef5);

msg = ['Ingresa el coeficiente 6',' '];


coef6 = inputdlg(msg, 'Ingresar');
coef6 = str2double(coef6);

set(handles.text2,'String','p(x) =
(coef6*(x^5))+(coef5*(x^4))+(coef4*(x^3))+(coef3*(x^2))+(coef2*x)+(coef1);');
set(handles.text2,'Visible','on');
set(handles.text3,'Visible','on');
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
p=1;
i=1;
while p ~= 10307090
msg = ['Ingresa el punto a evaluar ','Ingresa 10307090 para terminar '];
p = inputdlg(msg, 'Ingresar');
p = str2double(p);
if p ~= 10307090
px =
(coef6*(p^5))+(coef5*(p^4))+(coef4*(p^3))+(coef3*(p^2))+(coef2*p)+(coef1);
v(i,1)= px;

set(handles.text3,'String',v);
i=i+1;
else
msgbox('presiona ok para terminar programa, para reiniciar ingresar grado de
polinomio y presionar determinar');
set(handles.edit1,'String',' ');

end
end
elseif n == 6
msg = ['Ingresa el coeficiente 1',' '];
coef1 = inputdlg(msg, 'Ingresar');
coef1 = str2double(coef1);

msg = ['Ingresa el coeficiente 2',' '];


coef2 = inputdlg(msg, 'Ingresar');
coef2 = str2double(coef2);

52
msg = ['Ingresa el coeficiente 3',' '];
coef3 = inputdlg(msg, 'Ingresar');
coef3 = str2double(coef3);

msg = ['Ingresa el coeficiente 4',' '];


coef4 = inputdlg(msg, 'Ingresar');
coef4 = str2double(coef4);

msg = ['Ingresa el coeficiente 5',' '];


coef5 = inputdlg(msg, 'Ingresar');
coef5 = str2double(coef5);

msg = ['Ingresa el coeficiente 6',' '];


coef6 = inputdlg(msg, 'Ingresar');
coef6 = str2double(coef6);

msg = ['Ingresa el coeficiente 7',' '];


coef7 = inputdlg(msg, 'Ingresar');
coef7= str2double(coef7);

set(handles.text2,'String','p(x) =
(coef7*(x^6))+(coef6*(x^5))+(coef5*(x^4))+(coef4*(x^3))+(coef3*(x^2))+(coef2*x)+(coef1)
;');
set(handles.text2,'Visible','on');
set(handles.text3,'Visible','on');
set(handles.text4,'Visible','on');
set(handles.text5,'Visible','on');
p=1;
i=1;
while p ~= 10307090
msg = ['Ingresa el punto a evaluar ','Ingresa 10307090 para terminar '];
p = inputdlg(msg, 'Ingresar');
p = str2double(p);
if p ~= 10307090
px =
(coef7*(p^6))+(coef6*(p^5))+(coef5*(p^4))+(coef4*(p^3))+(coef3*(p^2))+(coef2*p)+(coef1)
;
v(i,1)= px;

set(handles.text3,'String',v);
i=i+1;
else
msgbox('presiona ok para terminar programa, para reiniciar ingresar grado de
polinomio y presionar determinar');
set(handles.edit1,'String',' ');

end
end

53
54
10. Piense en un problema que le gustaría resolver.

a) Realice el planteamiento del problema y exprese por qué le gustaría resolverlo, ¿En que beneficiaría a la humanidad
y/o sociedad?
Mexico es el país numero uno en obesidad, debido a esto la población mexicana tiene un mayor índice de tener alguna
enfermedad como la diabetes tipo dos.
Me gustaría resolver este problema debido a que yo mismo tenia obesidad, y cuando baje de peso todo se mejoró. Quiero
compartir esa experiencia con otras personas.
Los beneficios serian tener una referencia de nuestro índice corporal para saber si somos saludables o no.
b) Escriba el algoritmo y/o explicación de cómo se planea resolver el problema.

55
c) Diseñe la interfaz o carátula y proceda a escribir el código fuente. Muestre ambos elementos.

function pushbutton1_Callback(hObject, eventdata, handles)


% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global imc v p a
p = get([Link],'String');
p = str2double(p);
a = get([Link],'String');
a = str2double(a);
imc = p / (a^2);
imc = imc*10000;
v{1,1}= 'Tu Indice de Masa Corporal es: ' ;
v{2,1}= imc ;
if imc < 18.5
v{3,1} = 'Estas muy desnutrido(a), metele mas papa';
elseif imc>18.5 && imc<24.9
v{3,1} = 'Asi mero estas bien, ¡sigue asi!';
elseif imc>25 && imc<29.9
v{3,1} = '¡Bajae un poco a los taquitos, tienes unos kilitos de mas!';
elseif imc>30
v{3,1} = '¡ALERTA!, ¡ALERTA, TE ESTAS CONVIRTIENDO EN MARRANO, ¡PESAS MUCHO, BAJA
DE PESO YA, URGE!';
end

set([Link],'String',v);
disp(v);
clear all;
clear;
clc;

56
d) Muestre ejecuciones del correcto funcionamiento

57
58
5. Observaciones
Sección para que el alumno anote las observaciones realizadas.

6. Conclusiones
Espacio reservado con el fin de que el alumno exponga las conclusiones hechas con la realización de la práctica.
U. T. T. Modelo de programación avanzado M. C. Joaquín Saucedo Barajas

59
7. IMPORTANTE: Reporte de práctica
Se deberá entregar un reporte de la práctica incluya:

Portada, la portada debe incluir:

• Escuela
• Materia
• Nombre y número de la práctica.
• Nombre de los alumnos y su número de control
• Lugar y fecha de la entrega.
Nombre y número de la práctica.

Objetivo.

Material usado.

El fundamento teórico.

El desarrollo y resultados. (En caso de ser necesario se incluirán diagramas, algoritmos, código fuente, simulaciones, gráficas,
tablas, esquemas, símbolos, operaciones y procedimientos, etc).

Observaciones.

Conclusiones.

Firma de revisión en laboratorio.

60

También podría gustarte