Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pyrecord import Record
- import random
- import numpy as np
- # Define el registro como tipo de datos
- Nota = Record.create_type("Nota","legajo","nombre_apellido","nota1","nota2","nota3",legajo = 0,nombre_apellido = '',nota1 = 0,nota2 = 0,nota3 = 0)
- def cargar(vector,archivo):
- archivo = open(archivo, 'r')
- contador_de_lineas = 0
- for linea in archivo:
- vector[contador_de_lineas] = Nota()
- carga_aleatoria(vector[contador_de_lineas],linea.rstrip('\n'))
- contador_de_lineas += 1
- archivo.close
- return contador_de_lineas,vector
- def carga_aleatoria(registro, nombre):
- registro.alumno = nombre
- registro.legajo = random.randrange(1,1001,100)
- registro.nota1 = random.randint(1,10)
- registro.nota2 = random.randint(1,10)
- registro.nota3 = random.randint(1,10)
- def mostrar_registro(registro):
- print("[",registro.legajo,",",registro.alumno,",",registro.nota1,",",registro.nota2,",",registro.nota3,"]",)
- def mostrar_registro_2(registro,valor_adicional,valor_adicional1):
- print("Legajo : ",registro.legajo," |Nombre y apellido: ",registro.alumno," |"," Promedio: ",
- valor_adicional," |", " Condicion: ",valor_adicional1)
- def ordenar_vector(vector,cantidad):
- se_hizo_un_cambio = True
- while se_hizo_un_cambio:
- se_hizo_un_cambio = False
- indice = 1
- while indice < cantidad:
- if vector[indice - 1].legajo > vector[indice].legajo:
- #swap
- aux = vector[indice - 1]
- vector[indice - 1 ] = vector[indice]
- vector[indice] = aux
- se_hizo_un_cambio = True
- indice += 1
- def mostrar_en_rango(vector,minimo,maximo,elementos,etiqueta):
- for n in range(elementos):
- promedio = (vector[n].nota1 + vector[n].nota2 + vector[n].nota3 ) / 3
- if (promedio >= minimo and promedio < maximo):
- mostrar_registro_2(vector[n],promedio,etiqueta)
- def main():
- cantidad_maxima = 100
- cant_real = 0
- # Define un vector de 100 elementos de tipo Nota pero vacio
- notas = np.empty([cantidad_maxima,], dtype=Nota)
- # Pedir que se cargue el vector con los datos del archivo
- cant_real,notas = cargar(notas,"alumnos.txt")
- ordenar_vector(notas,cant_real)
- # Mostrar el vector
- for i in range(cant_real):
- mostrar_registro(notas[i])
- mostrar_en_rango(notas,1,4,cant_real,"libre")
- mostrar_en_rango(notas,4,7,cant_real,"regular")
- mostrar_en_rango(notas,7,11,cant_real,"Promovido")
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement