एक फंक्शन एक स्व-निहित ब्लॉक है जो एक विशिष्ट सुपरिभाषित कार्य करता है।
C भाषा में फंक्शन्स के लाभ
- पुनर्उपयोगिता (Reusability)
- प्रोग्राम की लंबाई कम की जा सकती है
- किसी भी दोषपूर्ण फंक्शन को ढूंढना और ठीक करना आसान है
- टॉप-डाउन मॉड्यूलर प्रोग्रामिंग की सुविधा देता है
टॉप-डाउन डिज़ाइन और स्ट्रक्चर चार्ट्स
यह एक समस्या-समाधान विधि है जिसमें एक जटिल समस्या को उप-समस्याओं में विभाजित करके हल किया जाता है।
स्ट्रक्चर चार्ट एक डॉक्यूमेंटेशन टूल है जो किसी समस्या की उप-समस्याओं के बीच संबंधों को दिखाता है।
उदाहरण: दो संख्याओं पर अंकगणितीय संक्रियाएं
समस्या: दो संख्याओं पर अंकगणितीय संक्रियाएं करना
- योग ज्ञात करें
- अंतर ज्ञात करें
- गुणनफल ज्ञात करें
- भागफल ज्ञात करें
पहले चरण (योग) के लिए परिष्कृत एल्गोरिदम:
- दो संख्याएं a, b लें
- योग ज्ञात करें: c = a + b
- योग प्रिंट करें
स्ट्रक्चर चार्ट प्रतिनिधित्व
Main Program
|
+---------+---------+---------+---------+
| | | | |
Sum Diff Product Quotient Remainder
(a+b) (a-b) (a*b) (a/b) (a%b)
| | | | |
Print Print Print Print Print
C में कार्यान्वयन
#include <stdio.h>
// फंक्शन प्रोटोटाइप्स (टॉप-डाउन: पहले मुख्य लॉजिक)
int sum(int a, int b);
int diff(int a, int b);
int product(int a, int b);
float quotient(int a, int b);
int remainder(int a, int b);
void printResult(const char *op, int result);
int main() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
printf("Sum: %d\n", sum(a, b));
printf("Difference: %d\n", diff(a, b));
printf("Product: %d\n", product(a, b));
if(b != 0) {
printf("Quotient: %.2f\n", quotient(a, b));
printf("Remainder: %d\n", remainder(a, b));
}
return 0;
}
// फंक्शन परिभाषाएं (बॉटम-अप: विवरण बाद में)
int sum(int a, int b) { return a + b; }
int diff(int a, int b) { return a - b; }
int product(int a, int b) { return a * b; }
float quotient(int a, int b) { return (float)a / b; }
int remainder(int a, int b) { return a % b; }
void printResult(const char *op, int result) {
printf("%s: %d\n", op, result);
}
टॉप-डाउन डिज़ाइन के लाभ
- मॉड्यूलरिटी: प्रत्येक फंक्शन स्वतंत्र, परीक्षण योग्य
- पठनीयता: मुख्य लॉजिक उच्च स्तर पर स्पष्ट
- रखरखाव: एक फंक्शन में परिवर्तन दूसरों को प्रभावित नहीं करता
- टीम विकास: अलग-अलग डेवलपर्स अलग-अलग फंक्शन्स पर काम कर सकते हैं
- पुनर्उपयोगिता: फंक्शन्स अन्य प्रोग्राम्स में पुनः उपयोग योग्य
स्ट्रक्चर चार्ट तत्व
| प्रतीक | नाम | अर्थ |
|---|---|---|
| □ | मॉड्यूल/फंक्शन | एक प्रक्रिया या फंक्शन |
| → | कॉल/नियंत्रण प्रवाह | एक मॉड्यूल दूसरे को कॉल करता है |
| ◇ | निर्णय | शर्ती शाखा |
| ⌷ | डेटा कपल | पैरामीटर पास करना |
| ⌷⌷ | कंट्रोल कपल | नियंत्रण फ्लैग पास करना |
निष्कर्ष
टॉप-डाउन डिज़ाइन जटिल समस्याओं को प्रबंधनीय मॉड्यूल्स में तोड़ता है। स्ट्रक्चर चार्ट इस पदानुक्रम को दृश्यमान बनाता है, जिससे संचार, दस्तावेजीकरण और रखरखाव आसान होता है।