المسارات
/
C#
C#
/
التمارين
/
تحليل أرقام الهاتف
تحليل أرقام الهاتف

تحليل أرقام الهاتف

تمرين تعلّمي

مقدمة

الصفوف

في C#، الصف بنية بيانات تنظّم البيانات، وتضم حقلين أو أكثر من أي نوع.

يُنشأ الصف عادةً بوضع تعبيرين أو أكثر تفصل بينها فواصل، داخل زوج من الأقواس الهلالية.

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 وغيرها لا تجعل الكود سهل القراءة. يوضّح الكود أدناه أسلوبين لتسمية حقول الصفوف. لاحظ أيضًا، في الكود أدناه، أنه يمكن استخدام 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;

التعليمات

يطلب منك هذا التمرين تحليل أرقام الهاتف.

المطلوب منك تنفيذ ميزتين.

أرقام الهاتف التي تُمرَّر إلى الدوال مضمونة أن تكون بالصيغة 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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.