আমাদেরকে একটি স্ট্রিং দেওয়া হয়েছে যাতে বলা হয় যে কোনো দৈর্ঘ্যের str এবং কাজটি হল প্রদত্ত স্ট্রিং-এ ব্যঞ্জনবর্ণের গণনা পুনরাবৃত্ত এবং পুনরাবৃত্তিমূলক উভয় পদ্ধতি ব্যবহার করে।
ব্যঞ্জনবর্ণ হল সেই সকল বর্ণমালা যা স্বরবর্ণ নয় অর্থাৎ a, i, e, o, u ছাড়া বর্ণমালা ব্যঞ্জনবর্ণ হিসেবে বিবেচিত হয়। সুতরাং নীচের প্রোগ্রামে আমাদের স্ট্রিং-এ এগুলো ছাড়া অন্য বর্ণমালার গণনা খুঁজে বের করতে হবে।
পুনরাবৃত্তি এবং পুনরাবৃত্তি উভয়ই নির্দেশাবলীর সেটটি বারবার কার্যকর করে। Recursion হল যখন একটি ফাংশনের একটি স্টেটমেন্ট বারবার কল করে। পুনরাবৃত্তি হল যখন একটি লুপ বারবার কার্যকর হয় যতক্ষণ না নিয়ন্ত্রণকারী অবস্থা মিথ্যা হয়ে যায়। পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে প্রাথমিক পার্থক্য হল পুনরাবৃত্তি একটি প্রক্রিয়া, সর্বদা একটি ফাংশনে প্রয়োগ করা হয় এবং পুনরাবৃত্তি নির্দেশাবলীর সেটে প্রয়োগ করা হয় যা আমরা বারবার কার্যকর করতে চাই।
উদাহরণস্বরূপ
Input − string str = “tutorials point” Output − count is 8
ব্যাখ্যা − প্রদত্ত স্ট্রিং-এ মোট 8টি ব্যঞ্জনবর্ণ পাওয়া যায় এবং সেগুলো হল t, t, r, l, s, p, n এবং t।
Input − string str = “a e io u” Output − count is 0
ব্যাখ্যা − প্রদত্ত স্ট্রিং স্ট্র-এ কোন ব্যঞ্জনবর্ণ পাওয়া যায় না বরং এটিতে শুধুমাত্র স্বরবর্ণ আছে তাই গণনা 0।
পুনরাবৃত্তি
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
একটি ভেরিয়েবলে স্ট্রিং ইনপুট করুন, আসুন str
বলি -
length() ফাংশন ব্যবহার করে প্রদত্ত স্ট্রিংটির দৈর্ঘ্য গণনা করুন যা একটি স্ট্রিং-এর অক্ষরের সংখ্যা অনুযায়ী একটি পূর্ণসংখ্যার মান প্রদান করবে
-
একটি অস্থায়ী পরিবর্তনশীল নিন যা উপাদানের গণনা সংরক্ষণ করবে।
-
i থেকে 0 পর্যন্ত লুপ শুরু করুন যতক্ষণ না i একটি স্ট্রিংয়ের দৈর্ঘ্যের চেয়ে কম হয়
-
লুপের ভিতরে, চেক করুন যদি str[i] ব্যঞ্জনবর্ণ হয় তারপর গণনার মান 1 দ্বারা বৃদ্ধি করুন
-
গণনা ফেরত দিন
-
ফলাফল প্রিন্ট করুন।
উদাহরণ
// Iterative CPP program #include <iostream> using namespace std; // Function to check for consonant bool consonant(char ch){ // To handle lower case ch = toupper(ch); return !(ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') && ch >= 65 && ch <= 90; } //function to count consonant int countconsonants(string s){ int result = 0; for (int i = 0; i < s.length(); i++){ // To check is character is Consonant if (consonant(s[i])){ ++result; } } return result; } // main function int main(){ string s = "wx abc def"; cout <<"count is: "<<countconsonants(s); return 0; }
আউটপুট
আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব
count is: 6
পুনরাবৃত্ত
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
একটি ভেরিয়েবলে স্ট্রিং ইনপুট করুন, আসুন str
বলি -
length() ফাংশন ব্যবহার করে প্রদত্ত স্ট্রিংটির দৈর্ঘ্য গণনা করুন যা একটি স্ট্রিং-এর অক্ষরের সংখ্যা অনুযায়ী একটি পূর্ণসংখ্যার মান প্রদান করবে
-
একটি অস্থায়ী পরিবর্তনশীল নিন যা উপাদানের গণনা সংরক্ষণ করবে।
-
একটি পুনরাবৃত্ত ফাংশন তৈরি করুন যা একটি স্ট্রিং-এ ব্যঞ্জনবর্ণ গণনা করতে নিজেই কল করবে
-
চেক করুন যদি সাইজ 1 হয় তারপর str[0] ফেরত দিন।
-
তারপরে, recursive_call_to_function হিসাবে (str, size-1) + একটি অক্ষর স্ট্রিং কিনা তা পরীক্ষা করে দেখুন (str[size-1])
উদাহরণ
// Recursive CPP program #include <iostream> using namespace std; // Function to check for consonant bool consonant(char ch){ // To convert the lower case ch = toupper(ch); return !(ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') && ch >= 65 && ch <= 90; } // to count total number of consonants int consonantcount(string str, int n){ if (n == 1){ return consonant(str[0]); } return consonantcount(str, n - 1) + consonant(str[n-1]); } int main(){ string str = "wx abc def"; cout <<"count is: "<<consonantcount(str, str.length()); return 0; }
আউটপুট
আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −
count is: 6