rosquillaconchocolate@gmail.com

mail@pastecode.io avatar
unknown
python
2 years ago
11 kB
4
Indexable
Never
'''Programa que pregunte de cuántas notas es el lapso a evaluar, que luego pida las notas de dicha 
cantidad y que luego muestre el promedio y si éste es menor a 3.5 que muestre la nota o las notas más bajas
y que diga cuánto debería subirla para tener un promedio de 3.5'''

print("Bienvenido al programa para calcular promedios colegiales!")

listaNotas=[]
promedioUser=0

while True:
	eleccion=int(input("Introduce el máximo de notas a evaluar: "))

	if eleccion > 1 and eleccion <= 6:
		break

	else:
		print("Debes introducir mínimo 2 notas y máximo 6 notas")

#Establecemos las notas dentro de una lista, dependiendo del número de lapso escogido por el usuario
for i in range(eleccion):

	while True:
		num = float(input("Introduce la nota número {}: ".format(i+1)))

		if num <= 5 and num >= 1:
			listaNotas.append(num)
			break

		else: 
			print("No puedes agregar una nota menor a 1 ni mayor a 5")
			

#Declaramos variable booleana para saber si se repite la nota o no
seRepite = False
numRep = 0
contBool = 0
for nota in listaNotas:
	if nota == contBool:
		numRep = numRep + 1
		seRepite = True
	contBool = nota

#Definimos la nota menor y la devolvemos mediante un método para su posterior utilización
def notaMenor(notasList):

	conteoMin = 5

	for nota in notasList:
		if nota < conteoMin:
			conteoMin = nota

	return conteoMin

notaMin = notaMenor(listaNotas)
notaMinPrint = notaMin

#Definimos la segunda nota menor, para su posterior uso 
def segundaNotaMenor(notasList):

	global notaMin
	global numRep
	global seRepite

	conteoMin = 5

	for nota in notasList:

		if numRep == 0:
			seRepite = False

		if nota < conteoMin:
			if nota > notaMin:
				conteoMin = nota
			elif nota == notaMin:
				if seRepite == True:
					conteoMin = nota
					numRep = numRep - 1

	return conteoMin

segundaNotaMin = segundaNotaMenor(listaNotas)
segundaNotaMinPrint = segundaNotaMin

#Definimos la tercera nota menor
def terceraNotaMenor(notasList):

	global segundaNotaMin
	global numRep
	global seRepite

	conteoMin = 5

	for nota in notasList:
		
		if numRep == 0:
			seRepite = False

		if nota < conteoMin:
			if nota > segundaNotaMin:
				conteoMin = nota
			elif nota == notaMin:
				if seRepite == True:
					conteoMin = nota
					numRep = numRep - 1

	return conteoMin

terceraNotaMin = terceraNotaMenor(listaNotas)
terceraNotaMinPrint = terceraNotaMin

#Definimos la cuarta nota menor
def cuartaNotaMenor(notasList):

	global terceraNotaMin
	global numRep
	global seRepite

	conteoMin = 5

	for nota in notasList:

		if numRep == 0:
			seRepite = False

		if nota < conteoMin:
			if nota > terceraNotaMin:
				conteoMin = nota
			elif nota == notaMin:
				if seRepite == True:
					conteoMin = nota
					numRep = numRep - 1

	return conteoMin

cuartaNotaMin = cuartaNotaMenor(listaNotas)
cuartaNotaMinPrint = cuartaNotaMin

#Definimos la quinta nota menor
def quintaNotaMenor(notasList):

	global cuartaNotaMin
	global numRep
	global seRepite

	conteoMin = 5

	for nota in notasList:

		if numRep == 0:
			seRepite = False

		if nota < conteoMin:
			if nota >= cuartaNotaMin:
				conteoMin = nota
			elif nota == notaMin:
				if seRepite == True:
					conteoMin = nota
					numRep = numRep - 1

	return conteoMin

quintaNotaMin = quintaNotaMenor(listaNotas)
quintaNotaMinPrint = quintaNotaMin

#Definimos la sexta y última nota menor
def sextaNotaMenor(notasList):

	global quintaNotaMin
	global numRep
	global seRepite

	conteoMin = 5

	for nota in notasList:

		if numRep == 0:
			seRepite = False

		if nota < conteoMin:
			if nota >= quintaNotaMin:
				conteoMin = nota
		elif nota == notaMin:
				if seRepite == True:
					conteoMin = nota
					numRep = numRep - 1

	return conteoMin

