المسارات
/
Dart
Dart
/
التمارين
/
عدّ النوكليوتيدات
عدّ النوكليوتيدات

عدّ النوكليوتيدات

سهل

التعليمات

كلٌّ منا يرث من والديه البيولوجيين مجموعة من التعليمات الكيميائية المعروفة باسم DNA، وهي التي تؤثر في كيفية بناء أجسامنا. تعتمد كل أشكال الحياة المعروفة على DNA!

ملاحظة: لا تحتاج إلى فهم أي شيء عن النيوكليوتيدات أو عن DNA لإكمال هذا التمرين.

يتكوّن DNA من تسلسل طويل من مواد كيميائية أخرى، وأهمّها النيوكليوتيدات الأربعة: الأدينين والسيتوزين والغوانين والثايمين. يمكن أن يحتوي تسلسل DNA واحد على مليارات من هذه النيوكليوتيدات الأربعة، وترتيب ظهورها مهم! نسمّي ترتيب هذه النيوكليوتيدات في جزء من DNA «تسلسل DNA».

نمثّل تسلسل DNA كمجموعة مرتّبة من هذه النيوكليوتيدات الأربعة، والأسلوب الشائع لذلك هو استخدام سلسلة نصية من المحارف مثل «ATTACG» لتسلسل DNA مكوّن من 6 نيوكليوتيدات. حيث '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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.