مسیرها
/
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. تحلیل یک شماره‌ی تلفن

تحلیل شما باید ۳ بخش داده برگرداند:

  1. نشانه‌ای از اینکه شماره کد تلفنی نیویورک دارد یا نه، یعنی 212 به‌عنوان ۳ رقم اول
  2. نشانه‌ای از اینکه شماره جعلی است یا نه، با داشتن 555 به‌عنوان «کد پیشوند» در موقعیت‌های ۵ تا ۷ (شمارش از ۱)
  3. ۴ رقم آخر شماره.

متد (ایستا) PhoneNumber.Analyze() را پیاده‌سازی کنید تا اطلاعات شماره‌ی تلفن را تولید کند.

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

2. تشخیص اینکه یک شماره‌ی تلفن کد پیشوند جعلی (555) دارد یا نه

متد (ایستا) PhoneNumber.IsFake() را پیاده‌سازی کنید تا با استفاده از اطلاعات شماره‌ی تلفنی که در کار ۱ تولید شده است، تشخیص دهید که شماره جعلی است یا نه.

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
C# Exercism

آماده‌اید تحلیل شماره‌ی تلفن را شروع کنید؟

در Exercism ثبت‌نام کنید تا C# را همراه با 62 مفهوم178 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.