sextaNotaMin = sextaNotaMenor(listaNotas)
sextaNotaMinPrint = sextaNotaMin

#Establecemos el promedio base
basePromedio = 3.5 * eleccion

#Establecemos el promedio usando las notas del usuario
for nota in listaNotas:
	promedioUser = promedioUser + nota

#Establecemos promedio del usuario para elaborar los condicionales
promedioUserTotal = promedioUser / eleccion

#Mostramos el promedio del usuario
print("Tu promedio es de ", promedioUserTotal)

if promedioUserTotal < 3.5:
	print("Dicho promedio no es suficiente para aprobar la asignatura")

else:
	print("Felicidades! Con dicho promedio puedes aprobar la asignatura")
	exit()

#Procedemos a comparar ambos promedios para saber cuánta nota nos falta
residuoNotas = basePromedio - promedioUser

#Creamos condicionales que funcionen dependiendo de la cantidad de notas a subir
#Condicional para solo 1 nota a corregir
if residuoNotas <= (5 - notaMin):
	
	#Le sumamos el residuo a nuestra nota mínima e imprimimos la nota 
	notaMin = notaMin + residuoNotas
	print("Debes mejorar sólo 1 nota para aprobar la asignatura")
	print("Tu nota más baja fue ", notaMinPrint, " debes aumentarla a ", notaMin, " para poder tener un promedio de 3.5")
	exit()

#Condicional para 2 notas a corregir
elif residuoNotas <= (5 - notaMin) + (5 - segundaNotaMin):
	
	#Dividimos los residuos de cada una de las dos notas
	residuoNota1 = 5 - notaMin
	residuoNotas = residuoNotas - residuoNota1

	#Le sumamos el residuo a nuestra nota 1
	notaMin = notaMin + residuoNota1

	#Le sumamos el residuo a nuestra nota 2
	segundaNotaMin = segundaNotaMin + residuoNotas

	#Imprimimos en consola ambas notas y su necesario para pasar asignatura
	print("Debes mejorar dos notas para poder aprobar la asignatura")
	print("La primera nota a mejorar es ", notaMinPrint, " debes aumentarla a ", notaMin)
	print("Tu segunda nota a mejorar es ", segundaNotaMinPrint, " debes aumentarla a ", segundaNotaMin)
	print("Con eso obtendrías un promedio de 3.5")
	exit()

#Condicional para 3 notas a corregir
elif residuoNotas <= (5 - notaMin) + (5 - segundaNotaMin) + (5 - terceraNotaMin):

	#Dividimos los residuos de cada una de las notas
	residuoNota1 = 5 - notaMin
	residuoNota2 = 5 - segundaNotaMin
	residuoNotas = residuoNotas - (residuoNota1 + residuoNota2)

	#Le sumamos el residuo a nuestras notas
	notaMin = notaMin + residuoNota1
	segundaNotaMin = segundaNotaMin + residuoNota2
	terceraNotaMin = terceraNotaMin + residuoNotas

	#Imprimimos en consola las notas y su necesario para pasar asignatura
	print("Debes mejorar tres notas para poder aprobar la asignatura")
	print("La primera nota a mejorar es ", notaMinPrint, " debes aumentarla a ", notaMin)
	print("Tu segunda nota a mejorar es ", segundaNotaMinPrint, " debes aumentarla a ", segundaNotaMin)
	print("Tu tercera nota a mejorar es ", terceraNotaMinPrint, " debes aumentarla a ", terceraNotaMin)
	print("Con eso obtendrías un promedio de 3.5")
	exit()

#Condicional para 4 notas a corregir
elif residuoNotas <= (5 - notaMin) + (5 - segundaNotaMin) + (5 - terceraNotaMin) + (5 - cuartaNotaMin):

	#Dividimos los residuos de cada una de las notas
	residuoNota1 = 5 - notaMin
	residuoNota2 = 5 - segundaNotaMin
	residuoNota3 = 5 - terceraNotaMin
	residuoNotas = residuoNotas - (residuoNota1 + residuoNota2 + residuoNota3)

	#Le sumamos el residuo a nuestras notas
	notaMin = notaMin + residuoNota1
	segundaNotaMin = segundaNotaMin + residuoNota2
	terceraNotaMin = terceraNotaMin + residuoNota3
	cuartaNotaMin =  cuartaNotaMin + residuoNotas

	#Imprimimos en consola las notas y su necesario para pasar asignatura
	print("Debes mejorar cuatro notas para poder aprobar la asignatura")
	print("La primera nota a mejorar es ", notaMinPrint, " debes aumentarla a ", notaMin)
	print("Tu segunda nota a mejorar es ", segundaNotaMinPrint, " debes aumentarla a ", segundaNotaMin)
	print("Tu tercera nota a mejorar es ", terceraNotaMinPrint, " debes aumentarla a ", terceraNotaMin)
	print("Tu cuarta nota a mejorar es ", cuartaNotaMinPrint, " debes aumentarla a ", cuartaNotaMin)
	print("Con eso obtendrías un promedio de 3.5")
	exit()

