Sunteți pe pagina 1din 10

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA


SOFTWARE PARA INGENIERIA-UNIDAD 2

EVALUACION FINAL

CINDY TATIANA TELLEZ ESCOBAR


GRUPO 203036_14

TUTOR
JUAN MONROY

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


SOFTWARE PARA INGENIERA
BOGOTA DICIEMBRE 2016

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

Problema a resolver
Una industria de carroceras, en la seccin de pintura, dispona de un tablero donde se indicaba
a travs de una matriz de leds de 5*10, el momento en que se desarrollaba un proceso
determinado y el tiempo que restaba para que terminara. El equipo de cmputo donde resida
el cdigo fuente que controlaba dicha visualizacin, sufri un ataque de un virus troyano, por
tanto, a la empresa le urge generar un cdigo prototipo temporal, que realice la misma
visualizacin con el mismo hardware (matriz de leds de 5*10).
Es importante aclarar que:

En el tablero se visualizaba a travs de los leds un cdigo que identificaba el proceso


(P1, P2, P3 y P4) y con un juego de luces se representaba el tiempo que restaba de
ejecucin de dicho proceso. (solo se empleaba la matriz de leds de 5*10 para mostrar
en ellos tanto el cdigo del proceso como el tiempo restante de ejecucin con
actualizaciones segundo a segundo).
Los tiempos de duracin de cada proceso se entregan por un instrumento anexo, en
formato binario de 11 bits y teniendo en cuenta que ningn tiempo era inferior a 3
segundos.
El operario al visualizar la matriz de leds, podra identificar el proceso en el que se
encontraba la seccin de pintura y el tiempo que restaba para que terminara dicho
proceso.
Los datos de entrada y salida se deben dar a partir de los recursos del PC, y usando
Matlab como lenguaje de programacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

Anlisis del problema e identificacin de necesidades


Seudocdigo
Encender maquina

Recibe primer nmero binario de 11 bits para la primera fase

Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 1

Encender leds que indiquen la primera fase => F 1

Inicie el conteo regresivo de acuerdo a los segundos de duracin del proceso

Apagar matriz de led al llegar a cero

Recibe segundo nmero binario de 11 bits para la segunda fase

Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 2

Encender leds que indiquen la segunda fase => F 2

Inicie el conteo regresivo de acuerdo a los segundos de duracin del proceso

Apagar matriz de led al llegar a cero

Recibe segundo nmero binario de 11 bits para la tercera fase

Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 3

Encender leds que indiquen la tercera fase => F 3

Inicie el conteo regresivo de acuerdo a los segundos de duracin del proceso

Apagar matriz de led al llegar a cero

Recibe segundo nmero binario de 11 bits para la segunda fase

Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 4

Encender leds que indiquen la segunda fase => F 4

Inicie el conteo regresivo de acuerdo a los segundos de duracin del proceso

Apagar matriz de led al llegar a cero

Mostrar en pantalla procesos terminados

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

Para dar solucin al problema planteado utilice los siguientes documentos encontrados en
internet que nos explican todo lo relacionado con Matlab, comandos, funciones etc.

Algebra ii. (s.f.). introduccion a la programacion en matlab. Obtenido de 2016


http://www.galeon.com/algebralineal/algii_inform/int_prog_matlab.pd
Faar, m. &. (2010). Programacion en Matlab. Obtenido de
http://www.esi2.us.es/~jaar/Datos/FIA/T9.pdf
Ps, sistem. (2008). codigos Matlab. Obtenido de
http://prof.usb.ve/williamc/PS2315/cdigos_matlab.html
Yotube. (15 de 01 de 2014). programacion con matlab funciones . Obtenido de
https://www.youtube.com/watch?v=iDGyyb4pzPQ

Luego de realizar muchas practicas practicando en el software Matlab se desarroll un


algoritmo el cual funciona as:
como lo describe el problema la maquina recibe un cdigo binario de 11 bits para
cada fase la cual nos indica la cantidad de segundos que demora cada una, por lo
cual se inicia el cdigo recibiendo dicho cdigo para as dar inicio a la primera fase
como se observa en la siguiente imagen:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

En este paso podemos observar la matriz de leds donde nos indica en la parte inferior
en qu fase estamos y los leds que van encendiendo de acuerdo al tiempo que resta
para terminar el proceso, como se haba planteado en la idea de solucin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

Una vez terminado la primera fase vuelve a recibir el nmero binario para establecer
el tiempo de la segunda fase y dar inicio a la segunda fase mostrando el indicador
de en qu fase se encuentra y el tiempo que le resta para terminar el proceso lo
mismo realizar con la tercera y final mente mostrar en pantalla proceso terminado
como se observa a continuacin:

