What is Programming Errors in C Language
Programming Errors in C -सी . में प्रोग्रामिंग त्रुटियां
What is Programming Errors in C Language
त्रुटियां प्रोग्राम में होने वाली समस्याएं या दोष हैं, जो प्रोग्राम के व्यवहार को असामान्य बनाती हैं, और अनुभवी डेवलपर्स भी इन दोषों को बना सकते हैं। प्रोग्रामिंग त्रुटियों को बग या दोष के रूप में भी जाना जाता है, और इन बगों को हटाने की प्रक्रिया को डिबगिंग के रूप में जाना जाता है। (Programming Errors in C)
इन त्रुटियों का पता संकलन या निष्पादन के समय या तो लगाया जाता है। इस प्रकार, प्रोग्राम के सफल निष्पादन के लिए प्रोग्राम से त्रुटियों को दूर किया जाना चाहिए।
C प्रोग्रामिंग में मुख्यतः पाँच प्रकार की त्रुटियाँ होती हैं:
Syntax error -वक्य रचना त्रुटि
Run-time error -रनटाइम त्रुटि
Linker error -लिंकर त्रुटि
Logical error -तार्किक त्रुटि
Semantic error -सिमेंटिक एरर
Syntax error -वक्य रचना त्रुटि
सिंटैक्स त्रुटियों को संकलन त्रुटियों के रूप में भी जाना जाता है क्योंकि वे संकलन समय पर हुई थीं, या हम कह सकते हैं कि सिंटैक्स त्रुटियां संकलक द्वारा फेंकी जाती हैं। ये त्रुटियां मुख्य रूप से टाइप करते समय गलतियों के कारण होती हैं या निर्दिष्ट प्रोग्रामिंग भाषा के सिंटैक्स का पालन नहीं करती हैं। ये गलतियाँ आम तौर पर शुरुआती लोगों द्वारा ही की जाती हैं क्योंकि वे भाषा के लिए नई हैं। इन त्रुटियों को आसानी से डिबग या ठीक किया जा सकता है।
For example:
If we want to declare the variable of type integer,
int a; // this is the correct form
Int a; // this is an incorrect form.
आमतौर पर हुई सिंटैक्स त्रुटियां हैं:
यदि हम कोड लिखते समय कोष्ठक (}) से चूक जाते हैं।
एक चर के मूल्य को उसकी घोषणा के बिना प्रदर्शित करना।
यदि हम कथन के अंत में अर्धविराम (;) से चूक जाते हैं।
आइए एक उदाहरण के माध्यम से समझते हैं।
#include <stdio.h>
int main()
{
a = 10;
printf("The value of a is : %d", a);
return 0;
}
Output:-
उपरोक्त आउटपुट में, हम देखते हैं कि कोड त्रुटि को फेंकता है कि 'ए' अघोषित है। यह त्रुटि और कुछ नहीं केवल सिंटैक्स त्रुटि है।
एक और संभावना हो सकती है जिसमें वाक्य रचना त्रुटि मौजूद हो सकती है, अर्थात, यदि हम मूल निर्माण में गलतियाँ करते हैं। आइए इस परिदृश्य को एक उदाहरण के माध्यम से समझते हैं। (Programming Errors in C)
#include <stdio.h>
int main()
{
int a=2;
if(.) // syntax error
printf("a is greater than 1");
return 0;
}
उपरोक्त कोड में, हम 'if' में कंडीशन के बजाय (.) डालते हैं, इसलिए यह सिंटैक्स त्रुटि उत्पन्न करता है जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।
Output:-
Run-time error -रनटाइम त्रुटि
कभी-कभी सफल संकलन के बाद भी निष्पादन-समय के दौरान त्रुटियां मौजूद रहती हैं जिन्हें रन-टाइम त्रुटियों के रूप में जाना जाता है। जब प्रोग्राम चल रहा होता है, और यह ऑपरेशन करने में सक्षम नहीं होता है, तो रन-टाइम त्रुटि का मुख्य कारण होता है। शून्य से विभाजन रन-टाइम त्रुटि का सामान्य उदाहरण है। इन त्रुटियों को खोजना बहुत कठिन है, क्योंकि संकलक इन त्रुटियों को इंगित नहीं करता है।
आइए एक उदाहरण के माध्यम से समझते हैं।
#include <stdio.h>
int main()
{
int a=2;
int b=2/0;
printf("The value of b is : %d", b);
return 0;
}
Output:-
उपरोक्त आउटपुट में, हम देखते हैं कि कोड रन-टाइम त्रुटि दिखाता है, यानी, शून्य से विभाजन।
Linker error -लिंकर त्रुटि
लिंकर त्रुटियां मुख्य रूप से तब उत्पन्न होती हैं जब प्रोग्राम की निष्पादन योग्य फ़ाइल नहीं बनाई जाती है। यह गलत फंक्शन प्रोटोटाइप या गलत हेडर फाइल के उपयोग के कारण हो सकता है। उदाहरण के लिए, main.c फ़ाइल में उप () फ़ंक्शन होता है जिसकी घोषणा और परिभाषा किसी अन्य फ़ाइल जैसे func.c में की जाती है। संकलन के दौरान, कंपाइलर func.c फ़ाइल में उप () फ़ंक्शन ढूंढता है, इसलिए यह दो ऑब्जेक्ट फ़ाइलें, अर्थात, main.o और func.o उत्पन्न करता है। निष्पादन के समय, यदि func.o फ़ाइल में उप () फ़ंक्शन की परिभाषा नहीं मिलती है, तो लिंकर त्रुटि फेंक दी जाएगी। सबसे आम लिंकर त्रुटि जो होती है वह यह है कि हम मुख्य () के बजाय मुख्य () का उपयोग करते हैं। (Programming Errors in C)
एक साधारण उदाहरण के माध्यम से समझते हैं।
#include <stdio.h>
int Main()
{
int a=78;
printf("The value of a is : %d", a);
return 0;
}
Output:-
Logical error -तार्किक त्रुटि
तार्किक त्रुटि एक त्रुटि है जो एक अवांछित आउटपुट की ओर ले जाती है। ये त्रुटियां गलत आउटपुट उत्पन्न करती हैं, लेकिन वे त्रुटि-मुक्त हैं, जिन्हें तार्किक त्रुटियों के रूप में जाना जाता है। इस प्रकार की गलतियाँ मुख्य रूप से नौसिखियों द्वारा की जाती हैं। इन त्रुटियों की घटना मुख्य रूप से डेवलपर की तार्किक सोच पर निर्भर करती है। यदि प्रोग्रामर तार्किक रूप से अच्छे लगते हैं, तो इन त्रुटियों की संभावना कम होगी।
आइए एक उदाहरण के माध्यम से समझते हैं।
#include <stdio.h>
int main()
{
int sum=0; // variable initialization
int k=1;
for(int i=1;i<=10;i++); // logical error, as we put the semicolon after loop
{
sum=sum+k;
k++;
}
printf("The value of sum is %d", sum);
return 0;
}
Output:-
उपरोक्त कोड में, हम 10 अंकों के योग को प्रिंट करने का प्रयास कर रहे हैं, लेकिन लूप के बाद अर्धविराम (;) डालते ही हमें गलत आउटपुट मिला, इसलिए लूप के आंतरिक विवरण निष्पादित नहीं होंगे। यह गलत आउटपुट देता है।
Semantic error -सिमेंटिक एरर
सिमेंटिक एरर वे एरर हैं जो तब होती हैं जब कंपाइलर द्वारा स्टेटमेंट को समझ में नहीं आता है।
सिमेंटिक त्रुटि के मामले निम्नलिखित हो सकते हैं:
Use of a un-initialized variable.
int i;
i=i+2;
Type compatibility
int b = "javatpoint";
Errors in expressions
int a, b, c;
a+b = c;
Array index out of bound
int a[10];
a[10] = 34;
आइए एक उदाहरण के माध्यम से समझते हैं।
#include <stdio.h>
int main()
{
int a,b,c;
a=2;
b=3;
c=1;
a+b=c; // semantic error
return 0;
}
उपरोक्त कोड में, हम कथन a+b =c का उपयोग करते हैं, जो गलत है क्योंकि हम बाईं ओर के दो ऑपरेंड का उपयोग नहीं कर सकते हैं। (Programming Errors in C)
Output:-