Header Ads

ad728
  • New Updates

    for Loop

    for Loop

    यह सर्वाधिक प्रयोग होने वाला Loop है | इस Loop में “C” के for keyword का प्रयोग होता है | इस Loop की विशेषता यह है , कि इसके जितने भी Statement होते हैं , उन्हें for Loop लिखने के बाद उसके नीचें मझले कोष्टक के एक Block में लिखा जाता है और ये Statements Block तभी Execute होता है , जब for Condition सत्य होती है | for Loop का Syntax निम्नानुसार होता है |

     

    for ( Initial Part; Conditional Part; Step Size Part )

    {

      Statements Block;

    }

    जब for Loop का Execution होता है , तो सर्व प्रथम Loop का Variable Initialize होता है और फिर Condition Check होती है | यदि Condition सत्य होती है , तो Program Control for Loop के Statement Block में जाता है और वहां के Statements का Execution करता है |

    जब for Loop Statement Block के सभी Statements का Execution कर देता है तो Block से बाहर आने से पहले Loop के Step Size Part का Execution करता है और बताई गई Size के अनुसार Variable का मान Increment या Decrement करता है |

    फिर वापस Condition Check करता है यदि Condition सत्य होती है तो वापस Statement Block में जाता है और सभी Statements का Execution करने के बाद वापस Step Size Part का Execution करता है |

    ये क्रम तब तक चलता रहता है जब तक कि for Loop की Condition सत्य रहती है | Loop का Initialization केवल एक बार ही होता है जब पहली बार Program Control for Loop में प्रवेश करता है | for Loop का Execution हमेशा इसी क्रम में होता है |

     

    Example

    इस Loop द्वारा एक प्रोग्राम बनाते हैं जिसमें 1 से 7 तक की गिनती को Output में निम्नानुसार Print करवाना हैं |

    1

    2

    3

    4

    5

    6

    7

    इस प्रोग्राम को हम पहले गणितीय रूप में लिखते हैं | हम int प्रकार का एक Variable i लेते हैं | इस प्रकार में गिनती का प्रारम्भिक मान 1 है अतः i का प्राम्भिक मान i = 1 कर सकते हैं | यह इस प्रोग्राम के Initial Part का Declaration है |

    Print होने वाली गिनती का अधिकतम मान 7 है , इसलिए Condition के रूप में हम ये कह सकते हैं कि Loop तब तक चलना चाहिये जब तक कि i का मान 7 नहीं हो जाता | इसलिए हम इसे गणितीय रूप में  i <=7 लिख सकते हैं | यह Expression प्रोग्राम को बताता है कि Condition तब तक सत्य रहेगी जब तक कि i का मान 7 से कम या 7 के बराबर नहीं हो जाता | यह इस प्रोग्राम के Conditional Part का Declaration है |

    इस प्रोग्राम में हर पहली संख्या हर दूसरी संख्या से बड़ी है | इसलिए Loop के Step Size Part में हमें Increment Operator का प्रयोग करना होगा और साथ ही हर संख्या एक के क्रम में बढ़ रही है इसलिए हमें Variable के मान को हर Iteration में एक के क्रम में बढाना होगा | इसे गणितीय रूप में i = i+1 के Step Size Part का Declaration है | इस प्रकार हमें for Loop के तीनों भाग प्राप्त हो गए हैं जो निम्नानुसार है |

    i = 1

    i <= 7

    i++ or i = i+1

    इस तीनों को for Loop में रख देते हैं तो निम्न प्रकार से for Loop का कोष्टक बन जाता है | ध्यान दें कि ये तीनों Expression अलग – अलग है | इसलिए इन्हें ; ( Semicolon) से अलग लिखा गया है |

    for( i=1; i<=7 ; i=i+1)  or  for ( i=1; i<=7; i++)

    अब for Loop का Statement Block लिखना है | i का मान क्रम से एक – एक बढ़ रहा है | इसलिए Statement Block में यदि i का मान Print कर दिया जाए , तो हमें हमारा Output प्राप्त हो जाएगा | इसे निम्नानुसार लिख सकते हैं –

    {

       printf(“%d”,i);

    }

    इस प्रोग्राम में पहला अंक Print होने के बाद दूसरा अंक अगली पंक्ति में Print होना चाहिये | इसलिए हमें नई लाइन के लिए एक New Line Statement और लिखना होगा | साथ ही ये Statement भी for Statement Block के अंदर ही लिखना होगा ताकि जैसे ही Program Control एक Iteration के बाद दूसरे Iteration के लिए जाए , उससे पहले एक New Line Print हो | हम printf() Function के अंदर ही एक New Line Character Constant लिख सकते हैं | ये दोनों Statement नीचें लिखे गए हैं | हम जिसे चाहें उसे Use कर सकते हैं |

    printf(“%d\n”,i); or printf(“\n”);

     

    Program

      
    
    /* Using of For Loop */
    
    #include<stdio.h>
    main()
    {
            int i;
    	
            for(i=1; i<=7; i++)
           {
              printf("%d\n",i);
           }
            getch();
    }
    
    

    इस प्रोग्राम में जब प्रथम बार for Loop का Execution होता है , तब  i = 1 होता है | इसलिए Condition सत्य होती है , साथ ही i का मान Increment हो कर 2 हो जाता है | Program Control , Block Statement को Execute कर देता है और Output में संख्या 1 print हो जाती है | Program Control वापस i का मान check करता है और Condition वापस सत्य होती है | i का मान पुनः Incremented हो कर 3 हो जाता और Output में संख्या 2 Print हो जाती है |

    पुनः Condition Check होती है और यह क्रम तब तक चलता है जब तक कि i का मान Increment हो कर 11 नहीं हो जाता | जैसे ही i का मान 11 होता है for Condition असत्य हो जाती है और Program Control for Statement Block को Execute नहीं करता बल्कि सीधे ही getch() Function पर पहुंच कर Output को Print कर देता है |

     

    Example

    1 से 100 तक की सम संख्याओं को Print करने का प्रोग्राम बनाओं | हर संख्या एक नई पंक्ति में print होनी चाहिये |

    इस प्रोग्राम में हमें एक Loop चलाना होगा और Loop की Step Size का मान यदि दो – दो के क्रम में बढाया जाए तो प्रोग्राम के Output में हमें केवल सम संख्याए ही प्राप्त होगी | निचे इस समस्या के समाधान के लिए प्रोग्राम बनाया गया है | इस प्रोग्राम में int प्रकार का एक Variable b लिया है |  इस समस्या का प्रोग्राम निम्नानुसार है |

     

    Program

      
    /* Printing Odd Number In Output Using Loop */
    
    #include<stdio.h>
    main()
    {
         int b;
    		
         for(b=0; b<=100; b+=2)
         {
            printf("%d\n",b);
         }
         getch();
    }
    
    
    

    जब प्रोग्राम को Execute किया जाता है , तो Program हमेंशा की तरह Main() Function पर जाता है और Program के Statement Block में प्रवेश करता है | यहां Computer को int प्रकार का एक Variable b प्राप्त होता है |

    यहां Compiler तीन काम करता है | पहला , int प्रकार के Variable को प्रारम्भिक मान 0 assign करता है | दूसरा – Condition Check करता है कि  b का मान 100 से कम है या नहीं और जब Statement Block के सभी Statements का Execution करके वापस Condition Check करने के लिए for Loop के कोष्टक पर आता है , तो Block से बाहर निकलने से पहले तीसरा काम करता है यानी b का मान उसे Initialized प्रारम्भिक मान से दो अंक Increment करके बढा देता है |

    b का मान 0 होने से Condition सत्य हो जाती है  , इसलिए Program Control , for Statement Block में प्रवेश करता है | यहां उसे Printf() Function मिलता है और वह उसे Execute करके b का मान Output में Print करता है | Statement Block को Execute करने के बाद पुनः Condition Check होती है कि b का मान अब 100 से कम है या नहीं | Condition वापस सत्य होती है क्योंकि अब b का प्रारम्भिक मान 2 है जो कि 100 से कम है | Condition पुनः सत्य होने से पुनः Statement Block Execute होता है और b का दूसरा मान 2 Print हो जाता है |

    पुनः Program Control  b का मान Check करने से पहले b का मान बढ़ कर 4 हो जाता है | पुनः Condition Check होती है कि b का मान 100 से कम या बराबर है या नहीं पुनः Condition सत्य होती है | इस प्रकार यह क्रम तब तक चलता रहता है जब तक कि b का मान Increment हो कर 102 नहीं हो जाता |

    जैसे ही b का मान बढ़ कर 102 होता है तो for की Condition असत्य हो जाती है और Program Control , for Statement Block में प्रवेश नहीं करता बल्कि सीधे ही getch() Function पर चला जाता है और Output Screen पर Show हो जाता है | इस प्रकार से हमें Output में केवल सम संख्याएं ही मिलती है |

     

    Example

    20 ये 10 तक की सभी सम संख्याएं आरोही क्रम में Print करो |

    Program

      
    #include<stdio.h>
    main()
    {
          int a;
    	
          for(a=10; a>=5; a--)
         {
            printf("\n%d",a*2);
            }
           getch();
    } 
    
    

    Example

    एक प्रोग्राम बनाओ जिसमें 100 से 200 तक की संख्याओं का योग Output में Print हो |

      
    #include<stdio.h>
    main()
    {
         int i, sum=0;
    	
         for(i=100; i<=200; i++)
         sum = sum+i;
         {
              printf("\n sum = %d",sum);
          }
          getch();
    }
    
    

    Example

    एक प्रोग्राम बनाओं जिसमें n संख्याओं का Factorial Output में Print हो |

    Program

      
    
    #include<stdio.h>
    main()
    {
         int i , n , fact =1;
    	
         printf("Enter the n: ");
         scanf("%d",&n);
    	
         for(i=n; i>0; i--)
         fact = fact * i;
    	
          printf("fact =%d", fact);
          getch();
    }
    
    

    Example

    एक प्रोग्राम बनाओ जिसमें n संख्याओं की Fibonacci Series Output में Print  हो |

    Program

      
    #include<stdio.h>
    main()
    {
          int a=0 , b=1 , sum , n , c;
    	
          printf("Enter the fibonacci Series: ");
           scanf("%d",&n);
           printf("%d\n",b);
    	
           for(c=1; c<=n; c++)
          {
             sum=a+b;
             a=b;
             b=sum;
             printf("%3d",sum);
           }
        getch();
    }
    
    

    Example

    एक प्रोग्राम बनाओ जिसमें 100 से 200 के बीच उन संख्याओं का योग व संख्याएं Output में Print हों , जिनमें 7 का भाग पूरा – पूरा जाता है |

    Program

      
    #include<stdio.h>
    main()
    {
         int a, sum=0;
    	
         for(a=100; a<=200; a++)
         {
             if(a%7==0)
             {
                printf("%d",a);
                sum=sum+a;
              }
          }
          printf("\n sum=%5d\n",sum);
       getch();
    }
    
    

    for Loop की एक और विशेषता ये भी है कि हम एक ही for Loop कोष्टक में आवश्यकता के अनुसार कई Loop चला सकते है | इसका Syntax निम्नानुसार होता है –

     

     

    for  ( Initial , Initial2, … , Initial Part n; Conditional Part; Step1 , Step2, …, Step N)

    {

       Statement Block;

    }

     

    एक उदाहरण द्वारा इसे समझते हैं | माना हमें निम्न Format में गिनती Print करनी है |

    इस प्रोग्राम में चार पंक्तियों में अंक Print हुए हैं इसलिए हमें चार अंकों के लिए चार Variable लेने होंगे | माना हमने चार Variable b,c,d,f लिए | इस प्रोग्राम में दो Variables को तो मान वैसे ही दिया जाएगा जिस तरह Loop के पिछले प्रोग्राम में दिया है , यानी निम्नानुसार

    लिकिन दो Variables के साथ इसकी उलटी प्रक्रिया करनी होगी यानी Loop का मान प्रथम 10 व अंतिम मान 1 हो ना चाहिये तथा प्रोग्राम में Variables या Decrement होना चाहिये | इससे Variable c f का मान निम्नानुसार हो जाएंगे  |

    अब इन चारों Variables  का मान ऊपर वाले for Loop के Syntax के अनुसार लिख देते हैं , तो हमें निम्नानुसार Format प्राप्त होता है –

    for (b=1 , c=10 , d=1 , f=10; b<=10, c>=1, d<=10, f>=1; b++ , c-- , d++ ,f--)

     

    इस Loop में चार Loop एक साथ चलेंगे | अब हम यदि इन Loops से प्राप्त मानों को Output में Print करें , तो हमें हमारा वांछित परिणाम प्राप्त हो जाएगा | इसके लिए हमें Statement Block में निम्न Statement लिखना होगा |

    {

    printf(“\f%d\t%d\t%d\t%d\t\n”,b,c,d,f);

    }

    अब हम पूरा प्रोग्राम लिखते हैं , जो निम्नानुसार होगा |

      
    
    /*Using of For Loop With multiple Conditions */
    
    #include<stdio.h>
    main()
    {
        int b,c,d,f;
    	
    	for(b=1, c=10 , d=1 ,f=10; b<=10, c>=1, d<=10, f>=1; b++, c--, d++,f--)
       {
            printf("%d\t%d\t%d\t%d\t\n",b,c,d,f);	
       }
      getch();
    }
    
    

    इस प्रोग्राम में पहली बार जब Loop का Execution होता है तब b=1 , c=10 , d=1 f=10 होता है | अगली Iteration में b=2 , c=9 , d=2 f=9 हो जाता है | इसी प्रकार ये क्रम चलता रहता है और क्रम से Output में हमें मान प्राप्त होता जाता है |

    एक खास बात इस Loop की यह है कि इसमें Loop Control के लिए जो Condition दी जाती है , वह Condition सभी को देने की कोई जरुरत नहीं होती है , क्योंकि Program Control केवल एक Condition को ही Check करता है , शेष Condition को Check ही नहीं करता |

    इसलिए यदि हम चाहें तो केवल एक ही Condition से भी यही Output प्राप्त कर सकते हैं | इस प्रोग्राम में Loop f>=1 की Condition पर काम कर रहा है | इसलिए हम चाहे तो शेष Condition को हटा सकते हैं |  ऐसा करने पर प्रोग्राम की for Condition कुछ इस प्रकार से हो जाएगी |

     

    for (b=1, c=10 , d=1 , f=10; f>=1; b++, c--, d++, f--)

     

    यदि यह Syntax हम for Loop प्रोग्राम में Use किए गए Loop के स्थान पर Use करते हैं , तो भी Output , वही प्राप्त होता है जो पहले हुआ था | सारांश के रूप में हम कह सकते हैं कि जब एक for Loop में कई Loop एक साथ Execute करने होते हैं तो हर Loop का प्रारम्भिक मान व Step Size तो सभी को दिया जाता है लेकिन एक for Loop में Condition सिर्फ एक ही हो सकती है |  यदि एक से अधिक Condition के अनुसार ही Loop Execute होता है क्योंकि for Loop Right To Left चलता है |



    No comments

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728