funciones57.py
def getDatoEnteroValidado(leyenda) :
while (True) :
try:
numero=int(input(leyenda))
break
except ValueError :
print("Ops' el dato que ingreso no es númerico. ")
return numero
def getDatoEnteroEntreRango(leyenda,limInf,limSup) :
while True :
try :
estrato=int(input(leyenda))
if(estrato<limInf or estrato>limSup) :
print("El valor debe estar entre,",limInf," y ",limSup)
continue
break
except ValueError:
print("El dato ingresado debe ser númerico ")
def getDatoDecimalValidado(leyenda) :
while (True) :
try:
numero=float(input(leyenda))
break
except ValueError :
print("Ops' el dato que ingreso no es númerico y contener punto decimal. ")
return numero
def imprimirMatriz(matriz):
for i in range(len(matriz)) :
for j in range(len(matriz[i])) :
print(matriz[i][j])
print("\n")
def ordenmiento(lista,tipo) :
if(tipo=='desc') :
for i in range(len(lista)) :
for j in range(i+1,len(lista)) :
if (lista[i]<lista[j]) :
temp=lista[i]
lista[i]=lista[j]
lista[j]=temp
elif(tipo=='asc') :
for i in range(len(lista)) :
for j in range(i+1,len(lista)) :
if (lista[i]>lista[j]) :
temp=lista[i]
lista[i]=lista[j]
lista[j]=temp
return lista
def buscar(lista,valor) :
for i in range(len(lista)) :
if(lista[i]==valor) :
return i
return -1
Solución 1
Solución 2
Solución 3
Solución 4
Solución 5
Solución 6
Solución 7
Solución 8
Solución 9
print("PROGRAMA DE CALIFCACIÓN CUALITATVIA")
nombre=input("Nombre: ")
calificacion=int(input("Calificación: "))
#0-59 D,60-79 C,80-89 B, 90-100 A
if(calificacion>=0 and calificacion<=100) :
if(calificacion<=59) :
cualitativa="D"
elif (calificacion>=60 and calificacion<=79) :
cualitativa="C"
elif (calificacion>=80 and calificacion<=89) :
cualitativa="B"
else :
cualitativa="A"
else :
cualitativa="No definida"
print("Nombre: ")
print("Califación cuantitativa: ",calificacion)
print("Califiación culitativa: ",cualitativa)
print("PROGRAMA QUE CALCULA EL VALOR DEL SERVICIO DE AGUA PAR N USUARIOS")
usario=int(input("Numero de usarios: "))
TARIFACONSUMO=200
totalRecaudado=0
for i in range(usario) :
codigo=input("Ingrese el código: ")
nombre=input("Ingrese el nombre: ")
estado=input("Ingrese el estado: V o S: ")
estrato=int(input("Ingrese el estrato: "))
cosumo=int(input("Comsumo del mes: "))
tarifaBasica=0
if(estado=="V") :
if(estrato==1):
tarifaBasica=10000
elif(estrato==2):
tarifaBasica=20000
elif(estrato==3):
tarifaBasica=30000
elif(estrato==4) :
tarifaBasica=45000
elif(estrato==5) :
tarifaBasica=60000
else:
tarifaBasica=70000
valorConsumo=cosumo*TARIFACONSUMO
total=tarifaBasica+valorConsumo
totalRecaudado=totalRecaudado+total
print("Nombre: ",nombre)
print("Tarifa básica: ",'{:,.2f}'.format(tarifaBasica))
print("Valor comsumo: ",'{:,.2f}'.format(valorConsumo))
print("Total: ",'{:,.2f}'.format(total))
print("Total recaudado: ",'{:,.2f}'.format(totalRecaudado))
print("PROGRAMA DE CALCULO DE SALARIO DE DOCENTES")
print("Número de docentes")
numeroDocentes=int(input())
totalSalarioDocentes=0
totalCtA=0
totalCtB=0
totalCtC=0
for i in range(numeroDocentes) :
numeroIdentidad=input("Ingrese el número de documento: ")
nombre=input("Ingrese el nombre: ")
categoria=input("Ingrese al categoria(A,B,C): ")
horas=int(input("Ingrese las horas trabajas: "))
valorCategoria=0
if(categoria=='A') :
valorCategoria=25000
totalCtA=totalCtA+1
elif(categoria=='B'):
valorCategoria=35000
totalCtB=totalCtB+1
else :
valorCategoria=50000
totalCtC=totalCtC+1
valorTotalSalarioDocente=valorCategoria*horas
totalSalarioDocentes=totalSalarioDocentes+valorTotalSalarioDocente
print("Nombre: ",nombre)
print("Valor a pagar: ",'{:,.2f}'.format(valorTotalSalarioDocente))
print("Valor total a pagar para todos los docentes: ",'{:,.2f}'.format(totalSalarioDocentes))
print("Total categoria A: ",totalCtA)
print("Total categoria B: ",totalCtB)
print("Total categoria C: ",totalCtC)
print("PROGRAMA DE TIMPO DE VIAJE")
tramo=int(input("Ingrese el tramo: "))
totalMinTramos=0
while (tramo!=0) :
totalMinTramos=totalMinTramos+tramo
tramo=int(input("Ingrese el tramo: "))
print("El tiempo total del viaje en minutos ", totalMinTramos)
print("El tiempo total del viaje en horas ", totalMinTramos//60, ":",totalMinTramos%60)
print("PROGRAMA DE SERIE DE COLLATZ")
numero=int(input("Ingrese el número: \n"))
print(numero)
while(numero!=1) :
if(numero%2==0) :
numero=numero/2
else :
numero=numero*3+1
print('{:,.0f}'.format(numero))
print("PROGRAMA TABLA GENER LAS TABLAS DE MULTIPLIACIÓN DEL UNO AL DIEZ")
#numero=int(input("Ingrese el número de la de multpliación: ")
for i in range(1,11) :
print("TABLA DE MULTIPLICAR DEL ",i,"\n")
for j in range(1,11) :
print(i,"*",j,"=",i*j)
print("\n")
print("PROGRAMA QUE CALCULA LA TARIFA ELECTRICA CON VALIDACIÓN DE DATOS: ")
tarifaBasica=0
while True :
try :
estrato=int(input("Ingresar estrato (1,2,3,4,5): "))
if(estrato<1 or estrato>5) :
print("El estrato debe ser 1,2,3,4,5 ")
continue
#calculo la tarifa basica
if(estrato==1) :
tarifaBasica=10000
elif (estrato==2) :
tarifaBasica=15000
elif (estrato==3) :
tarifaBasica=30000
elif (estrato==4) :
tarifaBasica=50000
else :
tarifaBasica=65000
print("Tarifa basica es: ",'{:,.2f}'.format(tarifaBasica))
break
except ValueError:
print("El dato ingresado debe ser númerico ")
print("Fin del proceso...")
funciones.py
def getDatoNumericoValidado(leyenda) :
while (True) :
try:
numero=int(input(leyenda))
break
except ValueError :
print("Ops' el dato que ingreso no es númerico. ")
return numero
def getDatoNumericoEntreRango(leyenda,limiteInferior,limiteSuperior) :
while True :
try :
estrato=int(input(leyenda))
if(estrato<limiteInferior or estrato>limiteSuperior) :
print("El valor debe estar entre, ",limiteInferior, " y ",limiteSuperior)
continue
break
except ValueError:
print("El dato ingresado debe ser númerico ")
ServicioTelefono.py
import funciones
VALOR_IMPULSO=100
#Funciones
def getTarifa(estrato) :
if(estrato==1):
tarifaBasica=10000
elif (estrato==2):
tarifaBasica=15000
elif (estrato==3):
tarifaBasica=20000
elif (estrato==4) :
tarifaBasica=25000
else :
tarifaBasica=30000
return tarifaBasica
#FinFunciones
n=funciones.getDatoNumericoValidado("Ingrese el número de abonados")
totalPagoAbonados=0
for i in range(n) :
nombre=input("Ingrese el nombre: ")
estrato=funciones.getDatoNumericoEntreRango("Ingrese por favor el estrato (1,2,3,4,5): ",1,5)
impulsos=funciones.getDatoNumericoValidado("Ingrese los impulsos: ")
tarifaBasica=getTarifa(estrato)
valorPagarAbononado=(impulsos*VALOR_IMPULSO)+tarifaBasica
totalPagoAbonados=totalPagoAbonados+valorPagarAbononado
print("Nombre: ",nombre," valor a pagar: ",valorPagarAbononado)
print("Total a pagar de todos los abonados: ",totalPagoAbonados)
print("PROGRMA DE LISTA DE NOMBRES Y SU TAMAÑO")
nombre=input("Ingresar nombre: ")
listaNombres=[]
listaNumeroCaracteres=[]
listaNombres.append(nombre)
listaNumeroCaracteres.append(len(nombre))
while (nombre!="FIN"):
nombre=input("Ingresar nombre: ")
listaNombres.append(nombre)
listaNumeroCaracteres.append(len(nombre))
for i in range(len(listaNombres)) :
print("Nombre: ",listaNombres[i], "tamaño: ",listaNumeroCaracteres[i])
Mayores
from funciones57 import *
#Variables Globales
datos=[]
#Funciones
def llenado(tamaño):
for i in range(tamaño) :
datos.append(getDatoDecimalValidado("Ingrese dato: "))
def imprimir():
for i in range(len(datos)):
print("Dato: ",datos[i])
def getPromedio():
suma=0
for i in range(len(datos)):
suma=suma+datos[i]
promedio=suma/len(datos)
return promedio
def getMayorPro(prom):
totalMayores=0
for i in range(len(datos)):
if(datos[i]>prom) :
totalMayores=totalMayores+1
return totalMayores
#Incio Programa
n=getDatoEnteroValidado("Ingrese la cantidad de veces que se van a solicitar datos: ")
llenado(n)
pro=getPromedio()
total=getMayorPro(pro)
print("Promedio: ",pro)
print("Total de valors mayores del promedio es: ",total)
imprimir()
funciones57.py
def getDatoEnteroValidado(leyenda) :
while (True) :
try:
numero=int(input(leyenda))
break
except ValueError :
print("Ops' el dato que ingreso no es númerico. ")
return numero
def getDatoEnteroEntreRango(leyenda,limInf,limSup) :
while True :
try :
estrato=int(input(leyenda))
if(estrato<limInf or estrato>limSup) :
print("El valor debe estar entre,",limInf," y ",limSup)
continue
break
except ValueError:
print("El dato ingresado debe ser númerico ")
def getDatoDecimalValidado(leyenda) :
while (True) :
try:
numero=float(input(leyenda))
break
except ValueError :
print("Ops' el dato que ingreso no es númerico y contener punto decimal. ")
return numero
#Funciones
def llenadoCalifiaciones():
calificaciones=[]
estu=int(input("Numbero estudiantes: "))
calf=int(input("Numero de califiaciones: "))
for i in range(estu) :
print("Califiaciones del estudiante: ",i)
calificaciones.append([])
for j in range(calf):
calificaciones[i].append(int(input("ingrese la calificaciones:")))
return calificaciones
def calcularNotaFinal(m):
notasFinales=[]
for i in range(len(m)) :
sumaNotas=0
for j in range(len(m[i])):
sumaNotas=sumaNotas+m[i][j]
notasFinales.append(sumaNotas/len(m[i]))
return notasFinales
def aprobadosReprobados(n) :
aprobados=0
reprobados=0
for i in range(len(n)) :
print("Estudiantes: ",i,":",n[i])
if(n[i]>=3):
aprobados=aprobados+1
else:
reprobados=reprobados+1
print("Aprobados: ",aprobados)
print("Reprobados: ",reprobados)
#Inicio de programa
calificaciones=llenadoCalifiaciones()
#calificaciones=[[3,4,5,1,4],[1,3,5,1,2],[4,4,1,5,1],[3,4,1,5,1],[3,4,3,2,3],[2,3,4,2,3],[2,5,2,1,4]]
listaNotasFinales=calcularNotaFinal(calificaciones)
aprobadosReprobados(listaNotasFinales)
from funciones57 import *
#Funciones
articulos={1:"Lapiz",2:"Cuadernos",3:"Borrador",4:"Calculadore",5:"Escuadra"}
precios={1:2500,2:3800,3:1200,4:35000,5:3700}
#Incio de Programa
numerArticulos=getDatoEnteroValidado("Ingrese el número de articulos: ")
sumaTotal=0
for i in range(numerArticulos) :
codigo=getDatoEnteroValidado("Ingrese código (1 a 5) del articulo: ")
cantidad=getDatoEnteroValidado("Ingrese la cantidad: ")
valorItem=precios[codigo]*cantidad
sumaTotal=sumaTotal+valorItem
print("Articulo: ",articulos[codigo]," valor unitario: ",precios[codigo]," cantidad: ",cantidad," valor Item:",valorItem)
print("Total: ",sumaTotal)
from funciones57 import *
#Variables Globales
listEstudiantes=[]
#Funciones
def loadData() :
estu1={'id':'0001','nombre':"Camilo",'c1':45,'c2':98,'c3':89,'nf':0}
estu2={'id':'0002','nombre':"Juan",'c1':23,'c2':38,'c3':56,'nf':0}
estu3={'id':'0003','nombre':"Maria",'c1':56,'c2':25,'c3':43,'nf':0}
estu4={'id':'0004','nombre':"Pedro",'c1':96,'c2':98,'c3':42,'nf':0}
estu5={'id':'0005','nombre':"Jose",'c1':10,'c2':60,'c3':99,'nf':0}
listEstudiantes.append(estu1)
listEstudiantes.append(estu2)
listEstudiantes.append(estu3)
listEstudiantes.append(estu4)
listEstudiantes.append(estu5)
def addEstudiante():
estudiante={}
estudiante['id']=input("Ingrese el id")
estudiante['nombre']=input("Ingrese nombre: ")
estudiante['c1']=getDatoEnteroValidado("Ingrese c1: ")
estudiante['c2']=getDatoEnteroValidado("Ingrese c2: ")
estudiante['c3']=getDatoEnteroValidado("Ingrese c3: ")
estudiante['nf']=0
listEstudiantes.append(estudiante)
def calcularNotafinaEstudiante():
for i in range(len(listEstudiantes)) :
suma=listEstudiantes[i].get('c1')+listEstudiantes[i].get('c2')+listEstudiantes[i].get('c3')
listEstudiantes[i]['nf']=suma/3
def promdioCurso():
suma=0
for i in range(len(listEstudiantes)) :
suma+=listEstudiantes[i].get('nf')
promedio=suma/len(listEstudiantes)
print("Promedio del curso: ",'{:,.1f}'.format(promedio))
def aprobadosReprobados():
aprobados=0
reprobados=0
for i in range(len(listEstudiantes)) :
if(listEstudiantes[i].get('nf')>=55):
aprobados+=1
else:
reprobados+=1
print("Aprobados: ",aprobados)
print("Reprobados: ",reprobados)
def buscar(idBuscar) :
for i in range(len(listEstudiantes)) :
if(listEstudiantes[i].get('id')==idBuscar):
return i
return -1
def imprimirPorPos(pos) :
print("Id: ",listEstudiantes[pos].get('id'),
"Nombre: ",listEstudiantes[pos].get('nombre'),
"C1: ",listEstudiantes[pos].get('c1'),
"C2: ",listEstudiantes[pos].get('c2'),
"C3: ",listEstudiantes[pos].get('c3'),
"Nf: ",'{:,.1f}'.format(listEstudiantes[pos].get('nf')))
def imprimir() :
for i in range(len(listEstudiantes)) :
print("Id: ",listEstudiantes[i].get('id'),
"Nombre: ",listEstudiantes[i].get('nombre'),
"C1: ",listEstudiantes[i].get('c1'),
"C2: ",listEstudiantes[i].get('c2'),
"C3: ",listEstudiantes[i].get('c3'),
"Nf: ",'{:,.1f}'.format(listEstudiantes[i].get('nf')))
def menu() :
print("_________________MENU____________________")
print("1.Crear Estudiante ")
print("2.Calcular la nota final de cada estudiante ")
print("3.Calcular el promedio del curso")
print("4.Cuantos aprobados y reprobados")
print("5.Imprimir listado estudiantes")
print("6.Buscar ")
print("7.Salir")
op=getDatoEnteroValidado("Ingresar opción: ")
return op
#Inicia Programa
loadData()
op=1
while (op>=1 and op<=6) :
op=menu()
if(op==1):
addEstudiante()
if(op==2):
calcularNotafinaEstudiante()
if(op==3):
promdioCurso()
if(op==4):
aprobadosReprobados()
if(op==5):
imprimir()
if(op==6):
id=input("Ingrese el id: ")
pos=buscar(id)
if(pos!=-1):
print("Datos del estudiante: ")
imprimirPorPos(pos)
else :
print("No existe ningún estudiante con ese Id !")
import random
#Declaraciones
tenistas=['Nadal','Melzer','Murray','Soderling','Djokovic','Berdych','Federer','Ferrer','Juan','Pedro','David','Eli','Willy','Jorge','Carlos','Daniel']
#Funciones
def mostrarTenista(n) :
for i in range(len(n)) :
print("Jugador: ",i+1,": ",n[i])
def rondas(n) :
nuevaRonda=[]
for i in range(0,len(n),2) :
print("a. ",n[i],"- b.",n[i+1]," : ")
g=random.randint(1,2)
if(g==1) :
print("a")
nuevaRonda.append(n[i])
else :
print("b")
nuevaRonda.append(n[i+1])
return nuevaRonda
# Inicio del programa
mostrarTenista(tenistas)
while len(tenistas)>1 :
tenistas= rondas(tenistas)
print(" ")
mostrarTenista(tenistas)
print(" ")
from funciones57 import *
a=[13,12,11,1,9,7,4,2,3,5,14]
b=[2,1,6,7,9,16,10,14,3,4,13]
c=[]
print("Lista a")
print(a)
print("Lista b")
print(b)
a=ordenmiento(a,'asc')
b=ordenmiento(b,'asc')
#merge
for i in range(len(a)) :
if(a[i]==b[i]) :
c.append(a[i])
else :
c.append(b[i])
c.append(a[i])
#Ordenar lista
c=ordenmiento(c,'asc')
#Elminar repetidos
c1=[]
for i in range(len(c)) :
sw=0
for j in range(i+1,len(c)) :
if(c[i]==c[j]) :
sw=1
if(sw==0) :
c1.append(c[i])
#Resultado final
print("Lista a")
print(a)
print("Lista b")
print(b)
print("Lista c")
print(c1)
from funciones57 import*
listaNumeros=[4,5,8,9,10,40,30,50,49]
#Funciones
def busqueda_binaria(lista,elemento,izq,der):
if izq>der:
return -1
med=(izq+der)//2
if lista[med]==elemento :
return med
elif lista[med]>elemento:
return busqueda_binaria(lista,elemento,izq,med-1)
else :
return busqueda_binaria(lista,elemento,med+1,der)
#Inicio de Programa
print(listaNumeros)
listaNumeros=ordenmiento(listaNumeros,'asc')
print(listaNumeros)
izq=0
der=len(listaNumeros)-1
numero=int(input("Ingrese número a buscar: "))
pos=busqueda_binaria(listaNumeros,numero,izq,der)
if(pos!=-1) :
print("Elemento encontrador en :", pos)
else :
print("Elemnto no encontrado")
from operator import concat
from funciones57 import *
from io import open
import json
#Variables Globales
listEstudiantes=[]
#Funciones
def guardarArchivoJson() :
with open("estudaintes.json","w") as archivo :
json.dump(listEstudiantes,archivo)
archivo.close()
def loadDataJson():
with open("estudaintes.json","r") as archivo:
datos=json.load(archivo)
archivo.close()
return datos
def guardarArchivo() :
archivo=open("estudiantes.txt","w")
datos=""
for i in range(len(listEstudiantes)) :
datos+=listEstudiantes[i].get('id')+","
datos+=listEstudiantes[i].get('nombre')+","
datos+=str(listEstudiantes[i].get('c1'))+","
datos+=str(listEstudiantes[i].get('c2'))+","
datos+=str(listEstudiantes[i].get('c3'))+","
datos+=str(listEstudiantes[i].get('nf'))
datos+="\n"
archivo.write(datos)
print("Guardado...")
def loadData() :
archivo=open("estudiantes.txt","r")
linea=archivo.readline()
while linea :
estu={}
datos=linea.split(',')
estu['id']=datos[0]
estu['nombre']=datos[1]
estu['c1']=int(datos[2])
estu['c2']=int(datos[3])
estu['c3']=int(datos[4])
estu['nf']=float(datos[5])
listEstudiantes.append(estu)
linea = archivo.readline()
archivo.close()
def addEstudiante():
estudiante={}
estudiante['id']=input("Ingrese el id")
estudiante['nombre']=input("Ingrese nombre: ")
estudiante['c1']=getDatoEnteroValidado("Ingrese c1: ")
estudiante['c2']=getDatoEnteroValidado("Ingrese c2: ")
estudiante['c3']=getDatoEnteroValidado("Ingrese c3: ")
estudiante['nf']=0
listEstudiantes.append(estudiante)
def calcularNotafinaEstudiante():
for i in range(len(listEstudiantes)) :
suma=listEstudiantes[i].get('c1')+listEstudiantes[i].get('c2')+listEstudiantes[i].get('c3')
listEstudiantes[i]['nf']=suma/3
def promdioCurso():
suma=0
for i in range(len(listEstudiantes)) :
suma+=listEstudiantes[i].get('nf')
promedio=suma/len(listEstudiantes)
print("Promedio del curso: ",'{:,.1f}'.format(promedio))
def aprobadosReprobados():
aprobados=0
reprobados=0
for i in range(len(listEstudiantes)) :
if(listEstudiantes[i].get('nf')>=55):
aprobados+=1
else:
reprobados+=1
print("Aprobados: ",aprobados)
print("Reprobados: ",reprobados)
def buscar(idBuscar) :
posiciones=[]
for i in range(len(listEstudiantes)) :
if(listEstudiantes[i].get('id')==idBuscar):
posiciones.append(i)
return posiciones
def imprimirPorPos(pos) :
print("Id: ",listEstudiantes[pos].get('id'),
"Nombre: ",listEstudiantes[pos].get('nombre'),
"C1: ",listEstudiantes[pos].get('c1'),
"C2: ",listEstudiantes[pos].get('c2'),
"C3: ",listEstudiantes[pos].get('c3'),
"Nf: ",'{:,.1f}'.format(listEstudiantes[pos].get('nf')))
def imprimir() :
print("Imprimir estudiantes")
for i in range(len(listEstudiantes)) :
print("Id: ",listEstudiantes[i].get('id'),
"Nombre: ",listEstudiantes[i].get('nombre'),
"C1: ",listEstudiantes[i].get('c1'),
"C2: ",listEstudiantes[i].get('c2'),
"C3: ",listEstudiantes[i].get('c3'),
"Nf: ",listEstudiantes[i].get('nf'))
def particion(lista) :
pivote=lista[0].get('id')
menores=[]
mayores=[]
for i in range(1,len(lista),1) :
if lista[i].get('id')<pivote:
menores.append(lista[i])
print("menores")
print(menores)
else :
mayores.append(lista[i])
return menores,pivote,mayores
def quicksort(lista) :
if len(lista)<2 :
return lista
else :
menores,pivote,mayores=particion(lista)
return quicksort(menores)+[pivote]+quicksort(mayores)
def menu() :
print("_________________MENU____________________")
print("1.Crear Estudiante ")
print("2.Calcular la nota final de cada estudiante ")
print("3.Calcular el promedio del curso")
print("4.Cuantos aprobados y reprobados")
print("5.Imprimir listado estudiantes")
print("6.Buscar ")
print("7.Ordenar asc")
print("8.Guardar")
print("9.Salir")
op=getDatoEnteroValidado("Ingresar opción: ")
return op
#Inicia Programa
#loadData()
listEstudiantes=loadDataJson()
op=1
while (op>=1 and op<=8) :
op=menu()
if(op==1):
addEstudiante()
if(op==2):
calcularNotafinaEstudiante()
if(op==3):
promdioCurso()
if(op==4):
aprobadosReprobados()
if(op==5):
print("op5")
imprimir()
if(op==6):
id=input("Ingrese el id: ")
pos=buscar(id)
if(pos!=-1):
print("Datos del estudiante: ")
imprimirPorPos(pos)
else :
print("No existe ningún estudiante con ese Id !")
if(op==7) :
print(listEstudiantes)
listEstudiantes=quicksort(listEstudiantes)
print(listEstudiantes)
if(op==8) :
#guardarArchivo()
guardarArchivoJson()