Wednesday, 17 February 2016

[15]-BREAK AND CONTINOUS

आज Hindi के इस C/C++ programming language tutorial को आगे बढ़ाते हुए हम दो important keywords break और continue का use करना सीखेंगे, जो loops (for loop, while loop, switch case) में कभी कभी काम आ जाते हैं.

use of break in c/c++


c/c++ में किसी loop को बीच में ही खत्म करके उससे बाहर निकलने के लिए break का use किया जाता है. उदाहरण के लिए मान लीजिए एक int array में हम किसी number को खोजना चाहते हैं, इसके लिए for loop का use करके array के हर एक element को check करेंगे कि वह number वहां है कि नहीं. यहाँ for loop तब तक चलता रहेगा जब तक हम पूरी array check नहीं कर लेते, पर हम चाहते हैं कि बीच में जब भी वो number मिल जाये जिसे खोज रहे हैं तो for loop बंद करके loop से बाहर आ जाएँ. इसके लिए break का use करेंगे. for loop ही नहीं while loop से बीच में बाहर आने के लिए भी break जा use करते हैं.
इसे नीचे दिए गए example से समझते हैं. इसमें हम 100 से 200 के बीच पहली संख्या search करेंगे जो 21 से विभाजित हो जाये.
#include <stdio.h>

int main() { 
  int i;
  for(i=100; i<=200; i++) { 
    if(i%21 == 0) {
      printf("1st such number is %d\n", i);
      break;
    }
  }
  scanf("%d", &i);
  return 0;
}

यहाँ for loop के अंदर if statement है. आपको याद दिला दें कि % यह बताता है कि पहली संख्या में दूसरी का भाग देने पर शेष क्या बचेगा. जिन संख्याओ के लिए i%21 की value 0 नहीं है अर्थात वो 21 से विभाजित नहीं होते for loop में i के उन मानो लिए हम if के अंदर नहीं जायेंगे (ध्यान दे जैसा कि हम जानते हैं कि यहाँ for loop में i के 100 से 200 तक हर मान के लिए for loop के अंदर लिखे सारे statement run होंगे.) शुरू में if के अंदर वाले statement run नहीं होंगे पर जैसे ही i की value 105(21 से विभाजित) होगी if के अंदर चले जायेंगे और break run हो जायेगा और for loop खत्म हो जायेगा. इसलिए finally for loop के अंदर लिखे statement i के 100 से 105 तक की value के लिए ही run हो पाएंगे क्योंकि i=105 आने के बाद break run होने के कारण for loop खत्म हो जायेगा.
इसी तरह c/c++ में while loop को भी बीच में खत्म करने के लिए break का use करते हैं. switch case statement में हम break का use देख ही चुके हैं.

use of continue in c/c++

जैसा कि हम जानते हैं कि loop में (for loop, while loop) के कुछ statement बार बार run होते रहते हैं. कभी कभी loop के अंत तक जाये बिना ही हमारा काम हो जाता है और हम चाहते हैं कि loop बंद न हो पर इस बार loop के अंदर जो run हो रहा है वो यहीं बंद हो जाये और loop का अगला iteration start हो जाये, इसके लिए continue का use करते हैं. इसे भी नीचे दिए गए example से समझते हैं. इस example में एक array में कुछ number दिए गए हैं. हम continue का use करके odd numbers (विषम संख्याए) print करेंगे.
#include <stdio.h>
int main() {
  int arr[] = {1,4,7,2,0,-5,8,17,5,-10};
  int length = 10;
  int i;
  for(i=0; i<10; i++) {
    if(arr[i]%2 == 0) {
      continue;
    }
    printf("Odd number is %d\n", arr[i]);
  }
  scanf("%d", &i);
  return 0;
}

ऊपर दिए गए example में for loop का use करके शुरू से array के एक एक number को देखते हैं. अगर number even है तो हम continue का use करके skip कर देते हैं और अगली बार for loop के अन्दर आते हैं.
इसी तरह while loop में भी continue का use कर सकते हैं.
इस blog को बेहतर बनाने के लिए आपके सुझावों का सदैव स्वागत रहेगा. सुझाव देने के लिए अपना Reply यहाँ पर दें. अगले लेख में हम function के बारे में जानेंगे जो कि बहुत important है.
[16]-STRUCT

आज Hindi के इस C/C++ programming language tutorial को आगे बढ़ाते हुए हम दो important keywords break और continue का use करना सीखेंगे, जो loops (for loop, while loop, switch case) में कभी कभी काम आ जाते हैं.

use of break in c/c++


c/c++ में किसी loop को बीच में ही खत्म करके उससे बाहर निकलने के लिए break का use किया जाता है. उदाहरण के लिए मान लीजिए एक int array में हम किसी number को खोजना चाहते हैं, इसके लिए for loop का use करके array के हर एक element को check करेंगे कि वह number वहां है कि नहीं. यहाँ for loop तब तक चलता रहेगा जब तक हम पूरी array check नहीं कर लेते, पर हम चाहते हैं कि बीच में जब भी वो number मिल जाये जिसे खोज रहे हैं तो for loop बंद करके loop से बाहर आ जाएँ. इसके लिए break का use करेंगे. for loop ही नहीं while loop से बीच में बाहर आने के लिए भी break जा use करते हैं.
इसे नीचे दिए गए example से समझते हैं. इसमें हम 100 से 200 के बीच पहली संख्या search करेंगे जो 21 से विभाजित हो जाये.
#include <stdio.h>

int main() { 
  int i;
  for(i=100; i<=200; i++) { 
    if(i%21 == 0) {
      printf("1st such number is %d\n", i);
      break;
    }
  }
  scanf("%d", &i);
  return 0;
}

