Similar presentations:
Arreglos de Registros
1.
ALGORITMOS Y ESTRUCTURAS DEDATOS
Ficha 20
Arreglos de Registros
Ing. Analía Guzmán Ing. Silvio Serra
2. Arreglos de Objetos
En Python un arreglo puede contener elementos decualquier tipo incluyendo elementos que sean
referencias a objetos.
En lugar de definir varios arreglos separados, se define
un único arreglo que contiene a todos los datos.
Es más útil almacenar objetos en cada casillero de un
arreglo, en lugar de usar arreglos paralelos.
Vectores paralelos
Vector de registros
v1
v
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
v2
v3
v1, v2, v3
v
3
3.
Arreglos de ObjetosEjemplo:
class Alumno:
def __init__(self, leg=0, nom='', pro=0.0):
self.legajo = leg
self.nombre = nom
self.promedio = pro
def __str__(self):
res = '\n Legajo: '+ str(self.legajo)
res += '- Nombre: '+ str(self.nombre)
res += '- Promedio: '+ str(self.promedio)
return res
4.
Arreglos de ObjetosEjemplo:
# crear el vector
# suponemos que el usuario carga 6 elementos
n = int(input('Cargue la cantidad de elementos:'))
v = n * [None]
v
None None None None None None
0
1
2
3
4
5
5.
Arreglos de Objetos#Para cargar los datos del vector
def read(v)
for i in range(len(v)):
leg = int(input('Legajo: '))
nom = input('Nombre: ')
pro = float(input('Promedio: '))
a = Alumno(leg, nom, pro)
v[i] = Alumno(leg, nom, pro)v[i] = a
v
0
1
2
3
4
5
legajo: 10
legajo: 21
legajo: 45
legajo: 33
legajo: 76
legajo: 57
nombre: Luis
promedio: 8
nombre: Juan
nombre: Ana
nombre: Ale
nombre: Maria
nombre: Pedro
promedio: 5
promedio: 7
promedio: 4
promedio: 10
promedio: 8
6.
Arreglos de Objetos#Para mostrar los datos del vector
#mostrando los campos directo del registro
def mostrar(v)
for i in range(len(v)):
print('\nLegajo: ',v[i].legajo)
print('Nombre: ', v[i].nombre)
print('Promedio: ', v[i].promedio)
#O mejor…
def mostrar(v)
for i in range(len(v)):
print(v[i])
7.
Casos de EstudioImplementar un programa que administre la información de
alumnos, que poseen legajo, nombre y promedio.
Con esto se pide:
1. Generar la estructura alumno.
2. Cargar en un vector n alumnos.
3. Mostrar sus datos.
4. Mostrar los alumnos que tienen promedio mayor a 8.
5. Mostrar los alumnos ordenados de menor a mayor por
legajo.
6. Generar y mostrar un vector de 10 contadores, donde
cada posición representa la escala de notas del 1 al 10 y
los valores del vector representan las cantidades de
alumnos que tuvieron la nota promedio según la escala de
notas.
8.
Casos de EstudioEstudiar soluciones de problemas 48, 49 y 50 de la ficha
de estudio 20