Saturday, March 15.

Header Ads

Colorful+Black+Friday+Discount+Leaderboard+Ad

Write a program To calculate age

Muscle+Inc.+%25282%2529

 Write+a+program+To+calculate+age

Write a program To calculate age

यदि Keyboard से Date या Time Input करना हो , तो Date या Time को हम अलग – अलग टुकरों में Input नहीं कर सकते है | ऐसे Group of Data को हमें एक साथ Input करना होता है | एक Date या Time में हमेशा तीन हिस्से होते है , जो क्रमशः Day , Month , Year या Hour , Minus , Seconds को Represent करते है | Keyboard से जब इस प्रकार के Data को Read करना होता है , तब Data या Time Input करने का एक ही Message कर दिया जाता है और तीनो मानो को एक साथ  input कर दिया जात है |

निम्न Program द्वारा scanf( ) Function को इस प्रकार use करने की कार्य – विधि को ज्यादा अच्छे तरीके से समझा जा सकता है | ये Program user से उसकी Date of Birth (DOB) Current Date Input करने के लिए कहता है | जब user उसकी DOB Current Date Input कर देता है तब Program Output के रूप में उस user की Current Age Display करता है |

Program

  

#include <stdio.h>
#include <conio.h>
main()
{
/* Declaration Section */
int dob_DD, dob_MM, dob_YYYY;
int cur_DD, cur_MM, cur_YYYY;
char dummy;
int age;

/* Input Section */
printf("Enter Date of Birth in DD/MM/YYYY Format : ");
fflush(stdin);
scanf("%2d%1c%2d%1c%4d", &dob_DD, &dummy, &dob_MM, &dummy,
&dob_YYYY);
printf("Enter Today's Date in DD/MM/YYYY Format : ");
fflush(stdin);
scanf("%2d%1c%2d%1c%4d", &cur_DD, &dummy, &cur_MM, &dummy,
&cur_YYYY);

/* Process Section */
age = cur_YYYY - dob_YYYY;

/* Output Section */
printf("\n Your Date of Birth is : ");
printf("%d%c%d%c%d", dob_DD, '/', dob_MM, '/', dob_YYYY);
printf("\n And you are %d years old now", age);
}

Output
Enter Date of Birth in DD/MM/YYYY Format : 10/01/1996
Enter Today's Date in DD/MM/YYYY Format : 16/07/2021

 Your Date of Birth is : 10/1/1996
 And you are 25 years old now

 

इस Program को Run करते ही ये Program हमें DD/MM/YYYY Format में Birth Date Input करने के लिए कहता है | जैसे ही हम Birth Date Input करते है , ये Program DD/MM/YYYY Format में ही हमसे Current Date Input करने के लिए कहता है | जैसे ही हम Current Date भी Input करते है , ये Program हमें हमारा Date of Birth व हमारी Current Age Screen पर Display कर देता है |

इस Program में हमने कई नए Concept Use किए है , लेकिन ये Program पूरी तरह से Error Proof नहीं है , क्योंकि ये जिस Format में Date Input करने के लिए कहता है , हमें उस Format को पूरी तरह से follow करना पड़ता है | यानी हम Date of Birth 10/01/1996 को 10/01/1996 Format में Input नहीं कर सकते है | यदि हम ऐसा करते है , तो हमारा Program हमें सही Output नहीं देता है |

जैसाकि हम देख सकते है , कि Date एक ऐसा Data है , जिसके होते तो तीन हिस्सों है , लेकिन इसके तीनो हिस्सों को एक ही बार में Input करना जरुरी होता है | हम देख सकते है कि इस Data में Day , Month Year के अलावा एक और चौथा हिस्सा भी है , जो Day , Month Year को आपस में एक दूसरों से अलग रखता है |

scanf( ) Function जब एक ही बार में एक से ज्यादा मानों को  Input के रूप में प्राप्त  करना चाहते है , तब एक scanf( ) द्वारा जितने Date Computer की Memory में store करने होते है , उस सभी मानों को Control Strings के साथ उनके variables को scanf( ) Function में ठीक उसी तरह से Specify किया जाता है जिस तरह से printf( ) Function द्वारा एक से अधिक Identifiers के मानों को Output में Display करने के लिए किया जाता है |

