Pages

Wednesday, 2 November 2016

goto statement in c



goto स्टेटमेंट का प्रयोग किसी प्रोग्राम मे एक फंक्शन के अंदर, एक स्टेटमेंट से दूसरे स्टेटमेंट मे जम्प कराने के लिए उपयोग मे आता हैं।

जैसा की ऊपर दिये गए चित्र मे हम देख रहे की लाइन-1 से हम लाइन-5 मे आना चाहते हैं, इसके लिए हमे लाइन 2, 3 और 4 को जम्प करना होगा। ऐसी स्थिति मे हम सी-प्रोग्राम मे मौजूद goto स्टेटमेंट का प्रयोग कर प्रोग्राम की उन लाइन को जम्प कर सकते हैं जिनहे हमे नहीं पढ़ना चाहते हैं।
या किसी कोड को किसी दिये गए शर्त के पूरा होने तक बार बार क्रियान्वित करना चाहते हैं तो चाहे तो इस समस्या को हल करने के लिए भी goto का इस्तेमाल कर सकते हैं। हालांकि इसके लिए लूप हैं पर फिट भी goto के उपयोग से आप किसी कोड को भी निश्चित शर्त के आधार पर बार बार क्रियान्वित कर सकते हैं।
goto statement's syntax: 
  
any_function()
{
Statement 1;
goto aa;
Statement 2;
Statement 3;
aa:
statement 4:
}

ऊपर दिये गए syntax मे हमने देखा की कैसे goto स्टेटमेंट का इस्तेमाल करना चाहिए।
कई प्रोग्रामरो द्वारा goto के इस्तेमाल को नकारने की बात कही गई हैं और उनका यह कहना हैं की जहां तक संभव हैं goto का इस्तेमाल करने से बचे क्योंकि goto के इस्तेमाल से कई बार बहुत ही अनसुलझी गुत्थी का निर्माण होता हैं जिसे प्रोग्राम के परिणाम का अनुमान नहीं लगाया जा सकता, तथा परिणाम असामान्य प्राप्त होता हैं।
ध्यान देने वाली बात यह हैं की goto स्टेटमेंट का इस्तेमाल कर आप नीचे के स्टेटमेंट जम्प कर के नीचे की ओर बढ़ सकते हैं तथा आप ऊपर के कोड को दुबारा पढ़ सकते हैं। यानि आप ऊपर की ओर भी जम्प कर सकते हैं जैसे की नीचे दिये चित्र मे दर्शाया गया हैं।
image
ऊपर दिये फिगर 2 मे आप देख रहे हैं, जिसमे goto ऊपर की ओर जम्प कर रहा हैं। या कह सकते हैं की फिर उस कोड क्रियान्वित कर रहा हैं जिसे वह पहले भी क्रियान्वित कर चुका हैं। धन रहे जब भी ऊपर के कोड पर जम्प करना हो तो goto स्टेटमेंट का इस्तेमाल सोच समझ कर करना चाहिए अन्यथा आप अनंत समय के लिए लूप मे फस जाएंगे। नीचे हम एक प्रोग्राम बनाने जा रहे हैं जिसमे हम 1 से लेकर 10 तक की संख्या को प्रिंट कराएंगे goto स्टेटमेंट का इस्तेमाल करते हुये। यहाँ हम लूप स्टेटमेंट इस्तेमाल नहीं करेंगे।
Write a program to print number between 1 to 10, using goto statement and avoid loop statement.
#include