यहाँ for loop के अंदर if statement है. आपको याद दिला दें कि % यह बताता है कि पहली संख्या में दूसरी का भाग देने पर शेष क्या बचेगा. जिन संख्याओ के लिए i%21 की value 0 नहीं है अर्थात वो 21 से विभाजित नहीं होते for loop में i के उन मानो लिए हम if के अंदर नहीं जायेंगे (ध्यान दे जैसा कि हम जानते हैं कि यहाँ for loop में i के 100 से 200 तक हर मान के लिए for loop के अंदर लिखे सारे statement run होंगे.) शुरू में if के अंदर वाले statement run नहीं होंगे पर जैसे ही i की value 105(21 से विभाजित) होगी if के अंदर चले जायेंगे और break run हो जायेगा और for loop खत्म हो जायेगा. इसलिए finally for loop के अंदर लिखे statement i के 100 से 105 तक की value के लिए ही run हो पाएंगे क्योंकि i=105 आने के बाद break run होने के कारण for loop खत्म हो जायेगा.
इसी तरह c/c++ में while loop को भी बीच में खत्म करने के लिए break का use करते हैं. switch case statement में हम break का use देख ही चुके हैं.

use of continue in c/c++

जैसा कि हम जानते हैं कि loop में (for loop, while loop) के कुछ statement बार बार run होते रहते हैं. कभी कभी loop के अंत तक जाये बिना ही हमारा काम हो जाता है और हम चाहते हैं कि loop बंद न हो पर इस बार loop के अंदर जो run हो रहा है वो यहीं बंद हो जाये और loop का अगला iteration start हो जाये, इसके लिए continue का use करते हैं. इसे भी नीचे दिए गए example से समझते हैं. इस example में एक array में कुछ number दिए गए हैं. हम continue का use करके odd numbers (विषम संख्याए) print करेंगे.
#include <stdio.h>
int main() {
  int arr[] = {1,4,7,2,0,-5,8,17,5,-10};
  int length = 10;
  int i;
  for(i=0; i<10; i++) {
    if(arr[i]%2 == 0) {
      continue;
    }
    printf("Odd number is %d\n", arr[i]);
  }
  scanf("%d", &i);
  return 0;
}

ऊपर दिए गए example में for loop का use करके शुरू से array के एक एक number को देखते हैं. अगर number even है तो हम continue का use करके skip कर देते हैं और अगली बार for loop के अन्दर आते हैं.
इसी तरह while loop में भी continue का use कर सकते हैं.
इस blog को बेहतर बनाने के लिए आपके सुझावों का सदैव स्वागत रहेगा. सुझाव देने के लिए अपना Reply यहाँ पर दें. अगले लेख में हम function के बारे में जानेंगे जो कि बहुत important है.

[17]-MEMORY {1}

अब तक हमने C/C++ programming के बारे में बहुत कुछ जान लिया है और इस hindi tutorial के द्वारा आप बड़े बड़े program लिखने के लिए भी Ready हैं. अब हम pointer को सरल तरीके से सीखेंगे जिसे C/C++ में सबसे कठिन माना जाता हैं. इसे सरल तरीके से पेश करने कि कोशिश रहेगी, फिर भी समझने में दिक्कत हो तो नीचे comment करें.

Pointer समझने से पहले Memory के बारे में जानना जरूरी है इसलिए आज हम Memory Structure को समझेंगे. आप में से बहुत से लोगो को पता होगा कि computer या कोई भी electronic device जैसे calculator, micro processor, mobile phone सभी सिर्फ 0 और 1 की भाषा समझते हैं, आज हम इसे detail में समझते हैं. किसी भी device की Memory को हम एक बहुत बड़ी array की तरह देख सकते हैं. जैसा कि नीचे चित्र में दिखाया गया है.
1101000110. . .

Memory ऊपर दिखाई गयी Array की तरह दिखती है जिसकी हर एक position पर या तो 0 store हो सकता है या 1. हर एक position को एक bit कहते हैं. 1 bit में या तो 0 store होगा या 1. Magnetic memory में इस एक bit को magnetic field की direction के द्वारा represent किया जाता है. अगर direction clockwise है तो इसे computer 0 read करता है, aniclockwise है तो 1. Computer कभी इस एक bit को अकेले read या write नहीं करता. वह हमेशा 8 bits को एक साथ पढता है. इस 8 bit को 1 byte कहते हैं. इसलिए computer Memory को नीचे दिखाए गए चित्र जैसा पढता है.

110100011001110100101001111110011000001100100110. . .

अगर Computer ऊपर दिखाई गयी memory(array) का पहला address पढ़े तो उसे मिलेगा 11010001. इसी तरह दूसरे address पर 10011101 etc. Computer किसी भी Memory का पहला address पढ़े तो उसे पहली byte(8 bits) मिलेगी, दूसरे address पर दूसरी byte,... अगर पहली byte के अंदर की तीसरी bit पढनी है तो पहले उसे पहली byte पढनी पड़ेगी उसके बाद उस byte से तीसरी bit. directly पहली byte की तीसरी bit नहीं पढ़ सकते, क्योंकि पहला address पढ़ेगा तो पहली byte (पहली 8 bits) मिल जाएँगी. कहने का मतलब यह है कि Computer में byte level addressing होती है. हर byte का एक address होता है, पर byte के अंदर bit का direct address नहीं होता.

आज के लिए इतना ही. अगली बार हम ये देखेंगे कि इस Memory में इतने variable store कैसे होते हैं उसके बाद pointer सीखेंगे. अगला लेख पढ़ने से पहले Binary to Decimal Conversion सीख लें और दो Binary number को जोड़ना भी सीख लें.

1 comment: