Está en la página 1de 13

0

UNIDAD 2 Y 3 – CONSTRUCCION GRUPAL DE LA SOLUCION AL PROBLEMA


PLANTEADO
SOFTWARE PARA INGENIERIA
ACTIVIDAD GRUPAL

GRUPO COLABORATIVO: 203036_4

INTEGRANTES
MARIO JOSE DE LOS RIOS
EDUARDO SANTOS CONTRERAS
OBED FUENTES

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


FACULTAD DE INGENIERIA
2017-01
INTRODUCCION

Los lenguajes de programación son herramientas de múltiples usos, si bien es


cierto que el desarrollo de estos es realizado por computadoras y muchas de las
actividades o necesidades diarias ya están automatizadas y controladas al ser
programadas con anterioridad es estrictamente necesario para cualquier
ingeniería el manejo de software de programación que nos permitan ir mas allá de
un problema planteado y encontrar la manera más oportuna, rápida y económica
de resolverlo, a través de sencillos programas y códigos que reemplacen la
actividad humana para más agilidad y eliminación del error humano en ciertas
tareas como cálculos de dineros, formulas financieras, software de diseño
controlada por computación y robótica.

Los campos de aplicación del software de programación casi que podríamos decir
están presentes en todo desde simples relojes hasta los más complejos y
modernos sistemas de transmisiones de datos.

A continuación daremos solución práctica a uno de los casos más conocidos sobre
la electrónica básica, la identificación del valor de una resistencia mediante código
de colores y conocer su código de colores a partir de su valor ingresado, para ellos
vamos a hacer utilización del software de programación utilizado durante el
desarrollo del curso, SCILAB O MATLAB, haciendo uso de las estructuras de
control que el lenguaje nos ofrece como es la función “SWITCH/CASE” la cual nos
ayudara a resolver el ejercicio y hacerlo más sencillo que con otras funciones
como IF.

A continuación daremos a conocer el código fuente del mismo y cada una de las
funciones que realizan las líneas de este.
ALGORITMO DESARROLLADO

1. Identificar el valor de una resistencia a partir del código de colores que


ingrese el usuario incluyendo la tolerancia.

clc %limpia la ventana de comandos


clear global; %limpia las variables y las áreas de trabajo de programas
anteriores

% índico que colores, nombres acepta el programa, y me muestra si ningún


