Διαδρομές
/
C#
C#
/
Ασκήσεις
/
Ανάλυση τηλεφωνικών αριθμών
Ανάλυση τηλεφωνικών αριθμών

Ανάλυση τηλεφωνικών αριθμών

Άσκηση εκμάθησης

Εισαγωγή

Πλειάδες

Στη C#, μια πλειάδα είναι μια δομή δεδομένων που οργανώνει δεδομένα και περιέχει δύο ή περισσότερα πεδία οποιουδήποτε τύπου.

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

string boast = "All you need to know";
bool success = !string.IsNullOrWhiteSpace(boast);
(bool, int, string) triple = (success, 42, boast);

Μια πλειάδα μπορεί να χρησιμοποιηθεί σε πράξεις ανάθεσης και αρχικοποίησης, ως τιμή επιστροφής ή ως όρισμα μεθόδου.

Τα πεδία εξάγονται με τη σύνταξη της τελείας. Από προεπιλογή, το πρώτο πεδίο είναι Item1, το δεύτερο Item2, κ.ο.κ. Παρακάτω συζητάμε τα μη προεπιλεγμένα ονόματα.

// initialization
(int, int, int) vertices = (90, 45, 45);

// assignment
vertices = (60, 60, 60);

//  return value
(bool, int) GetSameOrBigger(int num1, int num2)
{
    return (num1 == num2, num1 > num2 ? num1 : num2);
}

// method argument
int Add((int, int) operands)
{
    return operands.Item1 + operands.Item2;
}

Τα ονόματα πεδίων όπως το Item1 κ.λπ. δεν κάνουν τον κώδικα ευανάγνωστο. Ο παρακάτω κώδικας δείχνει 2 τρόπους για να ονομάσεις τα πεδία των πλειάδων. Σημείωσε επίσης, στον παρακάτω κώδικα, ότι το var μπορεί να χρησιμοποιηθεί με πλειάδες και ο τύπος συνάγεται. Αυτό λειτουργεί εξίσου καλά για πλειάδες με ονομασμένα και ανώνυμα πεδία.

// name items in declaration
(bool success, string message) results = (true, "well done!");
bool mySuccess = results.success;
string myMessage = results.message;

// name items in creating expression
var results2 = (success: true, message: "well done!");
bool mySuccess2 = results2.success;
string myMessage2 = results2.message;

Οδηγίες

Σε αυτή την άσκηση θα αναλύσεις αριθμούς τηλεφώνου.

Θα χρειαστεί να υλοποιήσεις 2 δυνατότητες.

Οι αριθμοί τηλεφώνου που περνούν στις ρουτίνες είναι εγγυημένο ότι έχουν τη μορφή NNN-NNN-NNNN, π.χ. 212-515-9876, και δεν είναι null.

1. Ανάλυσε έναν αριθμό τηλεφώνου

Η ανάλυσή σου θα πρέπει να επιστρέφει 3 στοιχεία δεδομένων

  1. Μια ένδειξη για το αν ο αριθμός έχει κωδικό κλήσης Νέας Υόρκης, δηλ. 212 ως τα πρώτα 3 ψηφία
  2. Μια ένδειξη για το αν ο αριθμός είναι ψεύτικος, έχοντας 555 ως κωδικό προθέματος στις θέσεις 5 έως 7 (με αρίθμηση από το 1)
  3. Τα τελευταία 4 ψηφία του αριθμού.

Υλοποίησε τη (στατική) μέθοδο PhoneNumber.Analyze() για να παράγεις τις πληροφορίες του αριθμού τηλεφώνου.

PhoneNumber.Analyze("631-555-1234");
// => (false, true, "1234")

2. Εντόπισε αν ένας αριθμός τηλεφώνου έχει ψεύτικο κωδικό προθέματος (555)

Υλοποίησε τη (στατική) μέθοδο PhoneNumber.IsFake() για να εντοπίσεις αν ο αριθμός τηλεφώνου είναι ψεύτικος, χρησιμοποιώντας τις πληροφορίες του αριθμού τηλεφώνου που παράγονται στην εργασία 1.

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
C# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Ανάλυση τηλεφωνικών αριθμών;

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