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

C++ में समरूप आकार (Equable Shapes)


इस समस्या में, हमें एक बहुभुज के निर्देशांक दिए गए हैं। हमारा कार्य यह जांचने के लिए एक प्रोग्राम बनाना है कि दिया गया बहुभुज समरूप (equable) है या नहीं।

समरूप आकार वह आकार है जिसकी परिधि (perimeter) उस आकार के क्षेत्रफल (area) के बराबर होती है।

उदाहरण से समझते हैं:

इनपुट: polygon[][] = {{0, 0}, {5, 7}, {2, 0}}

आउटपुट: समरूप नहीं

व्याख्या:

परिधि = 18.21
क्षेत्रफल = 7

समाधान दृष्टिकोण:

समस्या का समाधान आकार का क्षेत्रफल और परिधि ढूंढकर और फिर दोनों की तुलना करके यह जांचने में निहित है कि दिया गया आकार समरूप आकार है या नहीं।

निर्देशांकों का उपयोग करके परिधि ढूंढना सरल है। हमें केवल निर्देशांकों का उपयोग करके लंबाई ढूंढनी है और फिर परिधि ढूंढनी है,

परिधि = side1 + side2 + side3

निर्देशांकों का उपयोग करके क्षेत्रफल निकालने के लिए सूत्र का उपयोग किया जाता है:

क्षेत्रफल = 1/2 {(x₁y₂ + x₂y₃ + ... + xₙ₋₁yₙ + xₙy₁) - (x₂y₁ + x₃y₂ + ... + xₙyₙ₋₁ + x₁yₙ)}

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम:

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

double findShapeArea(double cord[][2], int n) { 
    double area = 0.0; 
    int j = n - 1; 
    for (int i = 0; i < n; i++) { 
        area += (float)(cord[j][0] + cord[i][0]) * (cord[j][1] - cord[i][1]); 
        j = i; 
    } 
    return abs(area / 2.0); 
} 

double findShapePerimeter(double cord[][2], int n) { 
    double perimeter = 0.0; 
    int j = n - 1; 
    for (int i = 0; i < n; i++) { 
        perimeter += sqrt((cord[j][0] - cord[i][0]) * (cord[j][0] - cord[i][0]) + 
                         (cord[j][1] - cord[i][1]) * (cord[j][1] - cord[i][1])); 
        j = i; 
    } 
    return perimeter; 
} 

int isEquableShape(double cord[][2], int n) { 
    int area = findShapeArea(cord, n); 
    int peri = findShapePerimeter(cord, n); 
    cout << "The area of the given shape is " << area << endl; 
    cout << "The perimeter of the given shape is " << peri << endl; 
    if (area == peri) 
        return 1; 
    else 
        return 0; 
} 

int main() { 
    int n = 3; 
    double cord[n][2] = {{0, 0}, {5, 7}, {2, 0}}; 
    if (isEquableShape(cord, n)) 
        cout << "The given shape is an equable shape"; 
    else 
        cout << "The given shape is not an equable shape"; 
    return 0; 
}

आउटपुट:

The area of the given shape is 7 
The perimeter of the given shape is 18 
The given shape is not an equable shape

  1. माइक्रोसॉफ्ट वर्ड में ड्रॉ कैसे करें माइक्रोसॉफ्ट वर्ड में ड्रॉ कैसे करें

    हालांकि माइक्रोसॉफ्ट वर्ड पहला ड्रॉइंग टूल नहीं हो सकता जिसके बारे में आप सोचते हैं, इसके ड्रॉइंग टूल्स इसकी कम-ज्ञात विशेषताओं में से हैं जो सीखने में सरल और उपयोग में आसान हैं। ये ड्रॉइंग टूल्स विभिन्न आकारों और रूपों में आते हैं जिनमें तीर, बैनर, कॉलआउट, वर्ग, वृत्त, तारे, और फ्लोचार्ट आकार शामिल

  1. - लिनक्स पर C++ के लिए शीर्ष IDE

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। यहां लिनक्स के लिए सर्वश्रेष्ठ C/C++ IDEs की सूची दी गई है। NetBeans

  1. - विंडोज पर C++ के लिए शीर्ष IDE

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। यहां विंडोज के लिए सर्वश्रेष्ठ C/C++ IDEs की सूची दी गई है। Visual S