In [ ]:
"""
IPython Notebook v4.0 para python 2.7
Librerías adicionales: Ninguna.
Contenido bajo licencia CC-BY 4.0. Código bajo licencia MIT. (c) Sebastian Flores.
"""

# Configuracion para recargar módulos y librerías 
%reload_ext autoreload
%autoreload 2

from IPython.core.display import HTML

HTML(open("style/iwi131.css", "r").read())






IWI131

Programación de Computadores

Sebastián Flores

http://progra.usm.cl/

https://www.github.com/usantamaria/iwi131

Grupos Actividad 2

  1. CANTILLANA, CASTRO, ARÉVALO
  2. GALLARDO, MORALES, ZEGERS
  3. ALMEIDA, ARRATIA, CANALES
  4. ALVARADO, BAHAMONDE, CASTILLO
  5. CARRIEL, CODDOU, ESTRADA
  6. CATALAN, COLLAO, ETEROVIC
  7. CHAURA, CURIHUAL, FLORES
  8. ESTAY, DURÁN, GRUNERT
  9. KANZUA, HERRERA, LÓPEZ C.
  10. LOBOS, OGALDE, PÉREZ
  11. LOPEZ, PROBOSTE, REQUENA
  12. SALAS, SANTELICES, TORREBLANCA
  13. MEDIANO, REYES
  14. SCHWERTER, SANDOVAL

Actividad 2

  • Un grupo por fila.
  • Designar un líder de grupo.
  • Discutir problema (inputs, outputs, requerimientos específicos) antes de comenzar a escribir código.
  • Actividad: 3 preguntas completamente independientes.

(a) Nota Mínima


In [2]:
def nota_minima(nota1, nota2):
    nota3 = 164 - nota1 - nota2
    return nota3

print nota_minima(0,0)
print nota_minima(35,65)
print nota_minima(88,70)
print nota_minima(100,100)


164
64
6
-36

(a) Nota Mínima


In [3]:
def nota_minima(nota1, nota2):
    nota3 = -100
    while nota3<200:
        if (nota1+nota2+nota3)/3.0>=54.5:
            return nota3
        nota3 += 1
    return nota3

print nota_minima(0,0)
print nota_minima(35,65)
print nota_minima(88,70)
print nota_minima(100,100)


164
64
6
-36

(b) Recuperativo


In [4]:
def recuperativo(nota1, nota2, nota3):
    peor_nota = min(nota1, nota2, nota3)
    nota_recuperativo = 164 - nota1 - nota2 - nota3 + peor_nota
    return nota_recuperativo

print recuperativo(0,0,0)
print recuperativo(50,40,30)
print recuperativo(35,65,45)
print recuperativo(88,70,90)
print recuperativo(100,100,100)


164
74
54
-14
-36

(b) Recuperativo


In [ ]:
def recuperativo(nota1, nota2, nota3):
    rec1 = nota_minima(nota2, nota3)
    rec2 = nota_minima(nota1, nota3)
    rec3 = nota_minima(nota1, nota2)
    nota_recuperativo = min(rec1, min(rec2, rec3))
    return nota_recuperativo

print recuperativo(0,0,0)
print recuperativo(50,40,30)
print recuperativo(35,65,45)
print recuperativo(88,70,90)
print recuperativo(100,100,100)

(c) Alumnos


In [5]:
def alumno_critico():
    alumno_critico = 0
    nota_alumno_critico = -1
    alumno_actual = 1
    while True:
        print "Alumno", alumno_actual
        nota1 = int(raw_input("Certamen 1: "))
        if nota1==-1:
            break
        nota2 = int(raw_input("Certamen 2: "))
        nota3_necesaria = nota_minima(nota1, nota2)
        print "nota minima C3 es: ", nota3_necesaria
        nota3 = int(raw_input("Certamen 3: "))
        if nota3_necesaria > nota3:
            CR = recuperativo(nota1, nota2, nota3)
            print "nota minima CR es: ", CR
        if CR<=100 and CR>nota_alumno_critico:
            alumno_critico = alumno_actual
            nota_alumno_critico = CR
        alumno_actual += 1
    print "Alumno mas critico:", alumno_critico

alumno_critico()


Alumno 1
Certamen 1: 65
Certamen 2: 35
nota minima C3 es:  64
Certamen 3: 14
nota minima CR es:  64
Alumno 2
Certamen 1: 100
Certamen 2: 80
nota minima C3 es:  -16
Certamen 3: 10
Alumno 3
Certamen 1: 100
Certamen 2: 55
nota minima C3 es:  9
Certamen 3: 50
Alumno 4
Certamen 1: -1
Alumno mas critico: 1