Rutas
/
Rust
Rust
/
Ejercicios
/
Colores de resistencia
Colores de resistencia

Colores de resistencia

Ejercicio de aprendizaje

Introducción

La mayoría de los programas tienen dependencias de algunas bibliotecas. Gestionarlas a mano puede ser un engorro. Por suerte, el ecosistema de Rust viene de serie con cargo. cargo puede gestionar las dependencias de un proyecto.

En Rust verás a menudo que los paquetes externos se denominan «crates». Un crate es una unidad de compilación en Rust. Un crate se puede compilar en un binario o en una biblioteca.

La mayoría de las veces, añadir una dependencia externa es tan sencillo como añadir una línea a tu archivo Cargo.toml.

En este ejercicio, ya se han añadido para ti las dependencias enum-iterator e int-enum.

Instrucciones

Si quieres construir algo con una Raspberry Pi, probablemente utilices 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 bandas codificadas por colores en las resistencias para indicar su valor de resistencia. Cada banda tiene una posición y un valor numérico.

Las 2 primeras bandas de una resistencia tienen un esquema de codificación simple: 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:

  1. consultar el valor numérico asociado a una banda de color determinada
  2. convertir el valor numérico en un string que represente el color
  3. listar los distintos colores de las bandas

Para la tarea número uno, necesitarás el crate externo int-enum y, para la tarea número tres, necesitarás enum-iterator. Ambos ya están incluidos en el Cargo.toml de este ejercicio. Asegúrate de consultar la documentación de los crates para aprender a usarlos. Puedes echar un vistazo a la implementación por defecto del trait Debug para los enum para completar la tarea número dos.

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

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

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

¿Listo para empezar Colores de resistencia?

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