Rutas
/
Lean
Lean
/
Ejercicios
/
Colores de resistencia
Colores de resistencia

Colores de resistencia

Media

Instrucciones

Si quieres construir algo con una Raspberry Pi, probablemente uses resistencias. Para este ejercicio, necesitas saber dos cosas sobre ellas:

  • Cada resistencia tiene un valor de resistencia.
  • Las resistencias son pequeñas, tan pequeñas que, si imprimieras el valor de resistencia en ellas, sería difícil de leer.

Para solucionar este problema, los fabricantes imprimen en las resistencias bandas codificadas por colores que indican sus valores de resistencia. Cada banda tiene una posición y un valor numérico.

Las 2 primeras bandas de una resistencia siguen un esquema de codificación sencillo: cada color se corresponde con un único número.

En este ejercicio vas a crear un programa útil para no tener que recordar los valores de las bandas.

Estos colores se codifican de la siguiente manera:

  • black: 0
  • brown: 1
  • red: 2
  • orange: 3
  • yellow: 4
  • green: 5
  • blue: 6
  • violet: 7
  • grey: 8
  • white: 9

El objetivo de este ejercicio es crear una forma de:

  • consultar el valor numérico asociado a una banda de color concreta
  • enumerar los distintos colores de las bandas

Las reglas mnemotécnicas asocian los colores con los números que, cuando se almacenan en un array, coinciden con su índice en el array: Better Be Right Or Your Great Big Values Go Wrong.

Puedes encontrar más información sobre la codificación por colores de las resistencias en el artículo de Wikipedia sobre el código de colores electrónico.

Definir la sintaxis

En este ejercicio, debes definir la sintaxis de los colores usando el prefijo c*, por ejemplo, c*black. Esta sintaxis debería expandirse en tiempo de compilación al valor correspondiente de cada color como un Fin 10, según las instrucciones. Del mismo modo, debes definir la sintaxis para un array con todos los valores de los colores usando c*all.

Es probable que esta tarea te exija usar notaciones o macros. Quizá te venga bien consultar una referencia.

Como la sintaxis nueva se expande en tiempo de compilación, cualquier test fallaría al compilar a menos que esté definida toda la sintaxis necesaria. Por este motivo, en lugar de basarnos en los tests tradicionales en tiempo de ejecución, comprobamos todos los valores usando teoremas. Si un teorema pasa la comprobación de tipos, puedes considerarlo un test superado.

Si trabajas en local o en el entorno de pruebas en línea de Lean, obtendrás información instantánea, a través de Lean InfoView, sobre si un teorema se demuestra o falla, y por qué falla.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Lean Exercism

¿Listo para empezar Colores de resistencia?

Regístrate en Exercism para aprender y dominar Lean con 100 ejercicios y mentoría humana real, todo gratis.