Arreglos de Objetos
292.50K

Arreglos de Registros

1.

ALGORITMOS Y ESTRUCTURAS DE
DATOS
Ficha 20
Arreglos de Registros
Ing. Analía Guzmán Ing. Silvio Serra

2. Arreglos de Objetos

En Python un arreglo puede contener elementos de
cualquier 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 Objetos
Ejemplo:
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 Objetos
Ejemplo:
# 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 Estudio
Implementar 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 Estudio
Estudiar soluciones de problemas 48, 49 y 50 de la ficha
de estudio 20
English     Русский Rules