Треки
/
Rust
Rust
/
Вправи
/
Кольори резистора
Кольори резистора

Кольори резистора

Навчальна вправа

Вступ

Більшість програм залежать від тих чи інших бібліотек. Керувати ними вручну може бути непросто. На щастя, екосистема Rust стандартно постачається з cargo! cargo уміє керувати залежностями проєкту.

У Rust зовнішні пакунки часто називають «крейтами». Крейт - це одиниця компіляції в Rust. Крейт можна скомпілювати у бінарний файл або в бібліотеку.

Здебільшого додати зовнішню залежність так само просто, як додати один рядок до свого файлу Cargo.toml.

У цій вправі для нас уже додано залежності enum-iterator та int-enum.

Вказівки

Якщо ми хочемо щось створити за допомогою Raspberry Pi, ймовірно, будемо використовувати резистори. Для цієї вправи потрібно знати про них дві речі:

  • Кожен резистор має значення опору.
  • Резистори маленькі, настільки маленькі, що якби ми надрукували на них значення опору, його було б важко прочитати.

Щоб обійти цю проблему, виробники друкують на резисторах кольорові смуги, які позначають значення їхнього опору. Кожна смуга має позицію та числове значення.

Перші 2 смуги резистора мають просту схему кодування: кожен колір відповідає одному числу.

У цій вправі ми створимо корисну програму, щоб нам не доводилося запамʼятовувати значення смуг.

Ці кольори кодуються так:

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

Мета цієї вправи - створити спосіб, який дозволяє:

  1. знаходити числове значення, повʼязане з певною кольоровою смугою
  2. перетворювати числове значення на рядок тексту (англ. string), що представляє колір
  3. перелічувати різні кольори смуг

Для завдання номер один нам знадобиться зовнішній крейт int-enum, а для завдання номер три - enum-iterator. Обидва з них уже включено до Cargo.toml цієї вправи. Обовʼязково перегляньте документацію крейтів, щоб дізнатися, як ними користуватися. Щоб виконати завдання номер два, можна подивитися на типову реалізацію трейту Debug для Enum.

Мнемоніка зіставляє кольори з числами, які, якщо зберегти їх у масиві, випадково збігаються з їхнім індексом у масиві: Better Be Right Or Your Great Big Values Go Wrong.

Більше інформації про кольорове кодування резисторів можна знайти в статті Вікіпедії про електронний кольоровий код

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Rust Exercism

Час розпочати Кольори резистора?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Rust, а також 99 вправ та справжнє наставництво від людей, і все це безкоштовно.