Ir al contenido principal

Proyecto Archivo

Referente al proyecto pasado, este código también nos sirve para resolver problemas de estadística relacionados al censo de resistencias generadas por una planta y así verificar si se producen los valores correctos. Solo que esta vez, tomaremos los datos de entrada de un archivo de texto, el cual se puede llenar desde el código; ofreciendo la opción de usar datos nuevos o los datos guardados.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
from pylab import *
from tabulate import *

#SE DECLARAN LISTAS Y VARIABLES PERTINENTES AL CODIGO
r=0
may=0
mini=10000000000
col=0
suma=0
prom=0
rang=0
sump=0
sumr=0
lp=[ ]
lr=[ ]
#SE ABRE EL ARCHIVO Y SE DECLARAN LAS LISTAS DONDE SE GUARDARAN LOS DATOS PARA SU US0
archivo=open("tabla2.txt","a+")
lista=[]
lista2=[]
sub=[]
#SE PREGUNTA SI EL USUARIO GUSTA USAR DATOS NUEVOS O LOS GUARDADOS EN EL ARCHIVO
preg=int(input("Datos nuevos? Y=1 / N=0: "))
#SI EL USUARIO DESEA USAR DATOS NUEVOS, LOS SIGUIENTES CICLOS NOS PERMITEN MODIFICAR LOS DATOS DEL ARCHIVO
if(preg==1):
print("Favor de borrar los datos del archivo")
nm=int(input("Numero de muestras: "))
nl=int(input("Numero de lecturas: "))
for i in range(nm):
print("Ingrese lectura: " )
for j in range(nl):
val=str(input("Lectura  "+str(j+1)+": "))
archivo.write(str(val))
archivo.write(" ")
archivo.write("\n")
#EN CASO DE QUE SELECCIONE USAR LOS DATOS DEL ARCHIVO SIMPLEMENTE VACIAMOS LOS DATOS DEL ARCHIVO A UNA LISTA
archivo=open("tabla2.txt","r+")
for linea in archivo.readlines():
elen=linea.split()
lista.append(elen)
print(lista)
#HASTA ESTE MOMENTO LOS DATOS DEL ARCHIVO YA SEAN GUARDADO EN LA LISTA COMO STRING, EL SIGUIENTE CICLO LOS CAMBIA A ENTEROS Y APROVECHAMOS
#PARA ADQUIRIR VALORES UTILES
nm=int(input("Numero de muestras: "))
nl=int(input("Numero de lecturas: "))
for i in range(nm):
for j in range(nl):
t=int(lista[i][j])
if(t>may):
may=t
if(t<mini):
mini=t
sub.append(t)
suma+=int(t)
t=0
#DENTRO DEL MISMO CICLO PODEMOS REALIZAR OPERACIONES QUE NOS SIRVEN PARA LAS FUTURAS FORMULAS
#TAMBIEN APROVECHAMOS LA OPORTUNIDAD PARA REINICIAR LOS VARIABLES DE CADA MUESTRA
prom=(suma)/nl
lp.append(prom)
sump+=prom
rang=abs((may)-(mini))
lr.append(rang)
sumr+=rang
sub.append(prom)
sub.append(rang)
suma=0
prom=0
rang=0
may=0
mini=100000000000
lista2.append(sub)
sub=[ ]
#AQUI TERMINA LA PARTE MODIFICADA DEL CODIGO
#LAS TUPLAS SIGUIENTES REPRESENTAN LA TABLA DE VALORES CORRESPONDIENTE AL NUMERO DE LECTURAS
A2=(0, 0, 1.880, 1.023, 0.729, 0.577, 0.483, 0.419, 0.373, 0.377, 0.308, 0.285, 0.266, 0.249, 0.235, 0.223)
D3=(0, 0, 0, 0, 0, 0, 0, 0.076, 0.136, 0.184, 0.223, 0.256, 0.284, 0.308, 0.329, 0.348)
D4=(0, 0, 3.268, 2.574, 2.282, 2.114, 2.004, 1.924, 1.864, 1.816, 1.777, 1.744, 1.717, 1.692, 1.671, 1.652)
D2=(0, 0, 1.128, 1.693, 2.059, 2.326, 2.534, 2.704, 2.847, 2.970, 3.078, 3.173, 3.258, 3.336, 3.407, 3.472)
#DECLARAMOS LAS VARIABLES QUE TOMARAN UN VALOR DE LA TUPLA
p=0
a2=0
d3=0
d4=0
d2=0
#ESTE CICLO SOLO ES PARA OTORGAR EL VALOR A LOS VARIABLES POR PARTE DE LAS TUPLAS
for p in range(nl):
a2=A2[p]
d3=D3[p]
d4=D4[p]
d2=D2[p]
#A CONTINUACION SE ENCUENTRAN LAS OPERACIONES DE PROMEDIO, LCI, LCS
i=0
promp=(sump)/nm
promr=(sumr)/nm
LCIP=promp-(a2*promr)
LCSP=promp+(a2*promr)
LCIR=d3*promr
LCSR=d4*promr
#ESTAS LISTAS VACIAS SE LLENARAN CON VALORES DE PROMEDIO, LCI, LCS PARA SU GRAFICACION
pp=[ ]
pr=[ ]
lcip=[ ]
lcsp=[ ]
lcir=[ ]
lcsr=[ ]
#ESTE CICLO LE OTORGA A LAS LISTAS EL MISMO VALOR VARIABLE MULTIPLES VECES PARA SU GRAFICACION
for i in range(nm):
pp.append(promp)
pr.append(promr)
lcip.append(LCIP)
lcir.append(LCIR)
lcsp.append(LCSP)
lcsr.append(LCSR)
#LO SIGUIENTE IMPRIME LOS VALORES DADOS Y ADQUIRIDOS PREVIAMENTE
print("\n\n\n")
print("\tNo muestra\t\tLecturas (En OHMS)\t\tPromedio\tRango")
for r in range(nm):
print("\t%.4f"%(r+1), end="\t\t")
for col in range(nl):
print(lista2[r][col], end="\t")
for col in range(2):
print("\t%.4f"%(lista2[r][col+nl]), end="\t")
print()
print("\t\t\t\t\t\t\tProm\t%.4f\t\t%.4f"%(promp,promr))
print("\t\t\t\t\t\t\tLCS\t%.4f\t\t%.4f"%(LCSP,LCSR))
print("\t\t\t\t\t\t\tLCI\t%.4f\t\t%.4f"%(LCIP,LCIR))
#POR ULTIMO SE GRAFICAN LOS RESULTADOS
plt.title("Promedios")
plt.grid(True)
plt.plot(lp,label="Promedios",marker='^')
plt.plot(pp,label="Promedio",marker='o')
plt.plot(lcsp,label="LCS",marker='*')
plt.plot(lcip,label="LCI",marker='p')
plt.legend()
plt.show()
plt.title("Rangos")
plt.grid(True)
plt.plot(lr,label="Rangos",marker='x')
plt.plot(pr,label="Promedio",marker='p')
plt.plot(lcsr,label="LCS",marker='^')
plt.plot(lcir,label="LCI",marker='*')
plt.legend()
plt.show()

