مسیرها
/
Dart
Dart
/
تمرین‌ها
/
شمارش نوکلئوتید
شمارش نوکلئوتید

شمارش نوکلئوتید

آسان

دستورالعمل‌ها

هر یک از ما از والدین زیستی خود مجموعه‌ای از دستورالعمل‌های شیمیایی را به ارث می‌بریم که با نام DNA شناخته می‌شوند و بر نحوه‌ی ساخت بدن ما تأثیر می‌گذارند. همه‌ی حیات شناخته‌شده به DNA وابسته است!

نکته: برای انجام این تمرین نیازی نیست چیزی درباره‌ی نوکلئوتیدها یا DNA بدانید.

DNA زنجیره‌ای بلند از مواد شیمیایی دیگر است و مهم‌ترین آن‌ها چهار نوکلئوتید هستند: آدنین، سیتوزین، گوانین و تیمین. یک زنجیره‌ی DNA می‌تواند میلیاردها عدد از این چهار نوکلئوتید را در خود داشته باشد و ترتیبی که این نوکلئوتیدها در آن ظاهر می‌شوند مهم است! ما به ترتیب این نوکلئوتیدها در بخشی از DNA، «توالی DNA» می‌گوییم.

یک توالی DNA را به صورت مجموعه‌ای مرتب از این چهار نوکلئوتید نمایش می‌دهیم و روشی رایج برای این کار، استفاده از رشته‌ای از کاراکترها است؛ مثلاً «ATTACG» برای یک توالی DNA با ۶ نوکلئوتید. «A» برای آدنین، «C» برای سیتوزین، «G» برای گوانین و «T» برای تیمین.

با داشتن رشته‌ای که یک توالی DNA را نمایش می‌دهد، بشمارید که از هر نوکلئوتید چند تا موجود است. اگر رشته شامل کاراکترهایی باشد که A، C، G یا T نیستند، آنگاه نامعتبر است و باید خطایی را اعلام کنید.

برای مثال:

"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error

پیاده‌سازی

گاهی اوقات لازم است مسائل پیش‌بینی‌نشده‌ای را که در حین اجرای کد پیش می‌آیند مدیریت کنید. در Dart می‌توانید برای مدیریت این موقعیت‌ها از «استثنا» استفاده کنید.

برای پرتاب یک استثنا در Dart، از کلیدواژه‌ی throw استفاده کنید و بعد از آن، نمونه‌ای از همان استثنای مشخصی را بنویسید که می‌خواهید پرتاب کنید. برای مثال، throw Exception() نمونه‌ای از نوع پایه‌ی Exception را پرتاب می‌کند.

در این تمرین، باید یک استثنای سفارشی به اسم InvalidNucleotideException تعریف کنید. این استثنا باید وقتی نوکلئوتید نامعتبری دیده می‌شود پرتاب شود. مجموعه‌ی آزمون‌ها فقط بررسی می‌کند که نمونه‌ای از InvalidNucleotideException پرتاب شده باشد، بنابراین در پیاده‌سازی آن آزادید هر طور که صلاح می‌دانید عمل کنید، به شرطی که درست پرتاب شود.

برای اطلاعات بیشتر درباره‌ی استثناها در Dart، می‌توانید به مستندات استثناها مراجعه کنید. استثناهای سفارشی را می‌توان با پیاده‌سازی رابط Exception ساخت.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Dart Exercism

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

در Exercism ثبت‌نام کنید تا Dart را همراه با 78 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.