Percursos
/
Rust
Rust
/
Exercícios
/
Cor de resistência
Cor de resistência

Cor de resistência

Exercício de aprendizagem

Introdução

A maioria dos programas tem dependências de algumas bibliotecas. Gerir essas dependências à mão pode ser penoso. Felizmente, o ecossistema Rust vem de série com o cargo! Com o cargo, é possível gerir as dependências de um projeto.

Em Rust, vais ver frequentemente pacotes externos a serem chamados "crates". Um crate é uma unidade de compilação em Rust. Um crate pode ser compilado para um binário ou para uma biblioteca.

Na maior parte dos casos, adicionar uma dependência externa é tão simples como acrescentar uma linha ao teu ficheiro Cargo.toml.

Neste exercício, as dependências enum-iterator e int-enum foram adicionadas para ti.

Instruções

Se queres construir algo com um Raspberry Pi, provavelmente vais usar resistências. Neste exercício, precisas de saber duas coisas sobre elas:

  • Cada resistência tem um valor de resistência.
  • As resistências são pequenas. Tão pequenas que, se imprimisses nelas o valor da resistência, seria difícil de ler.

Para contornar este problema, os fabricantes imprimem faixas com código de cores nas resistências para indicar os seus valores de resistência. Cada faixa tem uma posição e um valor numérico.

As duas primeiras faixas de uma resistência têm um esquema de codificação simples: cada cor corresponde a um único número.

Neste exercício vais criar um programa útil, para não precisares de memorizar os valores das faixas.

Estas cores estão codificadas da seguinte forma:

  • Black: 0
  • Brown: 1
  • Red: 2
  • Orange: 3
  • Yellow: 4
  • Green: 5
  • Blue: 6
  • Violet: 7
  • Grey: 8
  • White: 9

O objetivo deste exercício é criar uma forma de:

  1. procurar o valor numérico associado a uma determinada faixa colorida
  2. converter o valor numérico numa string que representa a cor
  3. listar as diferentes cores das faixas

Para a tarefa número um, vais precisar da crate externa int-enum e, para a tarefa número três, vais precisar da enum-iterator. Ambas já estão incluídas no Cargo.toml deste exercício. Certifica-te de que consultas a documentação das crates para aprenderes a usá-las. Podes consultar a implementação por omissão da trait Debug para Enums para completares a tarefa número dois.

As mnemónicas associam as cores aos números que, quando guardados num array, acabam por corresponder ao seu índice no array: Better Be Right Or Your Great Big Values Go Wrong.

Podes encontrar mais informação sobre a codificação de cores das resistências no artigo da Wikipédia sobre o código de cores eletrónico.

Editar via GitHub A ligação abre numa nova janela ou separador
Rust Exercism

Estás pronto para começar Cor de resistência?

Inscreve-te no Exercism para aprenderes e dominares Rust com 99 exercícios, e mentoria humana real, tudo grátis.