El siguiente programa un tanto mas elaborado combina dos métodos, el primero es sobre archivos que consiste en abrir y leer un archivo de texto con extencion "txt" y utilizar los datos para realizar los cálculos, que en este caso el archivo nos ayudara a calcular el valor de una resistencia a partir de el color de las lineas y un valor asociado, una vez teniendo los colores y el valor de la resistencia se procede a dibujarla con el modulo "Turtle" esto es para hacer mas visual el programa.
Especificaciones del programa:
*Al inicio se muestra una lista de colores validos, al momento de ingresar el color y no ser valido, el programa seguirá preguntando hasta que se ingrese un color valido
* El valor de la resistencia es calculado por medio de una función declarada al inicio del programa
* La resistencia dibujada esta hecha a partir de varias instancias.
PROGRAMA
EL CÓDIGO ESTA COMENTADO PARA MEJOR ENTENDIMIENTO
from turtle import *
#FUNCION-----------------------------------------
def resistencia(C1,C2,C3):
z=str(C1)+str(C2)
exp=10**C3
tot=int(z)*exp
return tot
#MUESTRO LOS COLORES VALIDOS----------------------
print("COLORES VALIDOS")
CV=['negro','marron','rojo','naranja','amarillo','verde','azul','purpura','gris','blanco']
print(CV)
print()
#-------------------------------------------------
#VALIDACION DE COLORES----------------------------
LDV=['negro','marron','rojo','naranja','amarillo','verde','azul','purpura','gris','blanco']
#VALIDA LA ENTRADA DEL COLOR 1
A=input("DAME EL COLOR DE LA LINEA UNO: ")
A=A.lower()
while(A not in LDV):
A=input("El Color no es compatible ingrese otro ")
A=A.lower()
print("COLOR 1 ",A)
print()
#VALIDA LA ENTRADA DEL COLOR 2
B=input("DAME EL COLOR DE LA LINEA DOS: ")
B=B.lower()
while(B not in LDV):
B=input("El Color no es compatible ingrese otro ")
B=B.lower()
print("COLOR 2 ",B)
print()
#VALIDA LA ENTRADA DEL COLOR 3
C=input("DAME EL COLOR DE LA LINEA TRES: ")
C=C.lower()
while(C not in LDV):
C=input("El Color no es compatible ingrese otro ")
C=C.lower()
print("COLOR 3 ",C)
print()
print("Colores ",A,B,C)
#-----------------------------------------------------------------------
#SACA LOS VALORES DEL ARCHIVO
archivo=open("colores.txt","r")
print()
listass=[]
for i in range(10):
lisp=archivo.readline()
llena=lisp.split()
listass.append(llena)
archivo.close()
#POSIBLES CASOS PARA A "COLOR 1"
if A in listass[0][0]: #En Caso de negro
FR1=int(listass[0][1])
CR1=listass[0][2]
if A in listass[1][0]: #En Caso marron
FR1=int(listass[1][1])
CR1=listass[1][2]
if A in listass[2][0]: #En Caso de rojo
FR1=int(listass[2][1])
CR1=listass[2][2]
if A in listass[3][0]: #En Caso de naranja
FR1=int(listass[3][1])
CR1=listass[3][2]
if A in listass[4][0]: #En Caso de amarillo
FR1=int(listass[4][1])
CR1=listass[4][2]
if A in listass[5][0]: #En Caso de verde
FR1=int(listass[5][1])
CR1=listass[5][2]
if A in listass[6][0]: #En Caso de azul
FR1=int(listass[6][1])
CR1=listass[6][2]
if A in listass[7][0]: #En Caso de purpura
FR1=int(listass[7][1])
CR1=listass[7][2]
if A in listass[8][0]: #En Caso de gris
FR1=int(listass[8][1])
CR1=listass[8][2]
if A in listass[9][0]: #En Caso de blanco
FR1=int(listass[9][1])
CR1=listass[9][2]
#POSIBLES CASOS PARA B "COLOR 2"
if B in listass[0][0]: #En Caso de negro
FR2=int(listass[0][1])
CR2=listass[0][2]
if B in listass[1][0]: #En Caso marron
FR2=int(listass[1][1])
CR2=listass[1][2]
if B in listass[2][0]: #En Caso de rojo
FR2=int(listass[2][1])
CR2=listass[2][2]
if B in listass[3][0]: #En Caso de naranja
FR2=int(listass[3][1])
CR2=listass[3][2]
if B in listass[4][0]: #En Caso de amarillo
FR2=int(listass[4][1])
CR2=listass[4][2]
if B in listass[5][0]: #En Caso de verde
FR2=int(listass[5][1])
CR2=listass[5][2]
if B in listass[6][0]: #En Caso de azul
FR2=int(listass[6][1])
CR2=listass[6][2]
if B in listass[7][0]: #En Caso de purpura
FR2=int(listass[7][1])
CR2=listass[7][2]
if B in listass[8][0]: #En Caso de gris
FR2=int(listass[8][1])
CR2=listass[8][2]
if B in listass[9][0]: #En Caso de blanco
FR2=int(listass[9][1])
CR2=listass[9][2]
#POSIBLES CASOS PARA C "COLOR 3"
if C in listass[0][0]: #En Caso de negro
FR3=int(listass[0][1])
CR3=listass[0][2]
if C in listass[1][0]: #En Caso marron
FR3=int(listass[1][1])
CR3=listass[1][2]
if C in listass[2][0]: #En Caso de rojo
FR3=int(listass[2][1])
CR3=listass[2][2]
if C in listass[3][0]: #En Caso de naranja
FR3=int(listass[3][1])
CR3=listass[3][2]
if C in listass[4][0]: #En Caso de amarillo
FR3=int(listass[4][1])
CR3=listass[4][2]
if C in listass[5][0]: #En Caso de verde
FR3=int(listass[5][1])
CR3=listass[5][2]
if C in listass[6][0]: #En Caso de azul
FR3=int(listass[6][1])
CR3=listass[6][2]
if C in listass[7][0]: #En Caso de purpura
FR3=int(listass[7][1])
CR3=listass[7][2]
if C in listass[8][0]: #En Caso de gris
FR3=int(listass[8][1])
CR3=listass[8][2]
if C in listass[9][0]: #En Caso de blanco
FR3=int(listass[9][1])
CR3=listass[9][2]
#FUNCION APLICADA
RESIS=resistencia(FR1,FR2,FR3)
print(RESIS)
#DIBUJA LA RESISTENACIA
t=Turtle()
a=Turtle()
b=Turtle()
c=Turtle()
d=Turtle()
e=Turtle()
screen=t.getscreen()
setup(1000,800,0,0)
screensize(300,150)
colormode(255)
t.speed(50)
a.speed(50)
b.speed(10)
c.speed(10)
d.speed(10)
e.speed(10)
#HACE LA BASE PARA LA RESISTENCIA
t.penup()
a.penup()
t.goto(-200,0)
a.goto(200,100)
t.pendown()
a.pendown()
t.fillcolor(0,150,150)
a.fillcolor(0,150,150)
t.begin_fill()
a.begin_fill()
t.goto(200,0)
a.goto(-200,100)
t.goto(200,100)
a.goto(-200,0)
t.end_fill()
a.end_fill()
t.penup()
a.penup()
t.goto(-200,-50)
a.goto(200,-50)
t.pendown()
a.pendown()
t.pencolor(0,150,150)
a.pencolor(0,150,150)
t.fillcolor(0,150,150)
a.fillcolor(0,150,150)
t.begin_fill()
a.begin_fill()
t.circle(100)
a.circle(100)
t.end_fill()
a.end_fill()
#HACE LOS ALAMBRES
t.pencolor("black")
a.pencolor("black")
t.penup()
a.penup()
t.goto(-450,70)
a.goto(450,70)
t.pendown()
a.pendown()
t.fillcolor("black")
a.fillcolor("black")
t.begin_fill()
a.begin_fill()
t.goto(-300,70)
a.goto(300,70)
t.goto(-300,50)
a.goto(300,50)
t.goto(-450,50)
a.goto(450,50)
t.goto(-450,70)
a.goto(450,70)
t.end_fill()
a.end_fill()
#FRANJAS
b.hideturtle()
c.hideturtle()
d.hideturtle()
e.hideturtle()
b.penup()
c.penup()
d.penup()
e.penup()
b.goto(-100,100)
c.goto(-40,100)
d.goto(20,100)
e.goto(80,100)
b.pendown()
c.pendown()
d.pendown()
e.pendown()
b.fillcolor(CR1) #color 1
c.fillcolor(CR2) #color 2
d.fillcolor(CR3) #color 3
e.fillcolor("gray") #tolerancia
b.begin_fill()
c.begin_fill()
d.begin_fill()
e.begin_fill()
b.goto(-60,100)
c.goto(0,100)
d.goto(60,100)
e.goto(120,100)
b.goto(-60,0)
c.goto(0,0)
d.goto(60,0)
e.goto(120,0)
b.goto(-100,0)
c.goto(-40,0)
d.goto(20,0)
e.goto(80,0)
b.goto(-100,100)
c.goto(-40,100)
d.goto(20,100)
e.goto(80,100)
b.write(A)
c.write(B)
d.write(C)
e.write("Tolerancia +/-5")
b.end_fill()
c.end_fill()
d.end_fill()
e.end_fill()
t.penup()
t.hideturtle()
t.goto(0,200)
t.write("VALOR DE LA RESISTENCIA: " +str(RESIS) ,False,"center",("arial",20,"bold italic"))
screen.exitonclick()
ESTE ES EL ARCHIVO DE TEXTO UTILIZADO
En este se ve el color, valor asociado y el color en ingles, los primeros datos son utilizados para hacer calculo del valor de la resistencia y el ultimo para dibujara la resistencia
CORRIDA DEL PROGRAMA, EN TERMINAL Y EN MODULO TORTUGA
La siguiente corrida es un para una resistencia común de 220 que es rojo rojo cafe, en la corrida se verán varias validaciones y el dibujo de la resistencia.
Comentarios
Publicar un comentario