You are on page 1of 6

Ejercicio resumen 1: Programacin en Python

Programacin Avanzada
2012-2013
Javier Snchez Monedero
jsanchezm@uco.es

1er curso de Ingeniera Informtica


Departamento de Informtica y Anlisis Numrico
Escuela Politcnica Superior
Universidad de Crdoba
27 de noviembre de 2012

ndice
1. Descripcin

2. Ficheros de entrada

3. Ejemplo de ejecucin

4. Pistas
4.1. Pistas generales . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Cmo capturar la hora del sistema? . . . . . . . . . . . . . . .
4.3. Cmo leer un fichero lnea a lnea? . . . . . . . . . . . . . . .
4.4. Cmo transformar todos los elementos de una lista en enteros
4.5. Cmo declarar una clase madre y varias hijas . . . . . . . . . .
4.6. Cmo llamar a un mtodo de la clase madre . . . . . . . . . .
4.7. Cmo reimplementar un mtodo de la clase madre . . . . . . .

4
4
4
4
4
4
5
5

1.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

Descripcin

Debers realizar un programa que de informacin sobre los trenes y autobuses que van
y vienen al Campus de Rabanales. Para ello debes crear una clase Transporte y dos clases que
hereden de esta, Tren y Bus (la clase bus ser opcional). Todas las clases debern implementar
mtodos para acceder a los atributos de la clase.
La clase Transporte se encargar de:
1

Programacin Avanzada 2012-2013

La clase transporte recibir dos argumentos: fichero de horarios de ida y fichero de


horarios de vuelta.
Leer el fichero de horarios lnea a lnea, y transfrmalo en una lista de listas de manera
que cada elemento de la lista contenga el par (horas, minutos).
Almacenar dos listas de horarios, una para los horarios de ida y otra para los horarios
de vuelta.
Dada la hora del sistema, crear una lista con los transportes de un tipo que saldrn durante la hora actual y la siguiente. Puedes incluir que slo se seleccionen los transportes
que saldrn en menos de diez minutos.
La clase Tren ser una clase que herede de Transporte y utilice sus mtodos. El constructor
de esta clase recibir tres argumentos: nombre del transporte, fichero de horarios de ida y
fichero de horarios de vuelta.
La clase Bus ser una clase que herede de Transporte y que aada mtodos para almacenar
las paradas de autobs:
El constructor de esta clase recibir cinco argumentos: nombre del transporte, fichero
de horarios de ida, fichero de horarios de vuelta, fichero de paradas de ida y fichero de
paradas de vuelta.
La clase implementar un mtodo para mostrar las paradas de ida y las de vuelta.

2.

Ficheros de entrada
Los ficheros de entrada tendrn el siguiente formato.

$ cat tren_ida_horas.txt
7:20 h.
7:40 h.
8:15 h.
8:45 h.
9:10 h.
10:05 h.
...
$ cat bus_ida_paradas.txt
Gran Capitn
Coln Este
San CAyetano
Fuentantilla
P. Gracia
...

3.

Ejemplo de ejecucin

3. Ejemplo de ejecucin

>>> print Son las , datetime.now()


Son las 2012-11-27 17:20:44.087563
>>> miTren = Tren("Cercanas", "tren_ida_horas.txt", "
tren_vuelta_horas.txt" )
>>> miBus = Bus("Aucorsa", "bus_ida_horas.txt", "bus_vuelta_horas.
txt", \
"bus_ida_paradas.txt", "bus_vuelta_paradas.txt")
>>> miTren.imprimeInfo()
---------- INFORMACIN DE
El siguiente Cercanas de
17:45
Ya no quedan Cercanas de
El siguiente Cercanas de
17:55
>>> miBus.imprimeInfo()

Cercanas -------------IDA es a las:


IDA
VUELTA es a las:

---------- INFORMACIN DE Aucorsa -------------El siguiente Aucorsa de IDA es a las:


18:15
Ya no quedan Aucorsa de IDA
El siguiente Aucorsa de VUELTA es a las:
18:15
---------- INFORMACIN DE PARADAS DE Aucorsa -------------Paradas de IDA:
- Gran Capitn
- Coln Este
- San CAyetano
- Fuentantilla
- P. Gracia
- Avda. de Barcelona
- Avda. Libia
- Fidiana
- C.C. Zahira
- Gasolinera S. Carlos
- Campus Rabanales
Paradas de VUELTA:
- Campus Rabanales
- Jess Rescatado
- Marrubial (P. Gracia)
- Coln Norte
- Vial Norte
- Prolongacin Gran Capitn
- Gran Capitn

Programacin Avanzada 2012-2013

4.

Pistas

4.1.

Pistas generales

Repasa las siguientes cuestiones


Acceso a secuencias (slicing, concatenacin. . . )
Funciones de cadenas (split, strip, replace. . . )
Listas
Listas por compresin

4.2.

Cmo capturar la hora del sistema?

from datetime import datetime


...
t= datetime.now()
hora = [t.hour, t.minute]

4.3.

Cmo leer un fichero lnea a lnea?

f = open(fichero,"r")
for i in f:
print i
f.close()

4.4.

Cmo transformar todos los elementos de una lista en enteros

>>> l = [1,2]
>>> type(l)
<type list>
>>> type(l[0])
<type str>
>>> li = map(int,l)
>>> type(li[0])
<type int>

4.5.

Cmo declarar una clase madre y varias hijas

# Clase madre
class A(object):
def __init__(self):
print Inicializacin de A

4. Pistas

# Clase B hereda de A
class B(A):
def __init__(self):
print Inicializacin de B
# Clase C hereda de A
class C(A):
def __init__(self):
print Inicializacin de C despus de la madre

4.6.

Cmo llamar a un mtodo de la clase madre

# Clase C hereda de A
class C(A):
def __init__(self):
# Llamada al constructor de la clase padre de C
super(C,self).__init__()
print Inicializacin de C despus de la madre

4.7.

Cmo reimplementar un mtodo de la clase madre

# Clase madre
class A(object):
def __init__(self):
print Inicializacin de A
def metodo(self):
print Llamada al mtodo de A
# Clase B hereda de A
class B(A):
def __init__(self):
print Inicializacin de B
# Clase C hereda de A
class C(A):
def __init__(self):
# Llamada al constructor de la clase padre de C
super(C,self).__init__()
print Inicializacin de C despus de la madre
def metodo(self):
print Llamada al mtodo de C que sobreescribe el de A

Programacin Avanzada 2012-2013

a = A()
b = B()
c = C()
b.metodo()
c.metodo()
>>>
Inicializacin de
Inicializacin de
Inicializacin de
Inicializacin de
Llamada al mtodo
Llamada al mtodo

A
B
A
C despus de la madre
de A
de C que sobreescribe el de A

You might also like