def ordenado(n):
    str_n=str(n)
    cont = 0
    while cont<len(str_n):
        if cont == len(str_n)-1:
            return True
        if str_n[cont]<str_n[cont+1]:#como compara strings??
            return False
        else:
            cont+=1
            
print ordenado(1) # True
print ordenado(567) # False
print ordenado(9876) # True
print ordenado(98876) #True

print "a" < "b"
print "a" < "z"
print "0" < "1"
print "5" < "9"
print "A" < "a"
print "Z" < "a"
print "abcdaria" < "abcedario" # Comparacion letra a letra
print "python" < "pythonistico" # Si inicios son iguales, gana la mas breve.
print "abc" < "z"  # Si inicios son distintos, no depende de numero de letras

def ordenado(n):
    str_n = str(n)
    j = 0
    while j<len(str_n):
        if j == len(str_n)-1:
            return True
        if int(str_n[j]) < int(str_n[j+1]):
            return False
        j += 1
            
print ordenado(1) # True
print ordenado(567) # False
print ordenado(9876) # True
print ordenado(98876) #True

"""
Explanation: <header class="w3-container w3-teal">
<img src="images/utfsm.png" alt="" align="left"/>
<img src="images/inf.png" alt="" align="right"/>
</header>
<br/><br/><br/><br/><br/>
IWI131
Programación de Computadores
Sebastián Flores
http://progra.usm.cl/ 
https://www.github.com/usantamaria/iwi131
Certamen 1
7 pm, C240.
Formato
3 preguntas:

Ruteo y "adivine que hace".
Diagrama de flujo.
Hacer un programa en python.

Consejos previos al certamen
3 factores cruciales
* Conocimiento: Estudien con tiempo y a conciencia.
* Concentración: Descancen lo suficiente.
* Energía: Coman algo ligero antes del certamen.
Consejos durante el certamen

No entren en pánico: respiren profundo y recuperen la concentración: si han venido a clases y estudiado, saben lo suficiente.
No se apuren: lean bien el enunciado, subrayen palabras claves y anoten ideas o conceptos que son importantes para resolución.
Pregúntense: ¿Qué se está tratando de medir en este problema? ¿Qué es lo fácil/difícil?
Administren bien su tiempo: 
15 minutos para el ruteo 
30 minutos para el diagrama de flujo 
30 minutos para programa en python
5 minutos para "adivine que hace". 
10 minutos para revisar y corregir detalles.

Consejos después del certamen

Es sólo un certamen: el ramo no acaba aquí.
¿Que cosas podría haber mejorarado para que me fuera mejor?
¿Qué cambios voy a hacer para que me vaya mejor en el próximo certamen?

Preguntas de alumnos 1
Escriba una función ordenado(n) que verifique si los dígitos de un número entero positivo están ordenados de mayor a menor.
ordenado(567) # False
ordenado(9876) # True
ordenado(98876) #True
End of explanation
"""


def convertir_eeuu(nota):
    if nota>=90:
        print "A"
    elif nota>=70 and nota<90:
        print "B"
    elif nota>=55 and nota<70:
        print "C"
    elif nota<55:
        print "F"
        
print convertir_eeuu(10)
print convertir_eeuu(30)
print convertir_eeuu(40)
print convertir_eeuu(55)
print convertir_eeuu(56)
print convertir_eeuu(80)
print convertir_eeuu(90)

def convertir_eeuu(nota):
    if nota>=90:
        return "A"
    elif nota>=70:
        return "B"
    elif nota>=55:
        return "C"
    else:
        return "F"
        
print convertir_eeuu(10)
print convertir_eeuu(30)
print convertir_eeuu(40)
print convertir_eeuu(55)
print convertir_eeuu(56)
print convertir_eeuu(80)
print convertir_eeuu(90)

