हमें किसी भी लम्बाई के मान लें str के साथ एक स्ट्रिंग दी गई है और कार्य पुनरावृत्त और पुनरावर्ती दोनों तरीकों का उपयोग करके दिए गए स्ट्रिंग में व्यंजन की गिनती की गणना करना है।
व्यंजन वे अक्षर हैं जो स्वर नहीं हैं अर्थात a, i, e, o, u को छोड़कर अक्षर व्यंजन माने जाते हैं। तो नीचे दिए गए प्रोग्राम में हमें स्ट्रिंग में इनके अलावा अन्य अक्षरों की गिनती खोजने की जरूरत है।
रिकर्सन और इटरेशन दोनों बार-बार निर्देशों के सेट को निष्पादित करते हैं। रिकर्सन तब होता है जब किसी फ़ंक्शन में कोई कथन बार-बार कॉल करता है। पुनरावृत्ति तब होती है जब एक लूप बार-बार निष्पादित होता है जब तक कि नियंत्रण की स्थिति झूठी न हो जाए। रिकर्सन और पुनरावृत्ति के बीच प्राथमिक अंतर यह है कि रिकर्सन एक प्रक्रिया है, हमेशा एक फ़ंक्शन पर लागू होती है और निर्देशों के सेट पर पुनरावृत्ति लागू होती है जिसे हम बार-बार निष्पादित करना चाहते हैं।
उदाहरण के लिए
Input − string str = “tutorials point” Output − count is 8
स्पष्टीकरण - दिए गए स्ट्रिंग str में कुल 8 व्यंजन उपलब्ध हैं और वे t, t, r, l, s, p, n और t हैं।
Input − string str = “a e io u” Output − count is 0
स्पष्टीकरण - दिए गए स्ट्रिंग में कोई व्यंजन उपलब्ध नहीं है, इसके बजाय इसमें केवल स्वर हैं इसलिए गिनती 0 है।
पुनरावृत्ति
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
स्ट्रिंग को एक वेरिएबल में इनपुट करें मान लें कि str
-
दिए गए स्ट्रिंग की लंबाई की गणना लंबाई () फ़ंक्शन का उपयोग करके करें जो एक स्ट्रिंग में वर्णों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा
-
एक अस्थायी चर लें जो तत्वों की संख्या को संग्रहीत करेगा।
-
i से 0 के लिए लूप प्रारंभ करें जब तक कि i स्ट्रिंग की लंबाई से कम न हो
-
लूप के अंदर, जांचें कि IF 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
-
दिए गए स्ट्रिंग की लंबाई की गणना लंबाई () फ़ंक्शन का उपयोग करके करें जो एक स्ट्रिंग में वर्णों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा
-
एक अस्थायी चर लें जो तत्वों की संख्या को संग्रहीत करेगा।
-
एक पुनरावर्ती फ़ंक्शन बनाएं जो एक स्ट्रिंग में व्यंजन की गणना करने के लिए खुद को कॉल करेगा
-
जाँच करें कि IF का आकार 1 है, फिर str[0] लौटाएँ।
-
फिर, (str, आकार -1) के रूप में पुनरावर्ती_call_to_function लौटाएं + जांचें कि कोई वर्ण स्ट्रिंग है या नहीं (str [आकार -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