main()
{
int a=1;

loop:
a++;
printf("number = %d",a);

if(a<10 goto="" loop="" pre="" printf="" program="" terminated="">
इस प्रोग्राम का आउटपुट निम्न प्रकार से आयेगा।
अनन्त काल तक लूप मे प्रोग्राम चलेगा

Monday, 17 October 2016

continue statement in c programming



continue सी-भाषा मे एक की-वर्ड हैं। इस कीवर्ड का इस्तेमाल मुख्य रूप से for लूप मे किया जाता हैं। फॉर लूप मे continue स्टेटमेंट जहां भी लिखा होता हैं, वहाँ से लूप को आंगे नहीं पढ़ा जाता हैं और अगला लूप प्रारम्भ हो जाता हैं।
मानिए किसी लूप के अंदर 8 लाइन का कोड लिखा हुआ हैं। और आप हर लूप मे शुरू के 4 लाइन का कोड run करना चाहते हैं और बांकी नीचे बचे 4 लाइन के कोड को skip (छोड़ना) करना चाहते हैं। तब ऐसी स्थिति मे continue का इस्तेमाल करना चाहिए।
क्योंकि continue स्टेटमेंट किसी भी लूप को तुरंत रोक कर उसे अगले लूपिंग को प्रारम्भ कर देता हैं। इसे समझने के लिए नीचे दिये गए प्रोग्राम को देखते हैं।
main()
{
int a=10;
while (a<15)
{
a++;
continue;
printf("\nValue of a is %d", a);
}
}
ऊपर दिये प्रोग्राम का क्या आउटपुट आयेगा? अगर आप सोच रहे होंगे की इस प्रोग्राम का आउटपुट निम्न प्रकार से आयेगा –
Value of a is 11
Value of a is 12
Value of a is 13
Value of a is 14
Value of a is 15
तो यह ध्यान रहे की आप बिलकुल ही गलत सोच रहे हैं। क्योंकि ऊपर दिया प्रोग्राम लूप को 5 बार जरूर चलाएगा, परंतु आउटपुट कुछ भी नहीं देगा। एसा इसलिए क्योंकि ऊपर दिये गए लूप मे continue स्टेटमेंट का इस्तेमाल किया गया हैं जो की printf("\nValue of a is %d", a); के ऊपर लिखा हुआ हैं। जिसका अर्थ यह हैं की जब भी लूप continue तक पाहुचेगा, continue लूप को वही पर रोक कर अगला लूप प्रारम्भ कर देगा।
continue स्टेटमेंट की आवश्यकता को जानने के लिए एक प्रोब्लेम देखते हैं जिसे सी भाषा के प्रोग्राम के माध्यम से हल करना हैं, जिसे continue स्टेटमेंट का उपयोग किया जाना हैं। Make a c program to print number from 1 to 10, but avoid 3,6 and 7 to printing in screen.
#include 
int main () {
   /* local variable definition */
   int a = 1;
   /* do loop execution */
   do {
      if( a ==3 || a==6 || a==7) {
         /* skip the iteration */
         a = a + 1;
         continue;
      }
      printf("value of a: %d\n", a);
      a++;
    } while( a < 20 );
    return 0;
}
इस प्रोग्राम का आउटपुट निम्न होगा।
value of a: 1
value of a: 2
value of a: 4
value of a: 5
value of a: 8
value of a: 9
value of a: 10

Sunday, 16 October 2016

FOR LOOP in C Programing



यह लूप दूसरे मौजूद लूप से ज्यादा लोकप्रिय हैं। हालांकि यह बाँकी लूप से भिन्न हैं। इस लूप को उपयोग करने के लिए for की-वर्ड का उपयोग किया जाता हैं। जिसमे तीन प्रकार के सेक्शन का इस्तेमाल होता हैं, इस लूप को समझने के लिए सबसे पहले for लूप का syntax देख लेते हैं।

सिंटेक्स : 
for(initialization; condition; counter)
{
statement 1;
statement 2 ;
}

Initialization section: फॉर लूप मे initialization सेक्शन मे काउंटर किए जाने वाले वैरिएबल को initialize करते हैं। जब लूप क्रियान्वित होता हैं तब यह सेक्शन उपयोग मे आता हैं, इसके बाद इस सेक्शन का उपयोग नहीं होता हैं। इन सेक्शन का केवल एक ही कार्य हैं, फॉर लूप मे उपयोग होने वाले वैरिएबल को प्रारम्भिक वैल्यू देना।

कंडीशन सेक्शन : इस सेक्शन मे शर्त को जांचा जाता हैं। सी भाषा मे लूप किसी शर्त के सही पाये जाने तक चलता हैं, और इसका निर्धारण कंडीशन सेक्शन मे कंडिशन को जांच कर किया जाता हैं।

Counter : यह सेक्शन for लूप मे उपयोग हो रहे वेरियबल की वैल्यू को काउंट करता हैं। क्यूंकी इस वेरियबल के माध्यम से लूप की कंडीशन को जाँचना होता हैं। इसलिए काउंटर वेरियाबल की वैल्यू को काउंट करता हैं जिससे यह पता चल सके की करेंट मे लूप कितनी बार लूपिंग कर चुका हैं।

Flowchart of FOR Loop



ऊपर दिया फ़्लोवचार्ट for लूप के क्रियान्वयन के बारे मे बता रहा हैं।

[1] जैसा की आप देख रहे हैं की सबसे पहला स्टेप expression initialization होता हैं। जिसके अंतर्गत वेरिएबल को प्रारम्भिक वैल्यू दी जाएगी।

[2] फिर आप कंडीशन टेस्टिंग सेक्शन देख रहे हैं जिसमे वेरियबल को दिये गए शर्त के आधार पर जांचा जाएगा।

[3] अगर कंडीशन गलत हुई तो लूप एक्ज़िट हो जाएगा।

[4] अगर लूप मे दी गई शर्त सही हैं तो लूप नियमित रहेगा और लूप के बॉडी मे दिया गया स्टेटमेंट क्रियान्वित होगा। और ये तब तक होता रहेगा जब तक शर्त सही पाई जाती रहेगी।

[5] पंचवा स्टेप काउंटर करना हैं, जिसके अंतर्गत वेरिएबल की वैल्यू को update किया जाता हैं। अगर यह चरण नहीं करेंगे, तो लूप अनंत समय तक चलता रहेगा।

याद रखने योग्य बाते

1- एक लाइन के कोड को लूपिंग करने के लिए लूप की बॉडी बनाना जरूरी नहीं हैं। यानि ब्रसेस की आवश्यकता नहीं हैं।

2- initialization, condition और counter को एक लाइन मे ही लिखा जाना चाहिए। जिसमे initialization और कंडीशन के बाद सेमीकालम लगाना जरूरी हैं।

फॉर लूप को समझने के लिए एक प्रोग्राम को देखते हैं। “C program to print even numbers between 1 to 100 using for loop”
#include   
   
int main() {  
    int counter; 
    printf("Even numbers between 1 to 100\n");  
    
    for(counter = 1; counter <= 100; counter++) {  
    
        if(counter%2 == 0) { 

            printf("%d ", counter);  
        }  
    }  
   
    return 0;  
} 

इस प्रोग्राम का आउटपुट निम्न प्रकार से आयेगा।

Even numbers between 1 to 100

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100


Do While Loop in C Programming



Do while लूप सी भाषा मे मौजूद तीन लूप मे से एक लूप हैं। यह बाकी बचे दो लूपो से भिन्न हैं। क्यूंकी इस लूप मे कंडीशन की जांच, लूप के सबसे निचले हिस्से मे होती हैं। जबकि while और for लूप मे कंडीशन की जांच लूप के सबसे ऊपर वाले हिस्से मे की जाती हैं। इसका प्रयोग करने के लिए निम्न प्रकार का syntax उपलब्ध हैं।

सिंटेक्स : 
do {
statement(s);
} while( condition );

ऊपर दिया गया syntax do while लूप का syntax हैं जिसमे आप देख सकते हैं की इस लूप मे कंडीशन को सबसे निचले हिस्से मे जांचा जा रहा हैं।

प्रभाव :

इस प्रकार के लूप की एक विशेष बात यह हैं, यह पहली बार लूप को जरूर क्रियान्वित करेगा जिसकी बजह से लूप एक बार जरूर चलेगा। इसका कारण यह हैं, की do while लूप मे कंडीशन को लूप की बॉडी के अंत मे जांचा जाता जिसकी वजह से लूप का एक तो क्रियान्वित होना तय हैं।

Flowchart of DO-WHILE Loop

ऊपर दिया गया चित्र do while का फलो चार्ट हैं, जिसमे आप do while के क्रियान्वयन को देख सकते हैं।

अब एक प्रोग्राम देखते हैं, जिसमे हम 11 से 20 तक की संख्या को स्क्रीन मे प्रिंट करेंगे।

#include 
 
int main () {

   /* local variable definition */
   int a = 10;

   /* do loop execution */
   do {
      printf("value of a: %d\n", a);
      a = a + 1;
   }while( a < 20 );
 
   return 0;
}

इस प्रोग्राम का आउटपुट निम्न प्रकार से आयेगा।

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19


Friday, 14 October 2016

While loop Statement / वाइल लूप स्टेटमेंट


While लूप एक लूपिंग स्टेटमेंट हैं, यह लूपिंग स्टेटमेंट मे मौजूद सभी लूप मे सबसे सरल लूप होता हैं। इसका उपयोग आसान होता हैं। इसका उपयोग करने के लिए syntax निम्न प्रकार दिये हुये हैं।
while( condition )
{
Statement 1;
Statement 2 ;
}
While एक की-वर्ड हैं। जिसके बाजू मे हम ब्रेकेट का इस्तेमाल करते हैं। इस ब्रेकेट के बीच मे कंडिशन दिया जाता हैं। इस ब्रेकेट मे दिया कंडीशन तय करता हैं, की while लूप कब तक क्रियान्वित होगा।

While स्टेटमेंट मे लूप तब तक चलता हैं, जब तक while मे दिया गया कंडीशन सही होता रहता हैं। अगर while मे दिया गया कंडीशन गलत हो जाता हैं, तब लूप वही पर समाप्त हो जाता हैं। अब एक प्रोग्राम के माध्यम से जानते हैं की while लूप का इस्तेमाल कैसे करते हैं। वाइल का इस्तेमाल करते हुये हम 2 का टेबल प्रिंट करने जा रहे हैं।
Main()
{
int a=1;
while(a<=10)
{
printf("2 X %d = %d",a,a*2);   
}
}
इस प्रोग्राम का आउटपुट निम्न प्रकार से आयेगा।
2 x 1 = 2
2 x 1 = 4
2 x 1 = 6
2 x 1 = 8
2 x 1 = 10
2 x 1 = 12
2 x 1 = 14
2 x 1 = 16
2 x 1 = 18
2 x 1 = 20

Tuesday, 4 October 2016

break statement in c programming

break statement in c programming

ब्रेक स्टेटमेंट का उपयोग लूप स्टेटमेंट से बाहर आने के लिए करते हैं। लूप स्टेटमेंट आम तौर पर जब तक क्रियान्वित होता रहता हैं, जब तक की लूप मे दिया गया कंडिशन गलत न हो जाए। अगर प्रोग्रामर लूप के बीच मे ही, लूप से बाहर आना चाहता हैं तो उस स्थिति मे प्रोग्रामर को break statement का उपयोग करना पड़ेगा।

लेकिन ध्यान रहे ब्रेक स्टेटमेंट का उपयोग करने के लिए बड़ी सावधानी से काम करना चाहिए। for लूप मे सीधे break statement का उपयोग करने पर लूप केवल एक बार ही चलेगा और बंद हो जाएगा। जिससे आपको सही परिणाम नहीं प्राप्त होगा। इस लिए लूप मे break का इस्तेमाल करने के लिए if स्टेटमेंट का इस्तेमाल करना चाहिए। जैसे

for(a =1 ; a < = 10; a++)
{
printf ("%d", a);
break ;
}

ऊपर दिये कोड मे आउटपुट 1 प्रिंट होगा और इसके बाद for लूप break स्टेटमेंट की बजह से बंद हो जाएगा। पर हम चाहते हैं की किसी विशेष शर्त पर ही लूप टर्मिनेट हो, जैसे 5 तक प्रिंट करने के बाद लूप बंद हो तब इस प्रकार की शर्त को पूरा करने के लिए प्रोग्रामर को if स्टेटमेंट का इस्तेमाल करना होगा।

for(a =1 ; a < = 10; a++)
{
printf ("%d", a);
if(a=>5) { break; } 
}

अब आप ऊपर जो प्रोग्राम देख रहे हैं, उसमे if स्टेटमेंट का प्रयोग किया गया हैं। जिसमे हमने लूप को बंद करने का एक निश्चित शर्त बता दी हैं। यदि a का मान 5 या उससे ज्यादा हैं तो लूप को बंद कर देना चाहिए। तब इस प्रकार ऊपर दिये कोड का आउटपुट होगा 1 2 3 4 5

इसके अलावा break statement का इस्तेमाल case statement मे भी किया जाता हैं। जहां पर switch मे किसी एक्स्प्रेशन को पास किया जाता हैं, वह एक्स्प्रेशन जब किसी case मे दिये एक्स्प्रेशन से मैच करता हैं तो उस case मे दिये statement क्रियान्वित होते हैं, उसके बाद case से बाहर निकलने के लिए break स्टेटमेंट का प्रयोग किया जाता हैं। case के साथ break स्टेटमेंट को समझने के लिए switch case statement का आर्टिकल जरूर पढे या यहा क्लिक करे


Wednesday, 21 September 2016

switch case statement in c programming



स्विच केस स्टेटमेंट

किसी प्रोग्राम मे डीसीजन मेकिंग को हैंडल करने के लिए अगर ज्यादा if else स्टेटमेंट उपयोग किए जाए तो प्रोग्राम बहुत जटिल बन जाएगा। जिससे प्रोग्राम के मेंटीनेंस के समय प्रोग्रामर को प्रोग्राम समझने मे कठिनाई का सामना करना पड़ता हैं। जो की अच्छे प्रोग्राममिंग वातावरण के लिए सही नहीं हैं।

इस समस्या से निजात पाने के लिए स्विच केस स्टेटमेंट का उपयोग किया जा सकता हैं। स्विच केस स्टेटमेंट एक सरल डीसीजन मेकिंग स्टेटमेंट हैं। जिसका उपयोग आसानी से एवं सहजता के साथ किया जा सकता हैं तथा इसमे if else से उत्पन्न होने वाली जटिलता का सामना नहीं करना पड़ता हैं।

स्विच केस स्टेटमेंट का उपयोग करने के लिए switch, case, default, break की-वर्ड का इस्तेमाल किया जाता हैं। switch मे एक डीसीजन मेकिंग हैं जिसमे प्रोगामर कोई वैल्यू या एक्स्प्रेश्न को पास करता हैं। यह एक्स्प्रेश्न सिर्फ इंटीजर और कैरेक्टर के रूप मे ही हो सकते हैं।
इसके बाद case कीवर्ड का उपयोग होता हैं। जिमसे case के साथ एक कोंस्टेंट वैल्यू का उपयोग होता हैं।  यह कोंस्टेंट वैल्यू इंटीजर या कैरेक्टर ही हो सकते हैं।
स्विच स्टेटमेंट का का syntax निम्न प्रकार हैं।
switch (expression)
{
case  constant-expression :
   statement 1
   break;
case constant-expression 2:
   statement 2 ;
   break;
case constant-expression 3:
   statement 3 ;
   break ;
default :
   default statement ;
   break;
}

ऊपर दिये syntax को अब समझने का प्रयास करते हैं switch(expression) मे हमे किसी एक्स्प्रेश्न का इस्तेमाल करना होता हैं पर एक्स्प्रेश्न इंटीजर या कैरेक्टर ही होना चाहिए।
इसके बाद case कीवर्ड का इस्तेमाल किया जाता हैं, इसके ठीक बाद मे constant- expression लिखा जाता हैं जैसा किया आप ऊपर दिये syntax मे देख सकते हैं। इसके बाद case को : कॉलन से बंद करना होता हैं। जैसा की जिचे दिया गया हैं। 

case  constant-expresson :

इसके बाद आप स्टेटमेंट लिख सकते हैं, इसमे स्टेटमेंट के रूप मे printf का इस्तेमाल किया जाता हैं। जिसका काम वैल्यू के आउटपुट को स्क्रीन मे प्रिंट करने के लिए उपयोग किया जाता हैं। और कंट्रोल को अगले case या switch से बाहर करने के लिए break स्टेटमेंट का इस्तेमाल किया जाता हैं। जैसा की आप नीचे दिये गए कोड मे देख सकते हैं।
case constant-expression1 :
printf(“Here i am printing my output”);
break ;

Flow chart of switch case statement


अब एक स्विच case stetment को समझने के लिए एक प्रोग्राम देखते हैं। Example: Simple Calculator using switch Statement




// Performs addition, subtraction, multiplication or division depending the input from user

# include

int main() {

char operator;
double firstNumber,secondNumber;

printf("Enter an operator (+, -, *,): ");
scanf("%c", &operator);

printf("Enter two operands: ");
scanf("%lf %lf",&firstNumber, &secondNumber);

switch(operator)
{
case '+':
printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber+secondNumber);
break;

case '-':
printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-secondNumber);
break;

case '*':
printf("%.1lf * %.1lf = %.1lf",firstNumber, secondNumber, firstNumber*secondNumber);
break;

case '/':
printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber/firstNumber);
break;

// operator doesn't match any case constant (+, -, *, /)
default:
printf("Error! operator is not correct");
}

return 0;
}



Output
Enter an operator (+, -, *,): *
Enter two operands: 1.5
4.5
1.5 * 4.5 = 6.8

Popular Posts