Διαδρομές
/
Lean
Lean
/
Ασκήσεις
/
Χρώματα αντίστασης
Χρώματα αντίστασης

Χρώματα αντίστασης

Μέτριο

Οδηγίες

Αν θέλεις να φτιάξεις κάτι με ένα Raspberry Pi, πιθανότατα θα χρειαστείς αντιστάτες. Για αυτήν την άσκηση, πρέπει να ξέρεις δύο πράγματα για αυτούς:

  • Κάθε αντιστάτης έχει μια τιμή αντίστασης.
  • Οι αντιστάτες είναι μικροί, τόσο μικροί μάλιστα που αν τύπωνες πάνω τους την τιμή αντίστασης, θα ήταν δύσκολο να τη διαβάσεις.

Για να ξεπεραστεί αυτό το πρόβλημα, οι κατασκευαστές τυπώνουν πάνω στους αντιστάτες χρωματιστές λωρίδες που δηλώνουν την τιμή αντίστασής τους. Κάθε λωρίδα έχει μια θέση και μια αριθμητική τιμή.

Οι δύο πρώτες λωρίδες ενός αντιστάτη έχουν ένα απλό σχήμα κωδικοποίησης: κάθε χρώμα αντιστοιχεί σε έναν μόνο αριθμό.

Σε αυτήν την άσκηση θα φτιάξεις ένα βοηθητικό πρόγραμμα, ώστε να μη χρειάζεται να θυμάσαι τις τιμές των λωρίδων.

Αυτά τα χρώματα κωδικοποιούνται ως εξής:

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

Ο στόχος αυτής της άσκησης είναι να φτιάξεις έναν τρόπο:

  • να αναζητάς την αριθμητική τιμή που αντιστοιχεί σε μια συγκεκριμένη χρωματιστή λωρίδα
  • να απαριθμείς τα διάφορα χρώματα των λωρίδων

Οι μνημονικοί κανόνες συνδέουν τα χρώματα με τους αριθμούς, οι οποίοι, όταν αποθηκεύονται σε έναν πίνακα, τυγχάνει να αντιστοιχούν στη θέση τους μέσα στον πίνακα: Better Be Right Or Your Great Big Values Go Wrong.

Περισσότερες πληροφορίες για τη χρωματική κωδικοποίηση των αντιστατών μπορείς να βρεις στο άρθρο της Wikipedia για τον ηλεκτρονικό χρωματικό κώδικα.

Ορισμός σύνταξης

Σε αυτή την άσκηση, πρέπει να ορίσεις σύνταξη για τα χρώματα χρησιμοποιώντας το πρόθεμα c*, π.χ. c*black. Αυτή η σύνταξη πρέπει να επεκτείνεται σε χρόνο μεταγλώττισης στην αντίστοιχη τιμή κάθε χρώματος ως Fin 10, σύμφωνα με τις οδηγίες. Με τον ίδιο τρόπο, πρέπει να ορίσεις σύνταξη για έναν πίνακα με όλες τις τιμές των χρωμάτων χρησιμοποιώντας το c*all.

Αυτή η εργασία πιθανότατα θα απαιτήσει να χρησιμοποιήσεις είτε σημειογραφίες είτε μακροεντολές. Ίσως θελήσεις να συμβουλευτείς μια αναφορά.

Επειδή η νέα σύνταξη επεκτείνεται σε χρόνο μεταγλώττισης, οποιοδήποτε test θα αποτύγχανε να μεταγλωττιστεί, εκτός αν οριστεί όλη η απαιτούμενη σύνταξη. Για αυτόν τον λόγο, αντί να βασιζόμαστε σε παραδοσιακά tests εκτέλεσης, ελέγχουμε όλες τις τιμές με θεωρήματα. Αν ένα θεώρημα περάσει τον έλεγχο τύπων, μπορείς να το θεωρήσεις επιτυχημένο test.

Αν δουλεύεις τοπικά ή στο διαδικτυακό playground της Lean, θα παίρνεις άμεση ανατροφοδότηση, μέσω του Lean InfoView, για το αν κάποιο θεώρημα πετυχαίνει ή αποτυγχάνει και γιατί αποτυγχάνει.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Lean Exercism

Έτοιμος να ξεκινήσεις την άσκηση Χρώματα αντίστασης;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Lean με 100 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.