"""
Explanation: Preguntas de alumnos 1
¿Qué era importante saber en este ejemplo?
* No existe sólo 1 forma correcta.
* Saber convertir de string a int, y viceversa.
* Saber recorrer un string, caracter a carácter.
* Sintaxis de una función.
* Regresar False si no se cumple alguna condición, y True sólo si se llega al final.
<img src="images/python1.jpg" alt="" width="600px" align="middle"/>
Preguntas de alumnos 2
Desarrollar la función convertir_eeuu(nota) que recibe como parámetro una nota en escala 0 -100 y retorne la nota en formato EE.UU.

Si nota ≥ 90, se obtiene una nota convertida A.
Si nota ≥ 70 y < 90, se obtiene una nota convertida B.
Si nota ≥ 55 y < 70, se obtiene una nota convertida C.
Si nota < 55, se obtiene una nota convertida F.
End of explanation
"""


N = int(raw_input("Numero de variantes: "))
num_variante_actual = 1
max_L = 0
mejor_variante_L = 0
max_M = 0 
mejor_variante_M = 0
max_T = 0
mejor_variante_T = 0
while num_variante_actual <= N:
    variante_actual = raw_input("Variante " + str(num_variante_actual) + ":")
    # Actualizar para leve
    num_L = variante_actual.count("L")
    if num_L  > max_L:
        max_L = num_L
        mejor_variante_L = num_variante_actual
    # Actualizar para Medio
    num_M = variante_actual.count("M")
    if num_M  > max_M:
        max_M = num_M
        mejor_variante_M = num_variante_actual
    # Actualizar para Terminal
    num_T = variante_actual.count("T")
    if num_T  > max_T:
        max_T = num_T
        mejor_variante_T = num_variante_actual
    # Actualizar variante
    num_variante_actual += 1
    
# Outputs
print "Mejores variantes:"
print "Adictos leves:", mejor_variante_L
print "Adictos medios:", mejor_variante_M
print "Adictos terminales:", mejor_variante_T


"""
Explanation: Preguntas de alumnos 2
¿Qué era importante saber en este ejemplo?
* Dominar if-elif-else
* usar return, no print, cuando se necesita regresar un valor.
<img src="images/python2.jpg" alt="" width="600px" align="middle"/>
Preguntas de profesor : C1, 1S 2014.
El profesor de programación Rasec Wholtedo ha comenzado a producir metanfetamina, una poderosa droga alucinógena.
Para dar un mejor producto a sus compradores, el profesor produce distintas variantes de la droga. Estas
pueden o no producir el efecto alucinógeno deseado, por lo que se realizan pruebas y analiza la efectividad en distintos adictos. A tal fin, los adictos se encuentra divididos en 3 grupos, leves (L), medios (M) y terminales (T), en los cuales se hacen las pruebas.
Cree un programa que pida la cantidad de variantes a probar, por cada una pida los casos exitosos
en un string de L, M y T, donde cada letra es un caso de éxito en el grupo que identifica. Finalmente
indicar la mejor variante de metanfetamina para cada adicto, es decir, la variante que más casos
de éxito producen a cada grupo.
Nota: Si dos variantes tienen la misma cantidad de éxitos indicar cualquiera de las dos.
Numero de variantes: 3
Variante 1: LLMTTLMMMM
Variante 2: MMMMTTTMMTTTTT
Variante 3: TTTTLLLTLLLLL
Mejores variantes:
Adictos leves: 3
Adictos medios: 2
Adictos terminales: 2


Numero de variantes: 4
Variante 1: LLLLLMT
Variante 2: TTMMMMMT
Variante 3: TTLLLMMLMTT
Variante 4: TTTTMMLMTTT
Mejores variantes:
Adictos leves: 1
Adictos medios: 2
Adictos terminales: 4

Preguntas de profesor : C1, 1S 2014.
¿Que necesitamos?

Leer el número de variantes
Leer cada variante
Actualizar los máximos para cada variante

Imprimir los resultados
Numero de variantes: 4
Variante 1: LLLLLMT
Variante 2: TTMMMMMT
Variante 3: TTLLLMMLMTT
Variante 4: TTTTMMLMTTT
Mejores variantes:
Adictos leves: 1
Adictos medios: 2
Adictos terminales: 4
End of explanation
"""


