Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में एक स्ट्रिंग (पुनरावृत्तीय और पुनरावर्ती विधियों) में व्यंजन गिनें

हमें किसी भी लम्बाई के मान लें 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

  1. C++ में एक बाइनरी ट्री (पुनरावर्ती और पुनरावर्ती) में पूर्ण नोड्स की गणना करें

    हमें एक बाइनरी ट्री दिया गया है और कार्य एक बाइनरी ट्री में उपलब्ध पूर्ण नोड्स की गणना करने के लिए पुनरावृत्ति और पुनरावर्ती दृष्टिकोण का उपयोग करना है। पूर्ण नोड्स वे नोड हैं जिनके दोनों बच्चे हैं और कोई भी बच्चा शून्य नहीं है। ध्यान दें कि पूर्ण नोड्स में हम ठीक दो बच्चों वाले नोड्स पर विचार करते

  1. C++ में एक बाइनरी ट्री (पुनरावर्ती और पुनरावर्ती) में आधे नोड्स की गणना करें

    हमें एक बाइनरी ट्री दिया गया है और कार्य एक बाइनरी ट्री में उपलब्ध आधे नोड्स की गणना करने के लिए पुनरावृत्ति और पुनरावर्ती दृष्टिकोण का उपयोग करना है। हाफ नोड्स वे नोड होते हैं जिनमें केवल एक बच्चा होता है और दूसरा बच्चा शून्य होता है। ध्यान दें कि आधे नोड्स में हम लीफ नोड्स पर विचार नहीं करते हैं।

  1. सी # प्रोग्राम एक स्ट्रिंग में स्वर और व्यंजन की संख्या गिनने के लिए

    आपको स्वर और व्यंजन दोनों की जांच करने की आवश्यकता है, लेकिन अपरकेस और लोअरकेस दोनों की जांच करना न भूलें। स्वर गिनने के लिए, aeiou वर्णों को अलग से देखें, अर्थात if (myStr[i] == 'a' || myStr[i] == 'e' || myStr[i] == 'i' || myStr[i] == 'o' || myStr[i] == 'u' |