CDIGO EN MATLAB
clc;
%codigo que convierte de binario a deciamal
numerobin = input('Recibe 1er N binario de 11 bits para establecer el
tf1\n', 's');
numerodec = bin2dec(numerobin);

tenemos el proceso de recibir el numero binario y paso de binario a decimal para ver la
cantidad de segundos y en seguida creamos las variables necesarias para desarrollo las
cuales son d que la utilizaremos para que nos indique en cual columna nos va indicar el
tiempo restante encendiendo un led esta variable la utilizamos en el contador junto con la
variable tf1, tf2, tf3

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

d=numerodec;
tf1=d ;
%tablero que indica en que fase se encuantra "f 1"
a=[0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 5 5 0 0 5;5 0 0 0 5 5
5 0 0 5;5 0 0 0 5 5 0 0 0 5];
ac tenemos la matriz de nuestra mquina y el cdigo nos va a iniciar
indicando que fase esta
fprintf('%02d\n',d);
disp(a)
pause(0.5)
if (tf1<3)
disp('El tiempo es inferior a 5 segundos')
pause(0.5)
else

Hay que tener en cuenta que el tiempo debe ser mayor que 3 segundos ya que es el tiempo
mnimo que puede durar un proceso por tal razn se le coloco la condicin que funcione si
es mayor de 3 segundos,
while (d>1)
clc;
d = d-1;
fprintf('%02d\n',d);
% cuanta regresiva del tiempo que resta para terminar el proceso
if (d>10)
a(d-10,4)=3;
else
a(d,3)=3;
end
disp(a)
pause(1);
end
end

ac tenemos el contador para la fase 1 el cual est en decremento hasta llegar a 1 no es


necesario llegar a cero porque en ese de fase dura un segundo y finalmente al llegar a uno
borrara y solicita el segundo nmero binario de la maquina

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

clc;
%codigo que convierte de binario a deciamal
numerobin = input('Recibe 2do N binario de 11 bits para establecer el
tf2\n', 's');
numerodec = bin2dec(numerobin);
d=numerodec;
tf2=numerodec ;
%tablero que indica en que fase se encuantra "f 2"
a=[0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 5 5 0 5 5;5 0 0 0 5 5
5 0 5 5;5 0 0 5 0 5 0 0 5 5];
fprintf('%02d\n',d);
disp(a)
pause(0.5)
if (tf1<3)
disp('El tiempo es inferior a 3 segundos')
pause(0.5)
else
while (d>1)
clc;
d = d-1;
fprintf('%02d\n',d);
% cuanta regresiva del tiempo que resta para terminar el proceso
if(d>10)
a(d-10,4)=3;
else
a(d,3)=3;
end
disp(a)
pause(1);
end
end
clc;
%codigo que convierte de binario a deciamal
numerobin = input('Recibe 3do N binario de 11 bits para establecer el
tf3\n', 's');
numerodec = bin2dec(numerobin);
tf3=numerodec ;
d=numerodec;
%tablero que indica en que fase se encuantra "f 3"
a=[0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 5 5 0 5 5;5 0 0 0 5 5
5 0 5 5;5 0 0 0 5 5 0 0 5 5];
fprintf('%02d\n',d);
disp(a)
pause(0.5)
if (tf1<3)
disp('El tiempo es inferior a 3 segundos')
pause(0.5)
else

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2
while (d>1)
clc;
d = d-1;
fprintf('%02d\n',d);
% cuanta regresiva del tiempo que resta para terminar el proceso
if(d>10)
a(d-10,4)=3;
else
a(d,3)=3;
end
disp(a)
pause(1);
end
end
clc;
%codigo que convierte de binario a deciamal
numerobin = input('Recibe 2do N binario de 11 bits para establecer el
tf4\n', 's');
numerodec = bin2dec(numerobin);
d=numerodec;
tf4=numerodec ;
%tablero que indica en que fase se encuantra "f 4"
a=[0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 5 5 0 5 5;5 0 0 0 5 5
5 0 5 5;5 0 0 5 0 5 0 0 5 5];
fprintf('%02d\n',d);
disp(a)
pause(0.5)
if (tf1<3)
disp('El tiempo es inferior a 3 segundos')
pause(0.5)
else
while (d>1)
clc;
d = d-1;
fprintf('%02d\n',d);
% cuanta regresiva del tiempo que resta para terminar el proceso
if(d>10)
a(d-10,4)=3;
else
a(d,3)=3;
end
disp(a)
pause(1);
end
end
display('Proceso terminado');

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERA
SOFTWARE PARA INGENIERIA-UNIDAD 2

S-ar putea să vă placă și