#Condicional para 5 notas a corregir
elif residuoNotas <= (5 - notaMin) + (5 - segundaNotaMin) + (5 - terceraNotaMin) + (5 - cuartaNotaMin) + (5 - quintaNotaMin):

	#Dividimos los residuos de cada una de las notas
	residuoNota1 = 5 - notaMin
	residuoNota2 = 5 - segundaNotaMin
	residuoNota3 = 5 - terceraNotaMin
	residuoNota4 = 5 - cuartaNotaMin
	residuoNotas = residuoNotas - (residuoNota1 + residuoNota2 + residuoNota3 + residuoNota4)

	#Le sumamos el residuo a nuestras notas
	notaMin = notaMin + residuoNota1
	segundaNotaMin = segundaNotaMin + residuoNota2
	terceraNotaMin = terceraNotaMin + residuoNota3
	cuartaNotaMin =  cuartaNotaMin + residuoNota4
	quintaNotaMin = quintaNotaMin + residuoNotas

	#Imprimimos en consola las notas y su necesario para pasar asignatura
	print("Debes mejorar cinco notas para poder aprobar la asignatura")
	print("La primera nota a mejorar es ", notaMinPrint, " debes aumentarla a ", notaMin)
	print("Tu segunda nota a mejorar es ", segundaNotaMinPrint, " debes aumentarla a ", segundaNotaMin)
	print("Tu tercera nota a mejorar es ", terceraNotaMinPrint, " debes aumentarla a ", terceraNotaMin)
	print("Tu cuarta nota a mejorar es ", cuartaNotaMinPrint, " debes aumentarla a ", cuartaNotaMin)
	print("Tu quinta nota a mejorar es ", quintaNotaMinPrint, " debes aumentarla a ", quintaNotaMin)
	print("Con eso obtendrías un promedio de 3.5")
	exit()	

#Condicional para 6 notas a corregir
elif residuoNotas <= (5 - notaMin) + (5 - segundaNotaMin) + (5 - terceraNotaMin) + (5 - cuartaNotaMin) + (5 - quintaNotaMin) + (5 - sextaNotaMin):

	#Dividimos los residuos de cada una de las notas
	residuoNota1 = 5 - notaMin
	residuoNota2 = 5 - segundaNotaMin
	residuoNota3 = 5 - terceraNotaMin
	residuoNota4 = 5 - cuartaNotaMin
	residuoNota5 = 5 - quintaNotaMin
	residuoNotas = residuoNotas - (residuoNota1 + residuoNota2 + residuoNota3 + residuoNota4 + residuoNota5)

	#Le sumamos el residuo a nuestras notas
	notaMin = notaMin + residuoNota1
	segundaNotaMin = segundaNotaMin + residuoNota2
	terceraNotaMin = terceraNotaMin + residuoNota3
	cuartaNotaMin =  cuartaNotaMin + residuoNota4
	quintaNotaMin = quintaNotaMin + residuoNota5
	sextaNotaMin = sextaNotaMin + residuoNotas

	#Imprimimos en consola las notas y su necesario para pasar asignatura
	print("Debes mejorar cinco notas para poder aprobar la asignatura")
	print("La primera nota a mejorar es ", notaMinPrint, " debes aumentarla a ", notaMin)
	print("Tu segunda nota a mejorar es ", segundaNotaMinPrint, " debes aumentarla a ", segundaNotaMin)
	print("Tu tercera nota a mejorar es ", terceraNotaMinPrint, " debes aumentarla a ", terceraNotaMin)
	print("Tu cuarta nota a mejorar es ", cuartaNotaMinPrint, " debes aumentarla a ", cuartaNotaMin)
	print("Tu quinta nota a mejorar es ", quintaNotaMinPrint, " debes aumentarla a ", quintaNotaMin)
	print("Tu sexta nota a mejorar es ", sextaNotaMinPrint, " debes aumentarla a ", sextaNotaMin)
	print("Con eso obtendrías un promedio de 3.5")
	exit()