You are on page 1of 10

SOFTWARE PARA INGENIERIA

PRACTICA 2

MARIO JOSE DE LOS RIOS TORRES

JUAN MONROY

TUTOR

INGENIERÍA ELECTRÓNICA
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA (ECBTI)
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA (UNAD).
COROZAL – SUCRE
2017
Primero que nada, cabe aclarar que el desarrollo de esta práctica más allá de ser individual fue
desarrollada con el acompañamiento de un tutor de la UNAD en el CCAV Corozal y en
compañía de varios compañeros del curso ya que la información para la realización de dicha
práctica era un poco confusa.

3. Utilizando Matlab o Scilab realice un programa que permita capturar el valor de una resistencia
en Mega ohmios e imprimir la cantidad de resistencias y el valor por el cuál pueda ser reemplazada;
tener en cuenta que se deben emplear la menor cantidad de resistencias.

Script funcionando

Código
clear global; %limpia las variables y las areas de trabajo de programas
anteriores

disp('programa para determinar el mejor arreglo para el reemplazo de


resistencias ');

r1=0;
r2=0;
r3=0;
r4=0;
r5=0;
r6=0;
%banco de resistencias comerciales en kilo ohmios
br=[500 200 100];

rin=input ('\n ingrese el valor de la resitencia en mega ohmios: ');

ren=rin*1000;
% determina la cantidad de recistencia de cada una a utilizar
m1=mod(ren,500);
m2=mod(ren,200);
m3=mod(ren,100);
res=[];
%forma 1
if m1==0
r1=ren/500;
% se venden r de 500k
else
if m2==0
r2=ren/200;
% se venden r de 200k
else
% if m3==0
% r3=ren/100;
% % se venden r de 100k
% else

resta=[];
while ren>=br(3)
for k=1:length(br)
if ren-br(k)<0
resta(k)=ren;
else
resta(k)=ren-br(k);
end
end
rnuevo=min(resta);
in=find(resta==rnuevo);

if in==1
r1=r1+1;
else
if in==2
r2=r2+1;
else
r3=r3+1;
end
end
resta=[];
ren=rnuevo;
end

end
end
%0forma 2
ren=rin*1000;

resta=[];
while ren>=br(3)
for k=1:length(br)
if ren-br(k)<0
resta(k)=ren;
else
resta(k)=ren-br(k);
end
end
rnuevo=min(resta);
in=find(resta==rnuevo);

if in==1
r4=r4+1;
else
if in==2
r5=r5+1;
else
r6=r6+1;
end
end
resta=[];
ren=rnuevo;
end
f1=r1+r2+r3;
f2=r4+r5+r6;

% se tienen dos formas por que para algunos valores los resultados eran muy
altos

disp('la mejor forma de hacerlo es ');

if (f1<f2)
fprintf('usando %d resistencias de 500k en serie con \n',r1);

fprintf('usando %d resistencias de 200k en serie con \n',r2);

fprintf('usando %d resistencias de 100k en serie con \n',r3);

else

fprintf('usando %d resistencias de 500k en serie con \n',r4);

fprintf('usando %d resistencias de 200k en serie con \n',r5);

fprintf('usando %d resistencias de 100k en serie con \n',r6);


end
Construcción individual
1. Recopilar información concreta (no marco teórico), que permita construir la solución

Para los códigos de este programa estoy usando el condicional IF-ELSE-END el cual me permite
ejecutar un conjunto de enunciados si la comparación es verdadera y un conjunto diferente de
enunciados si la comparación es falsa.
También uso comandos como disp. el cual me permite mostrar mensajes de texto simples y
fprintf. También me permite mostrar texto, pero con la particularidad de que se pueden agregar
números almacenos en variables definidas.
Input que permite leer información ingresada por el teclado
Strcmp este comando me permite compara caracteres o cadenas de caracteres y determinar si son
iguales.
También operaciones como la suma, resta, multiplicación y división, operadores lógicos y
relacionales
2. Elaborar código (en Matlab o Scilab) que aporte a la construcción de la solución del problema
planteado.

Para el primer punto del problema planteado realice el siguiente código el cual puede ser
mejorado y, o reducido para mayor brevedad del mismo.
clc %limpia la ventana de comandos
clear global; %limpia las variables y las áreas de trabajo de programas
anteriores

disp('programa para determinar el valor o el código de colores de una


resitencia');
% indico que colores, nombres acepta el programa
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');

% declaro los nombres como caracteres


f=
char('negro','cafe','rojo','naranja','amarillo','verde','azul','violeta','gri
s','blanco','dorado','plateado','ninguno');

% petición de las entradas


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');

% comparando los colores de la primera banda para determinar su valor


if strcmp(f1,'negro')
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

% comparando los colores de la segunda banda para determinar su valor


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

%comparando los colores de la tercera banda para determinar su valor


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

%comparando los colores de la cuarta banda para determinar su valor

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

% se obtiene el valor de la resistencia y cuál es su tolerancia


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

para la realización del segundo punto se podría decir que con el proceso inverso de este código
se podría empezar desarrollar y también agregando lo realizado en el código de la práctica se
puede trabajar para que obtener un código de colores a un valor de resistencia y un posible suma
de resistencias equivalentes.

Referencias de consulta.
Digi-Key Electronics. Calculador de código de colores de resistencias de 4 bandas. Recuperado
de: http://www.digikey.com/es/resources/conversion-calculators/conversion-calculator-resistor-
color-code-4-band
Grande, C. ejercicios código de colores. Recuperado de:
http://www.edu.xunta.gal/centros/iesfelixmuriel/system/files/ejercicios-codigo-de-colores_0.pdf
García, J. Aranda, T. (1999). Notas sobre MATLAB. Universidad de Oviedo. [Libro]. Recuperado de:
https://books.google.com.co/books?id=RHbhhQ4-
hGUC&pg=PA1&lpg=PA1&dq=todo+sobre+matlab&source=bl&ots=eMbXSK7cNv&sig=8HdOMsdidgMNA
QmVP2qrmZGKKAA&hl=es&sa=X&redir_esc=y#v=onepage&q=todo%20sobre%20matlab&f=false

Infante, J. Rey, J. introducción a MATLAB. Recuperado de:


http://www.mat.ucm.es/~jair/matlab/notas.htm

Monroy, J. (2014). PLE Matlab-Scilab. Recuperado de.


http://www.netvibes.com/juanolmv#Donde_relacionarme_con_otros
Scilab 5.1.1. (2009). Capítulos 1-6. pág. 1-64. Recuperado de:
http://www.scilab.org/content/download/247/1702/file/introscilab.pdf
MathWorks. (2009). TheMathworks. Capítulo 1. Pág. 1-10. Recuperado de
http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf.
Material uso de Matlab (2016). Recuperado de. http://ocw.mit.edu/resources/res-18-002-
introduction-to-matlab-spring-2008/
Gil, R. M. (2003). Introducción rápida a Matlab y Simulink para ciencia e ingeniería. Madrid,
ES: Ediciones Díaz de Santos. Capítulo 1. pág. 1-21. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?ppg=1&docID=11059428&tm
=1479848795401
Monroy, J. (2016). Conceptos Básicos de programación. [Archivo de video] Recuperado de:
http://hdl.handle.net/10596/10293
MathWorks. (2009). TheMathworks. Capítulo 1. Pág. 26-29. Recuperado de
http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf.
Monroy, J. (2016). Fundamentos de programación Matlab. [Archivo de video] Recuperado de:
http://hdl.handle.net/10596/10294
Gil, R. M. (2003). Introducción rápida a Matlab y Simulink para ciencia e ingeniería. Madrid,
ES: Ediciones Díaz de Santos. Capítulo 3. pág. 35-40. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?ppg=1&docID=11059428&tm
=1479848795401
Mathworks (2016). Toolbox matlab Recuperado de:
http://www.mathworks.es/es/help/database/getting-started-with-database-toolbox.html
Mathworks (2016). Simulink. Recuperado de:
http://www.mathworks.es/products/simulink/videos.html
Monroy, J. (2016). Fundamentos de Toolbox de Matlab. [Archivo de video] Recuperado de:
http://hdl.handle.net/10596/10295

You might also like