carmi1909@ciencias.unam.mx
ejercicios_resueltos_5unknown
plain_text
4 years ago
6.2 kB
9
Indexable
#%% Ejercicio 121- Contar los elementos
"""
Descripción:
La biblioteca estándar de python incluye un método llamado count que determina
cuántas veces está en la lista un valor específico. En este ejercicio, vas a crear una
función nueva llamada countRange que determine y regrese el el número de elementos
dentro de una lista que sean mayor o igual que un valor mínimo o menor que algún
valor máximo. Tu función debe tomar tres parámetros: la lista, el valor mínimo
y el valor máximo. Debe regresar un resultado entero mayor o igual a 0.
Agrega un programa principal 'main' que demuestre tu función utilizando diferentes
listas y valores mínimos y máximos. Asegurate de que tu progrma funcione correctamente
para listas de números enteros y flotantes
Solución:
Definir una función que cuente los elementos dentro del rango aceptable:
Iniciar contador
Por cada elemento de la lista:
Si mínimo <= elemento < máximo
añadir uno al contador
regresar contador
Definir una función principal (main) junto con una lista
Probar el caso donde algunos elementos están en el rango
Probar el caso donde todos los elementos están en el rango
Probar el caso donde no hay elementos en el rango
Probar el caso donde la lista está vacía
Probar el caso con valores duplicados
Llamar la función principal
"""
from fc.tpw.mer_5 import main_121
main_121()
"""
Al definir la función me percaté que en vez de escribir if minimo <= e and e < maximo, se puede
escribir simplemente if minimo <= e < maximo ya significan lo mismo y no cambia el programa
"""
#%% Ejercicio 122: Tokenizar una cadena
"""
Descricpción:
Tokenizar es el proceso de convertir una cadena a una lista de subcadenas, conocidas
como tokens. En muchas circunstancias, es más facíl de trabajar con una lista de tokens que
con la cadena original porque la cadena original puede tener un irregula espaciado.
En algunos casos también se requiere un trabajo sustancial para determinar dónde
termina un token y comienza el siguiente
En una expresión matemáticam, los tokens son elementos como los operadores, números y
paréntesis. Algunos tokens, como *, /, ^, ( y ) son fáciles de identificar porque
el token es un sólo caracter, y el caracter nunca es parte de otro token. Los símbolos
+ y - son un poco más desafiantes para manejar porque pueden representar el operador
de adición o substraccion, o pueden ser parte de un token numérico
Escribe una función que tome una cadena que contenga una expresión matemática como su
único parámetro y la rompa en una rista de tokens. Cada token debe ser un paréntresis,
un operador. o un numero con un + o - opcional (para simplificar solo trabajaremos con
números enteros en este problema). Regresa la lista de tokens como el resultado de la
función.
Debes asumir que la cadena pasada a tu función diempre contiene una expresión matemática
válida formada por paréntesis, oparadore y enteros. Sin embargo, tu funciíon debe manejar
cantidades variables de espacios en blanco entre estos elementos Agrega una función
principal 'main' que demuestre tu función tekenizadora leyendo una expresión del
usuario e imprimiendo la lista de tokens. Asegurate que el programa principal no
corra cuando el archivo que contenga tu solución sea importado a otro programa
Solución:
Definir la funcion lista_token que tome como parámetro una cadena
Remplazar espacios de la cadena por ""
Definir la lista de TOKENS como una lista vacía
Iniciar contador
Mientras contador < tamaño de cadena:
Si (elemento de la cadena correspondiente al indice del contador) es *, /, ^, (
o ):
agregar a TOKENS el elemento
agregar uno al contador
Si el elemento es + o -:
Si elemento > 0 y (0 <= el elemento anterior <= 9 o el elemento anterior es ")"):
agregar a TOKENS el elemento
En otro caso(cuando + o - es parte de un número):
numero = elemento
agregar uno al contador
mientras contador(+1) < tamaño de cadena y 0 <= (elemento de la cadena correspondiente al indice
del contador) <= 9:
numero = numero + elemento
agregar uno al contador
agregar a TOKENS el número
Si el elemento es un número:
Si 0 <= (elemento de la cadena correspondiente al indice del contador) <= 9:
numero = ""
mientras contador < tamaño de la cadena y 0 <= (elemento de la cadena correspondiente
al indice del contador) <= 9:
numero = numero + elemento
agregar uno al contador
agregar a TOKENS el número
En otro caso
regresar una lista vacía
Regresar la lista TOKENS
Definir una función principal (main):
Pedir al usuario una expresion matemática
tokens = lista_token(expresión del usuario)
imprimir("Los tokens son: " tokens)
Correr la función main únicamente si el archivo no ha sido importado
"""
from fc.tpw.mer_5 import main_122
if __name__ == "__main__":
main_122()
"""
La parte mnás complicada de este ejercicio fue entender el programa como tal, me costó entender
lo que hacía para identificar cuando la expresión matemática contenía un número, para solucionarlo
escribí mi interpretación de los codigos en el método de solución del problema (los comentarios multilinea
de al principio), gracias a esto entendí que los ciclos dentro del ciclo eran para identificar cuántos dígitos
contenía el número en la expresión y así hasta que ya no fueran números repetir el ciclo principal
""" Editor is loading...