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

सी ++ में एब्स्ट्रैक्शन

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

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

कक्षाओं का उपयोग करके सी ++ में अमूर्तता को लागू करने का कार्यक्रम निम्नानुसार दिया गया है।

उदाहरण

#include <iostream>
using namespace std;
class Abstraction {
   private:
   int length, breadth;
   public:
   void setValues(int l, int b) {
      length = l;
      breadth = b;
   }
   void calcArea() {
      cout<<"Length = " << length << endl;
      cout<<"Breadth = " << breadth << endl;
      cout<<"Area = " << length*breadth << endl;
   }
};
int main() {
   Abstraction obj;
   obj.setValues(5, 20);
   obj.calcArea();
   return 0;
}

आउटपुट

Length = 5
Breadth = 20
Area = 100

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

class Abstraction {
   private:
   int length, breadth;
   public:
   void setValues(int l, int b) {
      length = l;
      breadth = b;
   }
   void calcArea() {
      cout<<"Length = " << length << endl;
      cout<<"Breadth = " << breadth << endl;
      cout<<"Area = " << length*breadth << endl;
   }
};

फ़ंक्शन मुख्य () में, पहले एब्स्ट्रक्शन प्रकार की एक वस्तु परिभाषित की जाती है। फिर फ़ंक्शन setValues() को मान 5 और 20 के साथ कॉल किया जाता है। अंत में, इन मानों और क्षेत्र को कैल्कएरिया () फ़ंक्शन का उपयोग करके प्रदर्शित किया जाता है। इसके लिए कोड स्निपेट इस प्रकार है।

Abstraction obj;
obj.setValues(5, 20);
obj.calcArea();

  1. सी ++ लंबाई के रूट से लीफ पथ पर नोड्स को हटा दें <K

    एक पेड़ को देखते हुए, और हमें दिए गए k से कम लंबाई वाले पथ के लीफ नोड को हटाने की जरूरत है, उदाहरण के लिए। इनपुट - K = 4. आउटपुट - स्पष्टीकरण The paths were : 1. A -> B -> C -> E length = 4 2. A -> B -> C -> F length = 4 3. A -> B -> D length = 3 4. A -> G -> H le

  1. सी ++ पथ लंबाई जिसमें अधिकतम संख्या में मोड़ हैं

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया जाता है। अब हमें उस पथ को खोजने की आवश्यकता है जिसमें अधिकतम संख्या में मोड़ हों। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिए इनपुट - आउटपुट - 6 अब इस दृष्टिकोण में, हम पेड़ से गुजरें

  1. सी ++ में लिंक्ड सूची में लूप की लंबाई पाएं

    इस समस्या में, हमें एक लिंक की गई सूची दी जाती है जिसमें लूप हो सकते हैं। हमारा कार्य लिंक्ड सूची में लूप की लंबाई ज्ञात करना है। समस्या का विवरण: हमें लूप में नोड्स की संख्या गिनने की आवश्यकता है यदि इसमें लूप है अन्यथा -1 लौटाएं। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: लिंक्ड-लिस्