Asignatura :
203036_108 Software Ingeniera
CONSTRUCCION DE LA SOLUCION
Propuesta Metodolgica
Presenta :
Jos Eusebio Lpez Junco
Cdigo: 74338899
Docente:
Nelson Humberto Zambrano
INTRODUCCIN
La
propuesto; para el desarrollo de esta actividad se vali de las etapas de los trabajos
colaborativos anteriores, como el diagrama de flujo, las lluvias ideas, las propuestas
personales que se subieron al foro colaborativo de los mismos. Para el desarrollo de la
propuesta se vali de videos en You tube, libros pdf, Experiencia laboral en procesos
de automatizacin, Feria de automatizacin donde haba una sala dedicada al manejo de
Matlab como herramienta en el anlisis de procesos, donde ellos nos dieron una gua
bsica en el control de variables. Siguiendo con lo anterior se comenz armando un
diagrama de flujo donde se realizaron las fases a groso modo del proceso, para despus
pasarlo de una manera detallada a un algoritmo, donde se detalla el proceso. Para por
ultimo pasarlo al cdigo fuente donde se utiliz el lenguaje de Matlab ms la interfaz
grfica con el nimo de darle un valor agregado para que la solucin sea realmente lo
que el cliente necesita.
En una industria manufacturera, disponen de una mquina que realiza un proceso en tres fases,
cada una de ellas se desarrolla en un tiempo calculado por un instrumento anexo que devuelve
tres nmeros binario cada uno de 13 bits, dichos nmeros representan el intervalo de tiempo de
duracin de cada fase (el tiempo mnimo de cada fase no era inferior a 5 segundos).
Adicionalmente la mquina dispone de un conjunto de leds dispuestos en forma de matriz de 10
por 5, a partir de ellos se identificaba la fase y a travs de un cdigo visual se daba una
aproximacin del tiempo que restaba para finalizar el proceso (a travs de juego de luces que se
actualizaba cada segundo). En este momento el cdigo de programacin que realizaba dicho
proceso sufri un dao irreparable, por tanto es necesario generar un nuevo cdigo a nivel de
prototipo, que responda a estas condiciones, esto para que sea estudiado y viabilizar su
aplicacin Los datos de entrada y salida se deben dar a partir de los recursos del PC, y usando
Matlab como lenguaje de programacin
1.1.
GUIN DE LA PROPUESTA.
a. Valernos del diagrama de flujo hecho como propuesta de grupo, para comenzar a armar
la hiptesis.
b.
c.
1.2.
Actividad
Experimentacin
Individual
Fecha Inicio
24 agosto
Fecha Final
17
septiembre
Construccin de la
solucin
27
Septiembre
15 noviembre
Actividad
Implementacin propuesta
individual, donde se describe
bibliografa para la solucin, con
las ventajas desventajas
Hiptesis, bibliografa para
solucionar el problema,
algoritmo, cdigo fuente en
Matlab o Scilab. Revisin de la
solucin.
Experimentacin
Grupal
2.
se extrae su
y se tiene la idea de
cmo efectuarla se llama periodo de incubacin , lo que sigue es plasmar por medio
de lenguaje normal compensado con alguna reglas de programacin para as llegar
a presentar una solucin ordenada y fcil de entender tanto por la persona como la
computadora.
Ejemplo: 2
nmero
Si numero > 0 entonces
Numero mod 2
Si mod = 0
Escribir Es un nmero impar
Sino
Escribir Es un nmero impar
Fin si
Sino
Escribir entrada incorrecta
Fin si
Fin
Si no hubiera hecho este algoritmo no tendra una forma clara de solucionar el
problema., porque podra haber comenzado haciendo el resto de la divisin, luego
decir que el nmero es incorrecto, en si podra decir que estara hecho una cabuya
en un bolsillo.
Elaborar un algoritmo se logra estructurando el pensamiento para llegar una idea que
d solucin al problema planteado.
c. Elaboracin del algoritmo.
Cuando se tiene un problema, cualquiera que sea porque los algoritmos se aplican a
todo hasta para realizar las labores diarias o cotidianas. Para poder resolver una
situacin que implique pensar, a veces es bueno dividir esta situacin en ms pequea
con el nimos de detallar y poder resolverlo de ms fcil.
sintaxis propia de la
la idea de una
todo est
2.3.
Segn la propuesta por el grupo, donde se realiza una secuencia de las fases. Pienso
implementarla de la siguiente manera:
Estudiar de manera precisa el uso, manejo de las matrices en Matlab. Como una
manera de controlar la informacin, almacenamiento y manipulacin del bit que nos
informan en el problema.
Segn los ejercicios realizados en las prcticas se pueden utilizar para solucionar
el problema.
En la etapa de mostrar el tiempo de cada fase, me valdr de una matriz de 10*5 donde
mediante ciclos
For
b(2:8,3)=1
b(8,:) = 1
Escribir b
Escribir M
retro = a;
hacer para i = 1 : a;
hacer para j= 1:5
si retro = 0 entonces
Salir de ciclo
Fin si
retro = retro -1
M(i,j) = retro
Escribir = Cuadro de texto 5 = (M)
Esperar 1 segundo
M(i,j) = 1;
Escribir = Cuadro de texto 5 =M
Esperar 1 segundo
fin para
Fin para
Fin botn Uno
Funcin= Botn Dos
Escribir Fase 2 en curso
Botn dos = azul
c = Cuadro de texto 2
M = matriz ceros(10,5)
d= M;
d(2,:) = (1)
d(2:6,5) = (1);
d(6,:) = (1);
d(7:9,1) = (1);
d(9,:) = (1)
Escribir = Cuadro de texto 5, d
Esperar 5 segundos
retro2 = c;
Hacer para i = 1 a c
Hacer para j= 1 a 5
si retro2 = 0 entonces
Salir del ciclo
Fin si
retro2 = retro2 -1;
M(i,j) = retro2;
Escribir Cuadro de texto 5,M
Esperar 1 segundo
M(i,j) = 1
Escribir Cuadro de texto 5, M
Esperar 1 segundo
fin para
fin para
1
1
1
1
Funcin
Botn Cuatro
Hacer para t = 1 a 3
Elegir caso t ;
Caso 1
Escribir Fase 1 en curso
Botn 1 = Amarillo
a = Cuadro de texto 1
M= matriz ceros[10,5]
b = M
b(2, 1:3)=1
b(2:8,3)=1
b(8,:) = 1
, b
, M
hacer para i = 1 : a;
hacer para j= 1:5
si retro = 0 entonces
Salir de ciclo
Fin si
retro = retro -1
M(i,j) = retro
Escribir = Cuadro de texto 5
Esperar 1 segundo
M(i,j) = 1;
Escribir = Cuadro de texto 5
Esperar 1 segundo
fin para
Fin para
= M
=M
Caso 2
Escribir Fase 2 en curso
Boton dos = azul
c = Cuadro de texto 3
M = matriz ceros(10,5)
d= M;
d(2,:) = (1)
d(2:6,5) = (1);
d(6,:) = (1);
d(7:9,1) = (1);
d(9,:) = (1)
Escribir = Cuadro de texto 5
Esperar 5 segundos
retro2 = c;
Hacer
para
fin para
i = 1 a c
, d
Hacer para j= 1 a 5
si retro2 = 0 entonces
Salir del ciclo
Fin si
retro2 = retro2 -1;
M(i,j) = retro2;
Escribir Cuadro de texto 5 ,M
Esperar 1 segundo
M(i,j) = 1
Escribir Cuadro de texto 5 , M
Esperar 1 segundo
fin para
Caso 3
Escribir Fase 3 en curso
Boton Tres
= Naranja
e = Cuadro de texto 3
M = Matriz ceros (10,5)
f = M;
f(2,:) =
f(6, :) =
f(9 ,:) =
f(2:9,5)=
1
1
1
1
, f
,M
retro3 = e;
Hacer para i = 1 a e;
Hacer para j= 1 a 5
si retro3 = 0 Entonces
Salir del ciclo
Fin si
retro3 = retro3 -1
M(i,j) = retro3;
Escribir Cuadro de texto 5
Esperar 1 segundo
M(i,j) = 1;
Escribir Cuadro de texto 5
Esperar 1 segundo
Fin para
, M
Fin para
,M
elegir Caso
hacer para
Botn Cuatro
Fase
% se
a = str2double(get(handles.edit2,'String'));
% Se realiza la validacin de los
% 50
if a <=5
set(handles. text3,'String','Ingrese un numero mayor 5 ')
return
esperar 2 segundos;
end
if a > 50
set(handles. text3,'String','Ingrese un numero mayor 5 ')
return
esperar 2 segundos;
end
de
10*5
b(2, 1:3)=(1);
b(2:8,3)=(1);
b(8,:) = (1)
%
%
se transforma
set(handles.edit5,'String',num2str(b));
pause (5)% Se espera 5 segundos
set(handles.edit5,'String',num2str(M));
retro = a;
%
%
%
%
for i = 1 : a;
for j= 1:5
if retro == 0
return
end
retro = retro -1
M(i,j) = retro;
set(handles.edit5,'String',num2str(M));
pause(1)
M(i,j) = 1;
set(handles.edit5,'String',num2str(M));
pause(1)
end
% Aqui se aplica un reset para dejar todo como estaba
set(handles. pushbutton1,'String','Star Fase 1 ')
set(handles. text3,'String','Termino fase 1 ')
pause(1)
set(handles. text3,'String',' ')
end
% ***********************************************************************
% Funcin del boton de arranque de la Segunda fase.
%************************************************************************
if c <=5
set(handles. text3,'String','Ingrese un numero mayor 5 ')
return
esperar 2 segundos;
end
if c > 50
set(handles. text3,'String','Ingrese un numero mayor 50 ')
return
esperar 2 segundos;
end
de
10*5
pause (5);
set(handles.edit5,'String',num2str(d));
retro2 = c;
% Se comienza los ciclos for donde se realiza la cuenta regresiva
% del tiempo tomado en edit 1. y se muestra en edit 5 por medio de la
% matriz vacia cambiando la posicin por el tiempo restante, luego lo
% pasa a " 1" asi hasta cumplir el tiempo.
for i = 1 : c;
for j= 1:5
if retro2 == 0
return
end
retro2 = retro2 -1;
M(i,j) = retro2;
set(handles.edit5,'String',num2str(M));
pause(1)
M(i,j) = 1;
set(handles.edit5,'String',num2str(M));
pause(1)
home
end
% Aqui se aplica un reset para dejar todo como estaba
% Fase 3 en curso a Star Fase 2
set(handles. pushbutton1,'String','Star Fase 2 ')
set(handles. text3,'String','Termino fase 2 ')
pause(1)
set(handles. text3,'String',' ')
end
% ***********************************************************************
% Funcin del boton de arranque de la Tercera fase.
%************************************************************************
function pushbutton3_Callback(hObject, eventdata, handles)
e = str2double(get(handles.edit4,'String'));
% Se realiza la validacin de los
% 50
if e <=5
set(handles. text3,'String','Ingrese un numero mayor 5 ')
return
esperar 2 segundos;
end
if e > 50
set(handles. text3,'String','Ingrese un numero mayor 5 ')
return
esperar 2 segundos;
end
% Se
M = zeros(10,5);
f = M;
% Se cambian los valores
f(2,:) = (1);
f(6, :) = (1);
f(9 ,:) = (1);
f(2:9,5) = (1)
de
10*5
set(handles.edit5,'String',num2str(f));
pause (5)
set(handles.edit5,'String',num2str(M));
retro3 = e;
% Se comienza los ciclos for donde se realiza la cuenta regresiva
% del tiempo tomado en edit 1. y se muestra en edit 5 por medio de la
% matriz vacia cambiando la posicin por el tiempo restante, luego lo
% pasa a " 1" asi hasta cumplir el tiempo.
for i = 1 : e;
for j= 1:5
if retro3 == 0
return
end
retro3 = retro3 -1;
M(i,j) = retro3;
set(handles.edit5,'String',num2str(M));
pause(1)
M(i,j) = 1;
set(handles.edit5,'String',num2str(M));
pause(1)
end
% Aqui se aplica un reset para dejar todo como estaba
% Fase 3 en curso a Star Fase 3
set(handles. pushbutton1,'String','Star Fase 3 ')
set(handles. text3,'String','Termino fase 3 ')
pause(1)
set(handles. text3,'String',' ')
end
% ***********************************************************************
% Funcin del boton de arranque de la primera fase hasta la fase tres
%************************************************************************
function pushbutton4_Callback(~, ~, handles)
% ******EL CODIGO ES EL MISMO QUE EN LAS FASES INDIVIDUALES***********
% Por medio de un ciclo for y mediante un selector de caso se
% se realiza el proceso de las tres fases
for t = 1 : 3 ;
switch t ;
case 1
a = str2double(get(handles.edit2,'String'));
M = zeros(10,5);
b = M;
b(2, 1:3)=(1);
b(2:8,3)=(1);
b(8,:) = (1)
set(handles.edit5,'String',num2str(b));
pause (5)
set(handles.edit5,'String',num2str(M));
retro = a;
for i = 1 : a;
for j= 1:5
if retro == 0
break
end
retro = retro -1
M(i,j) = retro;
set(handles.edit5,'String',num2str(M));
pause(1)
M(i,j) = 1;
set(handles.edit5,'String',num2str(M));
pause(1)
home
end
end
c = str2double(get(handles.edit3,'String'));
M = zeros(10,5);
d= M;
d(2,:) = (1);
d(2:6,5) = (1);
d(6,:) = (1);
d(7:9,1) = (1);
d(9,:) = (1)
set(handles.edit5,'String',num2str(d))
pause (5);
set(handles.edit5,'String',num2str(d));
retro = c;
for i = 1 : c;
for j= 1:5
if retro == 0
break
end
retro = retro -1
M(i,j) = retro;
set(handles.edit5,'String',num2str(M));
pause(1)
M(i,j) = 1;
set(handles.edit5,'String',num2str(M));
pause(1)
home
end
end
e = str2double(get(handles.edit4,'String'));
M = zeros(10,5);
f = M;
f(2,:) = (1);
f(6, :) = (1);
f(9 ,:) = (1);
f(2:9,5) = (1)
set(handles.edit5,'String',num2str(f));
pause (5)
set(handles.edit5,'String',num2str(M));
retro = e;
for i = 1 : e;
for j= 1:5
if retro == 0
break
end
retro = retro -1
M(i,j) = retro;
set(handles.edit5,'String',num2str(M));
pause(1)
M(i,j) = 1;
set(handles.edit5,'String',num2str(M));
pause(1)
home
end
end
set(handles.edit5,'String',' hola 33');
pause(2)
end
end
% ********
TERMINA EL
PROGRAMA ***********************************
CONCLUSION
1. Se puede decir que el proceso que se sigui, sirvi para llegar a una solucin,
es decir que sin la ayuda del profesor , la gua de actividades, de tener la forma
como solucionar un problema hacen sacar a flote las ideas y sobretodo dar
solucin a un
Como estudiantes de
BIBLIOGRAFIA
Lpez, C. P. (2002). Matlab y sus aplicaciones en las ciencias y la Ingeniera. En C. P.
Lpez, lgebra lineal numrica (pgs. 179-192). Madrid: Pearson Educacin S.A.
Lpez, C. P. (2002). Matlab y sus aplicaciones en las ciencias y la Ingeniera. En C. P.
Lpez, Programacin y mtodos de anlisis numrico (pgs. 301-330). Madrid:
Pearson Educacin S.A.
Omijal. (s.f.). Recuperado el 15 de 10 de 15, de Algoritmos:
http://www.omijal.org/pagina_c/algo.html
Tutorial de Matlab. (s.f.). Recuperado el 20 de 10 de 15, de Usando Guide:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lep/garcia_b_s/capitulo3.pdf
Гораздо больше, чем просто документы.
Откройте для себя все, что может предложить Scribd, включая книги и аудиокниги от крупных издательств.
Отменить можно в любой момент.