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

सी ++ में एक सरणी (पुनरावृत्त और पुनरावर्ती) के औसत के लिए कार्यक्रम

एन पूर्णांक एआर [एन] की एक सरणी को देखते हुए, कार्य एआर [एन] का औसत खोजना है। परिणाम प्राप्त करने के लिए हम या तो पुनरावृत्त दृष्टिकोण या पुनरावर्ती दृष्टिकोण का उपयोग कर सकते हैं। हम दिए गए समाधान में दोनों दिखाएंगे।

किसी सरणी का औसत, तत्वों की संख्या से विभाजित सरणी के सभी तत्वों का योग होगा।

पुनरावृत्ति विधि

पुनरावृत्त दृष्टिकोण में, हम फॉर-लूप, जबकि-लूप या डू-लूप जैसे लूप का उपयोग करते हैं जो स्टेटमेंट को तब तक निष्पादित करता है जब तक कि कंडीशन सही न हो जिसका अर्थ है 1.

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

इनपुट

arr[] = {1, 2, 4, 5, 8}

आउटपुट

4

स्पष्टीकरण

sum of all the elements =1+2+4+5+8 = 20,
total number of elements = 5
Average will be = 20/5 = 4

इनपुट

arr[] = {10, 20, 30, 40}

आउटपुट

25

समस्या को हल करने के लिए नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है (पुनरावृत्ति)

  • लूप का उपयोग करके सरणी के प्रत्येक तत्व को पुनरावृत्त करें।

  • जब तक हम सरणी के अंत तक नहीं पहुँच जाते, तब तक सरणी के प्रत्येक तत्व का योग करें।

  • योग को तत्वों की कुल संख्या से विभाजित करें और औसत लौटाएं।

एल्गोरिदम

Start
Step 1→ Declare function to calculate average using iterative method
   double avg(int arr[], int size)
      declare int sum = 0
      Loop For int i=0 and i<size and i++
         Set sum += arr[i]
      End
      return sum/size
Step 2→ In main()
   Declare int arr[] = {2,3,1,6,8,10}
   Declare int size = sizeof(arr)/sizeof(arr[0])
   Call avg(arr, size)
Stop

उदाहरण

#include <iostream>
using namespace std;
//calculate average using an iterative method
double avg(int arr[], int size){
   int sum = 0;
   for (int i=0; i<size; i++)
      sum += arr[i];
   return sum/size;
}
int main(){
   int arr[] = {2,3,1,6,8,10};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"average of an array using iterative method : "&l<t;avg(arr, size) << endl;
   return 0;
}

आउटपुट

यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -

average of an array using iterative method : 5

पुनरावर्ती विधि

तो, एक पुनरावर्ती दृष्टिकोण क्या है? रिकर्सिव दृष्टिकोण में हम वांछित परिणाम प्राप्त होने तक बार-बार एक फ़ंक्शन को बार-बार कॉल करते हैं। पुनरावर्ती दृष्टिकोण में फ़ंक्शन द्वारा लौटाए गए मान स्टैक मेमोरी में संग्रहीत होते हैं।

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

इनपुट

arr[] = {2, 4, 6, 8}

आउटपुट

5

स्पष्टीकरण

sum of all the elements =2+4+6+8 = 20,
total number of elements = 4
Average will be = 20/4 = 5

इनपुट

arr[] = {12, 23, 45, 15}

आउटपुट

19

समस्या को हल करने के लिए नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है (पुनरावर्ती

  • जब तक हम किसी सरणी के अंत तक नहीं पहुंच जाते, हम फ़ंक्शन को बार-बार कॉल करेंगे।

  • हम सरणी के प्रत्येक तत्व का योग करेंगे और जब हम किसी सरणी के अंत तक पहुंचेंगे, तो हम सरणी का औसत वापस कर देंगे।

एल्गोरिदम

Start
Step 1→ Declare function to calculate average using recursive method
   double recursive(int arr[],int i, int size)
      IF (i == size-1)
         return arr[i]
      End
      IF (i == 0)
         return ((arr[i] + recursive(arr, i+1, size))/size)
      End
      return (arr[i] + recursive(arr, i+1, size))
Step 2→ double avg(int arr[], int size)
   return recursive(arr, 0 , size)
Step 3→ In main()
   Declare int arr[] = {1,5,3,2,6,7}
   Declare int size = sizeof(arr)/sizeof(arr[0])
   Call average(arr, size)
Stop

उदाहरण

#include <iostream>
using namespace std;
//function for calculating average recusively
double recursive(int arr[],int i, int size){
   if (i == size-1)
      return arr[i];
   if (i == 0)
      return ((arr[i] + recursive(arr, i+1, size))/size);
      return (arr[i] + recursive(arr, i+1, size));
}
//function for returning average
double average(int arr[], int size){
   return recursive(arr, 0 , size);
}
int main(){
   int arr[] = {1,5,3,2,6,7};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<average of an array using a recursive approach is : "<<average(arr, size) << endl;
   return 0;
}

आउटपुट

यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -

average of an array using a recursive approach is : 4

  1. सी प्रोग्राम में बाइनरी सर्च (पुनरावर्ती और पुनरावृत्त)

    द्विआधारी खोज एक खोज एल्गोरिथम है जिसका उपयोग क्रमबद्ध सरणी में किसी तत्व (लक्ष्य मान) की स्थिति खोजने के लिए किया जाता है। बाइनरी खोज लागू करने से पहले सरणी को क्रमबद्ध किया जाना चाहिए। बाइनरी सर्च को इन नामों से भी जाना जाता है, लॉगरिदमिक सर्च, बाइनरी चॉप, हाफ इंटरवल सर्च। कार्यरत द्विआधारी खोज

  1. सरणी के उत्पाद के लिए सी कार्यक्रम

    n तत्वों की एक सरणी गिरफ्तारी [n] को देखते हुए, कार्य उस सरणी के सभी तत्वों के गुणनफल को खोजना है। जैसे हमारे पास 7 तत्वों की एक सरणी गिरफ्तारी [7] है, इसलिए इसका उत्पाद इस तरह होगा उदाहरण Input: arr[] = { 10, 20, 3, 4, 8 } Output: 19200 Explanation: 10 x 20 x 3 x 4 x 8 = 19200 Input: arr[] = { 1

  1. सरणी तत्वों के गुणन के लिए C++ प्रोग्राम

    पूर्णांक तत्वों की एक सरणी के साथ दिया गया और कार्य एक सरणी के तत्वों को गुणा करना और इसे प्रदर्शित करना है। उदाहरण Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए कार्यक्रम में उपयोग क