ট্র্যাক
/
Dart
Dart
/
অনুশীলনী
/
নিউক্লিওটাইড গণনা
নিউক্লিওটাইড গণনা

নিউক্লিওটাইড গণনা

সহজ

নির্দেশনা

আমাদের প্রত্যেকে আমাদের জৈবিক পিতা-মাতার কাছ থেকে DNA নামে পরিচিত একগুচ্ছ রাসায়নিক নির্দেশনা পাই, যা আমাদের শরীর কীভাবে গড়ে ওঠে তা প্রভাবিত করে। পৃথিবীর সব পরিচিত প্রাণই DNA-র উপর নির্ভরশীল!

নোট: এই অনুশীলনীটি সম্পূর্ণ করতে নিউক্লিওটাইড বা DNA সম্পর্কে কিছু বোঝার দরকার নেই।

DNA হলো আরও অনেক রাসায়নিক পদার্থের একটি দীর্ঘ শৃঙ্খল, আর এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ হলো চারটি নিউক্লিওটাইড: অ্যাডেনিন, সাইটোসিন, গুয়ানিন আর থাইমিন। একটি DNA শৃঙ্খলে এই চারটি নিউক্লিওটাইডের কোটি কোটি কপি থাকতে পারে, আর এগুলো যে ক্রমে থাকে সেটি গুরুত্বপূর্ণ! DNA-র একটি অংশে এই নিউক্লিওটাইডগুলোর যে ক্রম থাকে, তাকে আমরা বলি "DNA সিকোয়েন্স"।

আমরা একটি DNA সিকোয়েন্সকে এই চারটি নিউক্লিওটাইডের একটি সাজানো সংগ্রহ হিসেবে প্রকাশ করি, আর এটি করার একটি কমন উপায় হলো ক্যারেক্টারের একটি স্ট্রিং, যেমন ৬টি নিউক্লিওটাইডের একটি DNA সিকোয়েন্সের জন্য "ATTACG"। এখানে '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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।