valor fue ingresado.
disp('programa para determinar el valor o el código de colores de una
resistencia');

disp('colores aceptados');
disp('negro');
disp('cafe');
disp('rojo');
disp('naranja');
disp('amarillo');
disp('verde');
disp('azul');
disp('violeta');
disp('gris');
disp('blanco');
disp('dorado');
disp('plateado');
disp('ninguno');

% Todas las variables deben ser declaradas, en este caso los nombres de
los colores son definidas como caracteres utilizando CHAR
f=
char('negro','cafe','rojo','naranja','amarillo','verde','azul','violeta',
'gris','blanco','dorado','plateado','ninguno');

% A Continuación pedimos al usuario de programa ingresar los colores de


las bandas de la resistencia de izquierda a derecha
f1=input ('ingrese el color de la primera banda: ','s');
f2=input ('ingrese el color de la segunda banda: ','s');
f3=input ('ingrese el color de la tercera banda: ','s');
f4=input ('ingrese el color de la cuarta banda: ','s');

% ahora hacemos uso de strcmp para hacer comparación del valor ingresado
con los valores posibles y guardar el resultado del valor que adquiere
según cada color. En caso de que los colores no sean los ingresados
saltara de inmediato al siguiente condicional, hasta encontrar
compatibilidad entre los colores, en caso de no hacerlo mostrara un
mensaje diciendo “COLOR NO ESPECIFICADO”, luego cerramos todos los ciclos
IF al final de las posibilidades.

if strcmp(f1,'negro') % Compara con el color negro y de ser verdadero


asigna valor de 0 mostrando que este color no puede ir en la banda.
v1=00;
disp('ese color no puede ir en la primera banda');
else
if strcmp(f1,'cafe')
v1=10;
else
if strcmp(f1,'rojo')
v1=20;
else
if strcmp(f1,'naranja')
v1=30;
else
if strcmp(f1,'amarillo')
v1=40;
else
if strcmp(f1,'verde')
v1=50;
else
if strcmp(f1,'azul')
v1=60;
else
if strcmp(f1,'violeta')
v1=70;
else
if strcmp(f1,'gris')
v1=80;
else
if strcmp(f1,'blanco')
v1=90;
else
disp('color en la banda 1 no
especificado');
end
end
end
end
end
end
end
end
end
end

% Pasamos a comparar el color ingresado para la segunda banda con los


colores previamente estipulados y al igual que en caso anterior encontrar
coincidencia y guardar el valor de dicha coincidencia. Luego cerramos
todos los ciclos IF.

if strcmp(f2,'negro')
v2=0;
else
if strcmp(f2,'cafe')
v2=1;
else
if strcmp(f2,'rojo')
v2=2;
else
if strcmp(f2,'naranja')
v2=3;
else
if strcmp(f2,'amarillo')
v2=4;
else
if strcmp(f2,'verde')
v2=5;
else
if strcmp(f2,'azul')
v2=6;
else
if strcmp(f2,'violeta')
v2=7;
else
if strcmp(f2,'gris')
v2=8;
else
if strcmp(f2,'blanco')
v2=9;
else
disp('color en la banda 2 no
especificado');
end
end
end
end
end
end
end
end
end
end

%repetimos los pasos anteriores para la tercera banda, estableciendo


comparaciones entre la cadena de caracteres ingresada y los colores
establecidos, y si hay coincidencia asigna dichos valores y son guardados
para ejecutar las posteriores operaciones. En este caso la tercera banda
obedece a establecer el multiplicador de los valores anteriores para
determinar escalas de kilo, mega, giga ohmios. Y para el caso de los
colores dorado y plateado valores inferiores a 1.

if strcmp(f3,'negro')
v3=1;
else
if strcmp(f3,'cafe')
v3=10;
else
if strcmp(f3,'rojo')
v3=100;
else
if strcmp(f3,'naranja')
v3=1000;
else
if strcmp(f3,'amarillo')
v3=10000;
else
if strcmp(f3,'verde')
v3=100000;
else
if strcmp(f3,'azul')
v3=1000000;
else
if strcmp(f3,'violeta')
v3=10000000;
else
if strcmp(f3,'gris')
v3=100000000;
else
if strcmp(f3,'blanco')
v3=1000000000;
else
if strcmp(f3,'dorado')
v3=0.1;
else
if strcmp(f3,'plateado')
v3=0.01;
else
disp('color en la banda 3
no especificado');
end
end
end
end
end
end
end
end
end
end
end
end

% A continuación con la cuarta banda hacemos selección del nivel de


tolerancia de nuestro código, estableciendo colores como dorado y
plateado, los cuales tienen tolerancia de 5 y 10 respectivamente en caso
de no seleccionar ninguno el valor de esta será del 20%.

if strcmp(f4,'dorado')
v4=5;
else
if strcmp(f4,'plateado')
v4=10;
else
if strcmp(f4,'ninguno')
v4=20;
else
disp('color en la banda 4 no especificado');
end
end
end

% a continuación vamos a realizar los algoritmos necesarios luego de


evaluadas las condiciones, el valor v1 fue asignado con un valor de 10,
por lo cual si se establece un color de la primera banda menor a 10
(color negro) el código establece un mensaje “no es posible determinar”,
en caso contrario entonces si v1 es mayor o igual a 10 pasamos a realizar
r1 el cual es la suma del color de la primera banda más el segundo, y r2
sería el factor de multiplicación determinado por el primer color por el
tercer color, seguido de unas estructuras IF que me determinan el valor
de la tolerancia entre tres opciones, dorado, plateado o ninguno. En caso
de ser cierta cualquiera de estas opciones me arroja un mensaje diciendo
“EL VALOR DE LA RESISTENCIA ES” y emplea la visualización de un valor
flotante el cual más adelante se especifica el valor de la resistencia
(r2). Y se muestra como siguiente mensaje la tolerancia de la resistencia
cargada en el color v4 establecida como variable numérica.

if (v1<10)
disp('ese código no se puede determinar');
else
if (v1>=10)
r1=(v1+v2);
r2=r1*v3;
if (v4==5)

fprintf('el valor de la resistencia es %10.2f ohmios \n',r2);


fprintf('con una tolerancias de más o menos %d porciento
\n',v4);
else
if (v4==10)

fprintf('el valor de la resistencia es %10.2f ohmios


\n',r2);
fprintf('con una tolerancias de más o menos %d porciento
\n',v4);
else
if (v4==20)

fprintf('el valor de la resistencia es %10.2f ohmios


\n',r2);
fprintf('con una tolerancias de más o menos %d
porciento \n',v4);
end
end
end
end
end
2. Desarrolle un algoritmo que identifique el código de colores de una
resistencia al ingresar su valor resistivo en ohmios.

clc
clear global;
disp('saber el código de colores de una resistencia a partir de su
valor');
disp (' ');
disp('solo funciona con valores mayores a 1');
disp (' ');
n=input('ingrese el valor de la resistencia en Ohmios: ');

cop=n; % copiamos el valor de n a la variable cop


d=0;% se carga inicialmente la variable d con el valor de 0.
v=[];
while cop>1 % mientras el valor ingresado sea mayor a 1 hacemos;
cop=cop/10; dividimos entre 10 el valor de n y se guarda en cop

d=d+1; se realiza un acumulador para la variable dígitos


v(d)=fix(cop); redondeamos hacia cero el valor de la variable cop
end
d
cop=n;

B1=fix(cop/10^(d-1)) el valor de la banda uno es redondeado a cero, luego


de realizar las operaciones necesarias.

B2=fix((cop/10^(d-1)-B1)*10)

Cc %variable cantidad de ceros

% de acuerdo a los procedimientos realizados anteriormente, el programa


busca el resultado para determinar el color, para ello anteriormente se
hace el proceso inverso. Y ahora según el resultado obtenido en B1
disponemos a establecer el color de la primera banda conforme las
opciones que nos presenta la función switch para cada caso, de obtener un
resultado distinto nos arrojara “resultado o valor no conocido”.

switch (B1);
case 0
disp('el color de la banda 1 es: negro ');
case 1
disp('el color de la banda 1 es: cafe ');
case 2
disp('el color de la banda 1 es: rojo ');
case 3
disp('el color de la banda 1 es: naranja ');
case 4
disp('el color de la banda 1 es: amarillo ');
case 5
disp('el color de la banda 1 es: verde ');
case 6
disp('el color de la banda 1 es: azul ');
case 7
disp('el color de la banda 1 es: violeta ');
case 8
disp('el color de la banda 1 es: gris ');
case 9
disp('el color de la banda 1 es: blanco ');
otherwise
disp('valor no reconocido');
end

% Se procede a encontrar el valor de la segunda banda, cuyo resultado es


almacenado en B2 y dependiendo de los casos mostrara el mensaje diciendo
el color de dicha banda, de no encajar en ninguno de los casos dirá
“valor no conocido”

switch (B2);
case 0
disp('el color de la banda 2 es: negro ');
case 1
disp('el color de la banda 2 es: cafe ');
case 2
disp('el color de la banda 2 es: rojo ');
case 3
disp('el color de la banda 2 es: naranja ');
case 4
disp('el color de la banda 2 es: amarillo ');
case 5
disp('el color de la banda 2 es: verde ');
case 6
disp('el color de la banda 2 es: azul ');
case 7
disp('el color de la banda 2 es: violeta ');
case 8
disp('el color de la banda 2 es: gris ');
case 9
disp('el color de la banda 2 es: blanco ');
otherwise
disp('valor no reconocido');
end

cc=d-2;
% a continuación se establece el color de la tercera banda que es el
multiplicador, para ello nos basamos en la variable cc, cantidad de
ceros, la cual restamos 2 dígitos al ya haber obtenido los valores de las
bandas 1 y 2. En caso de obtener un resultado cargado en cc nos mostrara
con que caso coincide y arrojara el color de la tercera banda.

switch (cc);
case 0
disp('el color de la banda 3 es: negro ');
case 1
disp('el color de la banda 3 es: cafe ');
case 2
disp('el color de la banda 3 es: rojo ');
case 3
disp('el color de la banda 3 es: naranja ');
case 4
disp('el color de la banda 3 es: amarillo ');
case 5
disp('el color de la banda 3 es: verde ');
case 6
disp('el color de la banda 3 es: azul ');
case 7
disp('el color de la banda 3 es: violeta ');
case 8
disp('el color de la banda 3 es: gris ');
case 9
disp('el color de la banda 3 es: blanco ');
case -1
disp('el color de la banda 3 es: dorado ');
case -2
disp('el color de la banda 3 es: plateado ');

otherwise
disp('valor no reconocido');
end
EVIDENCIAS DE LA EJECUCION DE LOS ALGORITMOS

PUNTO 1
CONCLUSIONES

Luego de haber concluido la práctica podemos conocer de primera mano las


herramientas y funciones que nos brindan los distintos softwares de programación
que existe, especialmente SCILAB/MATLAB el cual ha sido utilizado a lo largo del
curso. Software que fue concebido para análisis numérico, estadístico, diseño y
análisis de sistemas dinámicos con un lenguaje de programación de alto nivel;
podemos notar que sus aplicaciones van mucho más allá pues posee la capacidad
de procesar diferentes tipos de algoritmos que son utilizados en muchos campos
hoy en día.

La ventaja de este software de programación es la versatilidad que nos ofrecen


basando su sintaxis orientada en matrices y vectores. Gracias a las herramientas y
funciones de este software llegamos a desarrollar dos algoritmos que nos permitan
identificar código de colores y valor de una resistencia.

Luego de diferentes intentos por solucionar la problemática y de emplear las


diferentes funciones pudimos observar que nos ofrece cada una de ellas, puesto
que se pensó en primera instancia en usar IF, aunque SWITCH CASE nos ofrece
un mejor control de nuestro código y desarrollo más sencillo.

Durante el desarrollo del curso comprendimos que es una herramienta de gran


aplicación y nos ayudara mucho en el transcurso de nuestras carreras, inclusive
una vez hayan terminado, puesto es una herramienta que puede facilitar muchos
procesos en el ámbito laboral, desde elaboración de registros, bases de datos y
cálculo de ecuaciones empleadas hacia las finanzas y muchas opciones más.
BIBLIOGRAFIA

 Programación en MATLAB. MRA y JAAR 2010. DISA.


http://www.esi2.us.es/~jaar/Datos/FIA/T9.pdf
 MATLAB. Una introducción con ejemplos Prácticos. Amos Gilat.
EDITORIAL REVERTE. UNIVERSIDAD DE OHIO.
https://books.google.com.co/books?id=dAvjPaUFdAMC&lpg=PP1&dq=matl
ab%20amos%20gilat&pg=PP1#v=onepage&q&f=false
 Funciones y Scripts en Scilab. Julio Cesar, 21 de agosto de 2014. El blog
delingeniero.https://blogdelingeniero1.wordpress.com/2014/08/21/funciones
-y-scripts-en-scilab/

También podría gustarte