archivo.close()

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Ejemplo 1












Comentarios

Entradas populares de este blog

Funciones Geometricas

En este programa encontramos múltiples formulas para la obtención de área y volumen de una gran variedad de figuras geométricas. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> import math def cuadrado(): lado=float(input("Dame el valor de lado: ")) cuadrado=[] cuadrado.append(lado) area=cuadrado[0]*cuadrado[0] cuadrado.append(area) print("Lado= {}, Area= {}".format(cuadrado[0],cuadrado[1])) def triangulo(): triangulo=[] base=float(input("Dame la base: ")) altura=float(input("Dame la altura: ")) triangulo.append(base) triangulo.append(altura) area=(triangulo[0]*triangulo[1])/2 triangulo.append(area) print("Base= {}, Altura= {}, Area= {}".format(triangulo[0],triangulo[1],triangulo[2])) def rectangulo(): rectangulo...

Fotoresistencia y foco

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> from turtle import * import turtle  import numpy as np from pylab import* import random import time import RPi.GPIO as GPIO, time t=Turtle() screen=t.getscreen() setup(400,300,0,0) screensize(150,150) colormode(255) t=Turtle() t.speed(10) screen=t.getscreen() setup(900,620,0,0) screensize(500,150) colormode(255) turtle.bgcolor("darkgray") t.hideturtle() t.penup() t.pensize(5) t.goto(-250,-150) t.pendown() t.goto(450,-150) t.penup() t.goto(-250,-150) t.pendown() t.goto(-450,-300) t.penup() t.goto(-250,-150) t.pendown() t.goto(-250,500) t.penup() t.goto(100,300) t.pendown() t.dot(40,255,255,255) t.dot(40,255,250,0) t.bgcolor("darkgray") GPIO.setmode(GPIO.BCM) valor=0 def medida (): measu...

Radar de velocidad

Las siguientes líneas de código dibujan y actúan como un radar de velocidad en pequeña escala. El sensor lee dos distancias (una inicial y una final) entre 50 y 10 cm, es a los 50 cm cuando lee la inicial y a menos de 10 cuando obtiene la final, al mismo tiempo contara las décimas de segundo para obtener el tiempo. Ya teniendo las dos variables necesarias para calcular una velocidad solo realiza la operación y muestra el resultado en la interfaz.  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> import time import botbook_gpio as gpio from turtle import * t=Turtle() screen=t.getscreen() setup(720,720,0,0) t.speed(5) t.penup() screen.bgcolor("gray") t.fillcolor("white") t.begin_fill() t.goto(200,-200) t.pendown() t.goto(...