Documentos de Académico
Documentos de Profesional
Documentos de Cultura
21277153821
import random
import os
def gen_archivo(ruta):
os.mkdir(ruta)
def gen_grupo_cartones():
grupo_cartones = []
for i in range(100):
carton = gen_carton()
while carton in grupo_cartones:
carton = gen_carton()
grupo_cartones.append(carton)
return grupo_cartones
def gen_nombres_cartones():
nombres_cartones = []
for i in range(100):
nombre = str(i + 1) + str(random.randint(100000, 999999))
while len(nombre) < 9:
nombre = "0" + nombre
nombres_cartones.append(nombre)
return nombres_cartones
def gen_carton():
carton = []
for i in range(6):
num_random = random.randint(1,36)
while num_random in carton:
num_random= random.randint(1,36)
carton.append(num_random)
carton.sort()
return carton
def quitar_espacios_cartones(cartones_cn_espacios):
for i in range(100):
for j in range(6):
cartones_cn_espacios[i][j] = cartones_cn_espacios[i]
[j].replace("\n", "")
return cartones_cn_espacios
def pasar_lista_a_nums(cartones_sn_espacios):
for i in cartones_sn_espacios:
for j in range(6):
i[j] = int(i[j])
return cartones_sn_espacios
def gen_nums_ganador():
return gen_carton()
def gen_grupo_coincidencias(cartones_en_numeros,nums_ganador):
grupo_coincidencias = []
for i in range(100):
coincidencias_carton_actual = 0
for j in range(6):
for k in range(6):
if cartones_en_numeros[i][j]==nums_ganador[k]:
coincidencias_carton_actual += 1
grupo_coincidencias.append(coincidencias_carton_actual)
return grupo_coincidencias
def contar_coincidencias(grupo_coincidencias):
coincidencias = [0,0,0,0,0,0,0]
for coincidencia in grupo_coincidencias:
match coincidencia:
case 0:
coincidencias[0] += 1
case 1:
coincidencias[1] += 1
case 2:
coincidencias[2] += 1
case 3:
coincidencias[3] += 1
case 4:
coincidencias[4] += 1
case 5:
coincidencias[5] += 1
case 6:
coincidencias[6] += 1
return coincidencias
def leer_coincidencias(coincidencias):
indice_coincidencias = 0
for i in range(6):
print("hay "+str(coincidencias[i])+" cartones con
"+str(indice_coincidencias)+" coincidencias")
indice_coincidencias +=1
if coincidencias[6]==1:
print("Tenemos un ganador del sorteo"+"\n")
else:
print("No tenemos un ganador"+"\n")
def repartir_dinero(coincidencias,monto_a_repartir):
monto_restante = monto_a_repartir
if coincidencias[0]>0:
print("Los "+str(coincidencias[0])+" cartones con 0 coincidencias
no se llevan nada"+"\n")
if coincidencias[1]>0:
print("Los "+str(coincidencias[1])+" cartones con 1 coincidencias
tienen: "+str(monto_a_repartir/100)+" pesos a repartir")
print("Por lo que cada carton con 1 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[1])+"\n")
monto_restante -= monto_a_repartir/100
if coincidencias[2]>0:
print("Los "+str(coincidencias[2])+" cartones con 2 coincidencias
tienen: "+str(monto_a_repartir*0.03)+" pesos a repartir")
print("Por lo que cada carton con 2 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[2])+"\n")
monto_restante -= monto_a_repartir*0.03
if coincidencias[3]>0:
print("Los "+str(coincidencias[3])+" cartones con 3 coincidencias
tienen: "+str(monto_a_repartir*0.05)+" pesos a repartir")
print("Por lo que cada carton con 3 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[3])+"\n")
monto_restante -= monto_a_repartir*0.05
if coincidencias[4]>0:
print("Los "+str(coincidencias[4])+" cartones con 4 coincidencias
tienen: "+str(monto_a_repartir*0.1)+" pesos a repartir")
print("Por lo que cada carton con 4 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[4])+"\n")
monto_restante -= monto_a_repartir*0.1
if coincidencias[5]>0:
print("Los "+str(coincidencias[5])+" cartones con 5 coincidencias
tienen: "+str(monto_a_repartir*0.2)+" pesos a repartir")
print("Por lo que cada carton con 5 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[5])+"\n")
monto_restante -= monto_a_repartir*0.2
if coincidencias[6]>0:
print("El ganador tiene el premio de:
"+str(monto_a_repartir*0.4)+" pesos")
monto_restante -= monto_a_repartir*0.4
print("Ademas la casa se queda con: "+str(monto_restante)+" pesos
como utilidad"+"\n")
def validar_rango_num(num,min,max):
while num>max or num<min:
num = input("Valor invalido, ingrese nuevamente: ")
return num
def menu():
eleccion = input("Que desea hacer?\n 1.-Crear un concurso\n 2.-
Sortear un concurso ya creado \n")
match eleccion:
case "1":
num_concurso = input("ingrese el numero de concurso a
iniciar:\n")
gen_archivo(num_concurso)
grupo_cartones = gen_grupo_cartones()
nombre_cartones = gen_nombres_cartones()
gen_docs_cartones(grupo_cartones, nombre_cartones,
num_concurso)
print("Cartones creados exitosamente")
case "2":
num_concurso = input("Ingrese el numero del concurso a
sortear: \n")
nums_ganador = gen_nums_ganador()
nombres_cartones = os.listdir(num_concurso)
cartones_de_archivos =
retornar_cartones_de_archivos(nombres_cartones, num_concurso)
cartones_sn_espacios =
quitar_espacios_cartones(cartones_de_archivos)
cartones_en_numeros =
pasar_lista_a_nums(cartones_sn_espacios)
coincidencias_cartones =
gen_grupo_coincidencias(cartones_en_numeros, nums_ganador)
coincidencias_acumuladas =
contar_coincidencias(coincidencias_cartones)
monto_a_repartir = int(input("cuanto dinero sera a
repartir?"))
print("Los numeros sorteados son: "+str(nums_ganador))
leer_coincidencias(coincidencias_acumuladas)
repartir_dinero(coincidencias_acumuladas,
monto_a_repartir)
menu()
P6 (captura de la consola del programa posterior al Código):
def leer_txt(nombre):
file = open(nombre+".txt",'r')
cant_lineas = contar_lineas(nombre)
for i in range(cant_lineas):
linea = str(file.readline())
print(linea+"")
print("fin.")
file.close()
def quitar_espacios(palabra):
return palabra.replace("\n,.", "")
def separar_texto_en_palabras(nombre):
file = open(nombre+".txt",'r')
lineas = file.readlines()
cant_lineas = contar_lineas(nombre)
texto_limpio = []
for i in range(cant_lineas):
palabras_en_linea_actual = lineas[i].split()
for palabra in palabras_en_linea_actual:
texto_limpio.append(palabra)
file.close()
return texto_limpio
def contar_lineas(nombre):
file = open(nombre+".txt",'r')
texto = file.readlines()
return len(texto)
def leer_contar_lineas(nombre):
print("El archivo tiene " + str(contar_lineas(nombre)) + " lineas")
def contar_palabras(nombre):
cant_palabras = 0
file = open(nombre + ".txt", 'r')
lineas = file.readlines()
for linea in lineas:
linea = str(linea)
cant_palabras += len(linea.split())
file.close()
return cant_palabras
def leer_contar_palabras(nombre):
print("El archivo tiene "+str(contar_palabras(nombre))+" palabras")
def contar_letras(nombre):
cant_letras = 0
file = open(nombre + ".txt", 'r')
lineas = file.readlines()
for linea in lineas:
linea = str(linea)
grupo_palabras = linea.split()
for i in range(len(grupo_palabras)):
cant_letras += len(grupo_palabras[i])
return cant_letras
def leer_contar_letras(nombre):
print("El texto tiene "+str(contar_letras(nombre))+" letras")
def contar_palabra_el(nombre):
palabras = separar_texto_en_palabras(nombre)
cant_repeticiones = 0
cant_repeticiones += palabras.count("el")
cant_repeticiones += palabras.count("EL")
return cant_repeticiones