इस दोनों Function के अंतर केवल इतना होता है की scanf( ) Function में specify किए जाने वाले सभी Identifiers Keyboard Buffer से अपना मान प्राप्त करते है , और सभी मानों को Variables की Reserved Memory Location पर भेजने के लिए इन Variables के साथ Address Operator का प्रयोग किया जाता है |

इस Program में हमने scanf( ) Function में use किए जाने वाले Control Strings को थोड़ा अलग तरीके से use किया है | scanf( ) Function के इस तरीके से  Input लेने की प्रक्रिया को Formatted Input कहते है |

चूंकि एक Date के पहले दो अंक Day को Represent करते है , इसलिए  Input किए जाने वाले Date के पहले दो Character को ही हमें dob_DD cur_DD Variable में Store करना होता है |

इस जरुरत को पूरा करने के लिए हमें पहले Control String के साथ एक Digit 2 का प्रयोग %2 के रूप में किया है | जब हम इस तरह से Control String Use करते है तब compiler Keyboard से आने वाले Input में से केवल पहले दो अंकों को ही dob_DD cur_DD में store करता है |

चुंकि तीसरा Character एक Separator के रूप में काम कर रहा है जो Day को Month की Digit से अलग करता है , इसलिए %1c Control String का प्रयोग करके इस तीसरे Character को हमने dummy नाम के एक Character प्रकार के Variable में Store कर दिया है |

अब  Input के रूप में आने वाले अगले दो Digits Month को Represent करते है | केवल in दो Digits को प्राप्त करके dob_MM  cur_MM में store करने के लिए हमें फिर से %2d का प्रयोग किया है और Month को year से separate करने वाले separator को फिर से %1c Control String  द्वारा dummy नाम के Variables में Store कर लिया है | फिर अंतिम 4 Digits को dob_YYYY cur_YYYY variable में store करने के लिए हमने %4d Control String का प्रयोग  किया है |

इस program में हमने निम्नानुसार एक Statement का scanf( ) Function से पहले प्रयोग किया है :

fflush(stdin);

ये Function एक विशेष काम करता है | जब हम Keyboard से Keys का Press करते है , तब जरुरत के आधार पर विभन्न Characters विभन्न  variables में store हो जाते है | लेकिन कई बार जब हम formatted Input का प्रयोग करते है , तब keyboard से चाहे जितने Characters Input किए जाए , Variable में Control String में  use किए गए मान के अनुसार कुछ ही Characters Store होते है , शेष Characters Keyboard के Buffer में ही पड़े रहेते है |

यदि हम Keyboard के Buffer में पिछले Input के बचे हुए  Characters को clear किए बिना ही scanf( ) Function user से कोई मान Input करने के लिए नहीं कहता है, बल्कि Keyboard के Buffer में stored characters को ही use कर लेता है , जिससे Program का Output सभी नहीं आता | इस स्थिति में ये Statement keyboard के Buffer में Stored बचे हुए Characters को clear करने का काम करता है , ताकि user को सभी Output प्राप्त हो

कई बार  हमें ऐसी जरुरत भी पड़ जाती है , जिसमें हम एक ही  scanf( ) Function द्वारा एक से ज्यादा Variables में मान तो Store करना चाहते है , लेकिन किसी Formatted Input Process का Use करना नहीं चाहते है | इस स्थिति में विभन्न Identifierss में मानों को store करने के लिए भी scanf( ) Function को तो समान तरीके से ही use किया जाता है | अंतर केवल इतना होता है की scanf( ) Function में use किए जाने वाले Control Strings को Simple ही रखा जाता है |

चुंकि scanf( ) Function की एक विशेषता ये है की ये Function Blank Space से Terminate हो जाता है | इसलिए यदि हम किसी मान को Input करते समय space या Entery Key द्वारा कई मानों को अलग – अलग कर दे , तो Input किया गया मान scanf( ) Function में specify किए गए विभन्न variables में store हो जाते है |


No comments

Post Top Ad

Post Bottom Ad