C header file : time.h in c language in hindi , Timedifference , time function , Clock ,asctime और asctime_s

Timedifference , time function , Clock ,asctime और asctime_s , C header file : time.h in c language in hindi :-
हमने अभी तक C language मे math.h ,string.h ,stdio.h और  conio.h header file को पढ़ा है लेकिन इसके अलावा time.h header file जिसमे date और time related function define होते है जिसे डायरेक्ट प्रोग्राम मे use किया जाता है |इसका syntax होता है :-
#include<time.h>
time.h header file मे निन्म function include होते है :-
1. Timedifference
जब किसी दो calender के दो date के बीच time difference को calculate करना होता है इस function का use किया जाता है |इसमें आउटपुट second मे आता है |इसका syntax होता है :-
difftime(start time ,end time );
यहा पर
difftime : ये keyword है जिससे time difference function को call किया जाता है |
start time : ये starting time को define करता है जिससे कैलकुलेशन start करनी है |
end time : ये ending time को define करता है जिससे कैलकुलेशन end होती है |
अगर end time start time से पहले होती है तब इस function का आउटपुट negative आती है |इसका उदाहरण है :-
#include<stdio.h>
#include<conio.h>
#include<time.h>
void main()
{
time_t n;
time(&n);
struct first;
first = *localtime(&n);
first.month = 0;
first. minute=0;
first.second=0;
first.day=1;
double diff=difftime(n,mktime(&first));
printf(“%f second pased form beginning of month. “, diff);
getch();
}
इस उदहारण मे ,variable ‘n’ मे current time को assign किया गया है और first मे month के begining का time को set किया गया है |difftime() function से time difference को calculate किया गया है और print किया गया है |
आउटपुट होगा :
123454656 second passed form beginning of month.
 
2. time function
जब किसी  calendar के current date को  calculate करना होता है तब इस function का use किया जाता है |इसमें आउटपुट standard time format मे आता है |इसका syntax होता है :-
time(time pointer variable);
यहा पर
time : ये keyword है जिससे current time function को call किया जाता है |
time pointer variable : ये pointer variable होता है जिसमे current time store होता है|
अगर ये function execute होता तब current time को time pointer variable की form मे एनकोड कर देता है और इसे time pointer variable के address पर store कर देता है |
3. Clock
इस function का use प्रोसेसर द्वारा किसी प्रोसेस मे लगा समय को calculate करने के लिए किया जाता है|ये time किसी प्रोग्राम के execution मे लगा time को define करने के साथ ही start होता है | जब time को कैलकुलेट कर लिया जाता है तब इसे clock per sec से डिवाइड करके फाइनल आउटपुट मिलता है |
इस function मे time difference function को use किया जाता है |जब किसी function का start और terminate होने के बीच के time difference को calculate किया जाता है इसका  syntax होता है :-
clock (pointer variable );
यहा पर
time : ये keyword है जिससे current time function को call किया जाता है |
time pointer variable : ये pointer variable होता है जिसमे process मे लगा time  store होता है|
अगर ये function execute होता तब  process मे लगा time  को time pointer variable की form मे एनकोड कर देता है और इसे time pointer variable के address पर store कर देता है |
Format Conversion
1. asctime और asctime_s
इन function का use, current date  को 25 textual character मे convert करने के लिए किया जाता है |ये 25 charecter का form होता है :-
www mmm dd hh:mm:ss yyyy
यहा पर :
www: ये week day को contain करता है |इसके लिए तीन character के abbreviation को use किया जाता है |जैसे monday के लिए mon ,और friday के लिए fri |
mmm:ये month name  को contain करता है |इसके लिए तीन character के abbreviation को use किया जाता है |जैसे march के लिए mar ,और December के लिए dec |
dd : ये date मे से day को contain करता है |
hh : ये  hour की value  को contain करता है |
mm: ये minutes की value को contain करता है |
ss: ये second की value को contain करता है|
yyyy : ये year की value को contain करता है |
2. ctime और ctime_s
इन function का use, current time को 25 textual character मे convert करने के लिए किया जाता है |ये 25 charecter का form होता है :-
www mmm dd hh:mm:ss yyyy
यहा पर :
www: ये week day को contain करता है |इसके लिए तीन character के abbreviation को use किया जाता है |जैसे monday के लिए mon ,और friday के लिए fri |
mmm:ये month name  को contain करता है |इसके लिए तीन character के abbreviation को use किया जाता है |जैसे march के लिए mar ,और December के लिए dec |
dd : ये date मे से day को contain करता है |
hh : ये  hour की value  को contain करता है |
mm: ये minutes की value को contain करता है |
ss: ये second की value को contain करता है|
yyyy : ये year की value को contain करता है |
इस function मे तीन parameter pass होते है :-
1.time :- ये pointer होता जिसे convert करना होता है |
2.buffer : ये buffer के size को specify करने के लिए pointer होता है |
3.bufsz : ये buffer की size को bytes मे define करता है |
इस function से  time का string conversion return होता है जो की asctime() और ctime () के बीच use किया जा सकता है |अगर कन्वर्शन success हो जाता है तो ‘0’ भी return होगा अन्यथा non zero value return होगी |
इसके अलावा निन्म function को conversion  के लिए use किया जा सकता है :-
1.gmtime ,gmtime_s : in function का use ,time को UTC specify charecter set convert किया जाता है |
2.localtime ,localtime_s : इन function का use ,time को local time struture form मे convert करने के लिए किया जाता है |
3.mktime : इस function का use, day के बिना time को show करने के लिए किया जाता है |
इस प्रकार time.h header file मे उपस्थित function और conversion को use करके time और date releated operation किया जा सकता है |

C 99 : Floating Point Macro (Part 2) in c language in hindi , FEGETROUND ,FESETROUND , FEGETENV ,FESETENV

FEGETROUND ,FESETROUND , FEGETENV ,FESETENV , C 99 : Floating Point Macro (Part 2) in c language in hindi :-
इससे पहले वाले article मे , हमने arthmatic operation related error को पढ़ा |अब इस article मे , floating number को rounding को पढेगे |सबसे पहले recap करेगे |
इस header file मे निन्म  macro होते है |

1. FE_DIVBYZERO : ये तब occur होती है जब किसी integer को ‘0’ से डिवाइड किया जाता |है
2. FE_INEXACT :ये तब occur होती है जब किसी expression का आउटपुट अशांत flaoting number हो |
3. FE_INVALID : जब किसी function मे invalid argument को pass किया जाता है जिसका आउटपुट  floating point number हो |
4. FE_OVERFLOW: जब किसी expression के आउटपुट की range ओवर हो जाती है |
5.FE_UNDERFLOW:जब किसी expression के आउटपुट की range,float number की range से बहुत कम  होती है |
इनके अलावा इस header file मे  floating number के rounding के लिए macro होते है :-
1. FE_DOWNWORD : इस macro का use , floating number को negative infinity की तरफ movement करने के लिए किया जता है |
2. FE_TONEAREST : इस macro का use , floating number को nearest represtable number की ओर movement के लिए किया जाता है |
3. FE_TOWARDZERO : इस macro का use , floating number को zero की ओर movement करने के लिए किया जाता है |
4. FE_UPWARD: इस macro का use , floating number को positive infinity की तरफ movement करने  के लिए किया जाता है |
ये सभी macro constant , non negative integer constant expression  से expand किया जाता है | इस use करने के लिए std:: fesetround और std:: fegetround को use किया जाता है |
l सभी floating rounding का use किया जाता है :-
1.किसी arithmatic operation जिसका type constant expression होता है |
2. किसी standard function के आउटपुट मे |
3.floating point से floating point implicit conversion मे |
4.string conversion मे |
5.Libarary rounding function (nearbyint , rint , lrint आदि) मे |
इसकेअलावा rounding निन्म को effect नहीं करता है |
1.floating point तो integer type conversion
2.किसी airthmatic operation जो run time पर execute होता है |
3.libary  rounding function ( round, lround , llround , ceil, floor आदि ) मे

Function

1. fegetround ,fesetround

इन macro statement से किसी floating point के rounding mode को set/ reset करने के लिए  किया जाता है |इन्हें set/reset करने के बाद libary rounding function को use किया जाता है |
1.i)fegetround
इस macro का use , किसी floating point variable के mode को उपर दिए  गये चार modes मे से एक mode को सेलेक्ट करने के लिए  किया जाता है |इस function मे एक ही argument pass होते है | (i) mode का नाम | ये macro ‘0’ return करता है अगर rounding success हो जाती है |अन्यथा ‘1’ return होता है |
1.ii)fesetround
इस macro का use , किसी floating point variable के mode को उपर दिए  गये चार modes मे से एक mode को reset करने के लिए  किया जाता है |इस function मे एक ही argument pass होते है | (i) mode का नाम | ये macro ‘0’ return करता है अगर rounding success हो जाती है |अन्यथा ‘1’ return होता है |
उदाहरण के लिए :
#include<stdio.h>
#include<conio.h>
#include<cfenv.h>
#include<math.h>
void main()
{
float a , b;
printf(“Enter a Floating Number”);
scnaf(“%f”, & a);
printf(“Enter another Floating Number “);
scanf(“%f”,&b);
fegetround (FE_DOWNWORD);
printf(“Value =%f”, floor(a));
printf(“Value =%f”, nerbyint(a));
printf(“Value =%f”, nerbyint(b));
printf(“Value =%f”, floor(b));
fesetround(FE_TONEAREST)
printf(“Value =%f”, floor(a));
printf(“Value =%f”, nerbyint(a));
printf(“Value =%f”, nerbyint(b));
printf(“Value =%f”, floor(b));
getch()
}
इस उदाहरण मे , सबसे पहले FE_DOWNWARD rounding को set किया गया है फिर floor और nearbyint function को call किया है |
बाद मे , FE_TONEAREST rounding को  FE_DOWNWARD के जगह रिसेट किया गया है और  floor और nearbyint function को call किया है |
इसका आउटपुट होगा |
Enter a Floating Number 23.3
Enter another Floating Number 45.5
Value =23
Value =23
Value =45
Value =45
Value =24
Value =24
Value =24
Value =24

2. fegetenv ,fesetenv

इन macro statement से किसी floating point के rounding mode को access करके use किसी भी समय पर set  करने के लिए  किया जाता है |इन्हें set करने के बाद libary rounding function को use किया जाता है |
1.i)fegetenv
इस macro का use , किसी floating point variable के current mode को copy करने के लिए  किया जाता है |इस function मे एक ही argument pass होते है | (i)fenv_t type का pointer को pass किया जाता जो current mode को hold करता है  | ये macro ‘0’ return करता है अगर rounding success हो जाती है |अन्यथा ‘1’ return होता है |
1.ii)fesetround
इस macro का use , fegetenv से copy किया गया mode को  set करने के लिए  किया जाता है |इस function मे एक ही argument pass होते है | (i) fenv_t type का pointer को pass किया जाता जिसमे  current mode को hold है  | | ये macro ‘0’ return करता है अगर rounding success हो जाती है |अन्यथा ‘1’ return होता है |
उदाहरण के लिए :
#include<stdio.h>
#include<conio.h>
#include<cfenv.h>
#include<math.h>
void main()
{
fenv_t *type;
float a , b;
printf(“Enter a Floating Number”);
scnaf(“%f”, & a);
printf(“Enter another Floating Number “);
scanf(“%f”,&b);
fegetround (FE_DOWNWORD);
printf(“Value =%f”, floor(a));
printf(“Value =%f”, nerbyint(-12.56));
printf(“Value =%f”, nerbyint(b));
printf(“Value =%f”, floor( 12.70));
fegetenv(type);
fesetround(FE_TONEAREST)
printf(“Value =%f”, floor(a));
printf(“Value =%f”, nerbyint(12.65));
printf(“Value =%f”, nerbyint(b));
printf(“Value =%f”, floor(b));
fesetround(type)
printf(“Value =%f”, floor(a));
printf(“Value =%f”, nerbyint(34.6));
printf(“Value =%f”, nerbyint(b));
printf(“Value =%f”, floor(b));
getch()
}
इस उदाहरण मे , सबसे पहले FE_DOWNWARD rounding को set किया गया है फिर floor और nearbyint function को call किया है |
बाद मे , FE_TONEAREST rounding को  FE_DOWNWARD के जगह रिसेट किया गया है और  floor और nearbyint function को call किया है |
इसका आउटपुट होगा |
Enter a Floating Number 23.3
Enter another Floating Number 45.5
Value =23
Value = -13
Value =45
Value =12
Value =24
Value =12
Value =45
Value =45
Value =24
Value =34
Value =45
Value =45
इस प्रकार से floating point मे rounding mode को set करने की facility C99 मे होती  है |

C 99 : Floating Point Macro (Part -1 ) in c language in hindi , feclearexcept , fetestexcept , feraiseexcept

feclearexcept , fetestexcept , feraiseexcept , C 99 : Floating Point Macro (Part -1 ) in c language in hindi :-
C 99 मे , floating point variable को handle करने के लिए कई सारे macro को define किया गया है | इन macro से floating point variable के status ,flags और control modes से float point पर control किया जा सकता है |इसमें thread होते है |सभी thread ,प्रोग्राम के initial stage पर अपने parent thread से initial होते  है|floating point operation से इन floating flag के status change हो जाता है |और floating point control signal की value , floating operation के आउटपुट से effect होती है |
floating point macro को use तभी कर सकते है जब pragma_STDC_FENV_ACCESS ,on condition मे होती है |अगर ‘on ‘ condition नहीं होती तब प्रोग्राम नार्मल प्रोग्राम की तरह कार्य करता है |
कुछ C Complier जैसे HP aCC ,Oracle studio और IBM XL मे pragma_STDC_FENV_ACCESS को define करना होता है लेकिन most of the COMPLIER  मे floating point को access कर सकते है |
floating point macro को प्रोग्राम मे add करने के लिए दो प्रकार के declarationको use कर सकते है :-
fenv _t : इस प्रकार के declaration से पुरे floating type macro को use कर सकते है |
fexcept_t : इस प्रकार के declaration से floating type environment मे से flag को ही access कर सकते है |
इस environment मे , निन्म function include होते है :-
1. feclearexcept
इस function का use floating point environment के सभी floating point exception clear करने के लिए किया जाता है |floating point exception का मतलब है floating point related error |अगर सभी flaoting point error clear हो जाती है तब function से ‘0’ return होगा अन्यथा ‘1’ return होगा |
इस function मे excepts( bitmask listing the exception flags  to clear) ,argument की तरह pass होता है और बिट ‘0’ या ‘1’ return होता है |
#include<stdio.h>
#include<conio.h>
#include<fenv.h>
#include<math.h>
# pragma_STDC_FENV_ACCESS on
void main()

 

{
int a;

 

printf(“Enter Data”);
scanf(“%d”,&a);
float b=sqrt(a);
feclearexcept (FE_ALL_EXCEPT);
if(feclearexcept (FE_INVALID))
{
printf(“User input negative value.\n”);
printf(“Sqrt(input) can not calculate.”);
}
else
{
printf(“sqrt(input) = %f”,b);
}
getch();
}
अगर द्वारा input की गयी value नेगेटिव होती है तब square root find नहीं हो सकता है |और error message print हो जाता है |
आउटपुट होगा :
Enter data -4
User input negative value
Sqrt(input) can not calculate.
2. fetestexcept
इस macro का use , floating point error को find करने के लिए किया जाता है |इस macro से floating point
error को specify किया जाता है |इसमें pre set floating point code होते है जिनके occur होने पर हम error को indentify किया जा सकता है |
इसके लिए pre set error codes होते है :
1.FE_DIVBYZERO : ये तब occur होती है जब किसी integer को ‘0’ से डिवाइड किया जाता |है
2.FE_INEXACT :ये तब occur होती है जब किसी expression का आउटपुट अशांत floating number हो |
3.FE_INVALID : जब किसी function मे invalid argument को pass किया जाता है जिसका आउटपुट  floating point number हो |
4.FE_OVERFLOW: जब किसी expression के आउटपुट की range ओवर हो जाती है |
5.FE_UNDERFLOW:जब किसी expression के आउटपुट की range,float number की range से बहुत कम  होती है |
इसका उदाहरण होगा
#include<stdio.h>
#include<conio.h>
#include<fenv.h>
#include<math.h>
# pragma_STDC_FENV_ACCESS on
void main()

 

{
int a;

 

printf(“Enter Data”);
scanf(“%d”,&a);
printf(“square root = %f “, sqrt (a));
int d=a/0;
printf(” %d/0 = %f  “, a,d );
printf(“Power Function = %f”,a/pow(2,45));
error();
getch();
}
void error()
{
printf(“Error”);
if ( fetestexcept (FE_DIVBYZERO) )
printf(“Divide by zero”);
if ( fetestexcept (FE_INEXACT) )
printf(” Inexact error “);
if ( fetestexcept (FE_INVALID) )
printf(“Invalid argument error”);
if ( fetestexcept (FE_OVERFLOW) )
printf(“Overflow Error”);
if ( fetestexcept (FE_UNDERFLOW) )
printf (” Underflow Error”);
}
आउटपुट होगा :
Enter data -3
square root = -nan
-3/0 = inf
Power Function = inf
Error
Invalid argument error
Divide by zero
Overflow Error
3. feraiseexcept
इस function का use सभी error को find करने के लिए के लिए किया जाता है | इसमें macro मे सभी error codes लॉजिकल OR operation के pass होती है | जैसे अगर किसी प्रोग्राम मे , overflow या underflow error आती है तब Inexact error  भी जरुर होगी इसलिए in दोनों error message को print किया जाता है |
इसका उदहारण है :-
#include<stdio.h>
#include<conio.h>
#include<fenv.h>
#include<math.h>
# pragma_STDC_FENV_ACCESS on
void main()

 

{
int a;

 

printf(“Enter Data”);
printf(“Power Function = %f”,a/pow(2,45));
if(feraiseexcept (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW )
{
printf(“Feraiseexcept Happend “)
error();
}
getch();
}
void error()
{
printf(“Error”);
if ( fetestexcept (FE_DIVBYZERO) )
printf(“Divide by zero”);
if ( fetestexcept (FE_INEXACT) )
printf(” Inexact error “);
if ( fetestexcept (FE_INVALID) )
printf(“Invalid argument error”);
if ( fetestexcept (FE_OVERFLOW) )
printf(“Overflow Error”);
if ( fetestexcept (FE_UNDERFLOW) )
printf (” Underflow Error”);
}
आउटपुट होगा :
Enter data -3
Power Function = inf
Feraiseexcept Happend
Error
Inexact error
Overflow Error
 
4. fegetexceptflag ,fesetexceptflag
इन macro statement से किसी floating point environment से current flag के status को copy किया जाता है |in status को प्रोग्राम मे बाद मे use किया जा सकता है |
4.i)fegetexceptflag
इस macro का use , किसी floating point environment से flag के status को copy किया जाता है |इस function मे दो argument pass होते है | (i) fexcept_t type का variable जिसमे current flag का status store होता है | (ii) excepts का नाम |
 
4.ii) fesetexceptflag
इस macro का use , किसी floating point environment से flag के status को paste किया  जाता है |इस function मे दो argument pass होते है | (i) fexcept_t type का variable जिसमे current flag का status store होते है | (ii) excepts का नाम जिसमे flag के status को paste करना है  |
उदाहरण के लिए
#include<stdio.h>
#include<conio.h>
#include<fenv.h>
#include<math.h>
# pragma_STDC_FENV_ACCESS on
void main()

 

{
fexcept_t exc;
feraiseexcept(FE_DIVBYZERO)
error();
fegetexceptflag(&exc , FE_ALL_EXCEPT);
feclearexcept (FE_ALL_EXCEPT);
feraiseexcept(FE_DIVBYZERO | FE_OVERFLOW)
error();
feclearexcept (FE_ALL_EXCEPT);
fesetexceptflag (&exc , FE_ALL_EXCEPT );
error();
feclearexcept (FE_ALL_EXCEPT);
getch();
}
 
void error()
{
printf(“Error”);
if ( fetestexcept (FE_DIVBYZERO) )
printf(“Divide by zero”);
if ( fetestexcept (FE_INEXACT) )
printf(” Inexact error “);
if ( fetestexcept (FE_INVALID) )
printf(“Invalid argument error”);
if ( fetestexcept (FE_OVERFLOW) )
printf(“Overflow Error”);
if ( fetestexcept (FE_UNDERFLOW) )
printf (” Underflow Error”);
}
आउटपुट होगा :
Divide by zero
Divide by zero
Overflow Error
Overflow Error
इस article मे , asthmatic operation related exception को पढ़ा |अब हम C 99 : Floating Point Macro (Part -2 ) मे direction related exception को पढेगे |

C 99 – Error Handling Macro in c language in hindi , errno , sterror () , assert , Bounce Checking 

errno , sterror () , assert , Bounce Checking , C 99 – Error Handling Macro in c language in hindi :-
जब किसी statement के excute होता है अगर कभी error आ जाती है |उस error को handel करने के लिए error macro का use किया जाता है | error macro का use करने के लिए error.h header file को  प्रोग्राम मे add करना पड़ता है |error.h मे include सभी macro निन्म है :-

1. errno
errno एक preprocessor होते जो अलग अलग error को expand करता करता है |उन error के लिए विशेष code निधारित किया गया है |जिसे प्रोग्राम मे direct use किया जा सकता है |प्रोग्राम मे किसी variable की value को उन error code से check करके error को find कर सकते है |सबसे errno को ‘0’ से set करते है |अगर प्रोग्राम मे कोई error नहीं आती है तब errno की value ‘0’ होती है अन्यथा इसकी value पूर्व निधारित error code की होती है |
Error code :
1.i- errno== EDOM : डोमेन error आ जाती है |
1.ii-errno== EILSEQ : illegal sequence की error आ जाती है |
1.iii- errno== ERANGE : range error आ जाती है |
सभी error code header file error.h मे define होते है |सभी error code के लिए एक निधारित integer value होती है |और उनकी पूर्व निधरित statement भी होते है |जैसे
1. EDOM  : arithmetic argument out of domain
2. EILSEQ : illegel bytes code
3. ERANGE : result too large
उदाहरण के लिए :
#include<stdio.h>
#include<conio.h>
#include<error.h>
void error ();
void main()
{
pritnf(“Mathematics Error “);
errno = 0 ;
1/0;
error();
errno=0;
log(0);
error();
errno=0;
acos(2.1);
error();
errno= 0;
sin(0);
error();
getch();
}
void error()
{
if(errno== EDOM);
printf(“Domain Error “);
if(errno== EILSEQ)
printf(“Illegal sequence error”);
if ( errno== ERANGE )
printf(” Range error”);
if(errno==0)
printf(“No error”);
}
इस उदहारण में ,
अगर ‘1’ को ‘0’ से डिवाइड करते है तब range error की facility होती है |
अगर sin(0) की value infinite होती है तब domain error आ जाती है |
आउटपुट होगा :-
Mathematics Error
Range error
Illegal sequence error
Domain Error
2. sterror ()
इस macro का use , error code की pre set statement को use करने के लिए किया जाता है |इसका syntax होता है :-
sterror();
इसका उदाहरण है :
इस उदाहरण मे error() function को use नहीं किया गया है क्योकि इसमें error की pre set statement को use किया जाता है |
#include<stdio.h>
#include<conio.h>
#include<error.h>
void main()
{
pritnf(“Mathematics Error “);
errno = 0 ;
1/0;
sterror();
errno=0;
log(0);
sterror();
errno=0;
acos(2.1);
sterror();
errno= 0;
sin(0);
sterror();
getch();
}
आउटपुट होगा :
Mathematics Error
result too large
illegal bytes code
arithmetic argument out of domain
3. assert
Assert macro की value NDEBUG की value पर निर्भर करते है |और NDEBUG की definition statndard library मे define नहीं होती है |इसलिए NDEBUG को प्रोग्राम के header part मे include करना होता है |अगर NDEBUG को declare नहीं किया तो assert भी काम नही करता है |
अगर NDEBUG को define नहीं किया तो और assert बकी value ‘0’ के equal हो जाती है तब प्रोग्राम code related error message देता है |और abort () को call कर देता है |code related error message मे कई सारी standard value जैसे file name , variable size, no ऑफ़ argument आदि include होते है |
इसका उदाहरण है :
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<assert.h>
#define NDEBUG
void main()
{
int a,b,c;
printf(“data”);
c=a-b;
pritnf(“Mathematics Error “);
assert (c>=0)
printf(“sqrt(c)= %d”, sqrt(c));
getch();
}
इस उदाहरण का आउटपुट होगा :-
अगर NDEBUG  को define नहीं किया तो
data 23 45
a.out sub.c: main: assertion ‘c>=0’ failed
अगर NDEBUG को define किया गया है तो
data 23 45
sqrt(c)= -nan
4. Bounce Checking
Bounce Checking  error कुछ specific function की error को check करने के लिए किया जाता है | वे function string related होते है जैसे
gets() , strcpy() , wcscpy() होते है |
इसके अलावा fopen() के लिए bouce check करता है |इसका मतलब है file name की existence को check करता है |
इसके अलावा quick sort algorithm मे use होता है |जिसमे no of pass को check किया जाता है |
ये function को main() प्रोग्राम मे declare करना जरुरी नहीं है |ये उसी condition लागु होता है जब STDC_LIB_EXT1 occur होता है |इस function मे , निन्म macro include होते है :-
(i) error_t 
यह एक typedef है जिसका type integer होता है ये macro check file की existence को check करता है |इसमें अलग अलग pre set error message होते है जो error के occur होने पर print होते है |
(ii) rsize_t
यह एक typedef है जिसका type integer होता है ये macro check string की size  को check करता है |इसमें अलग अलग pre set error message होते है जो error के occur होने पर print होते है |
(iii) RSIZE_MAX
ये सबसे बड़ी bouce value को check करता है |ये variable की size और constant की value को check करता है जब ये run time पर allocate होते है |
(iv) Set _ constraint_handler_s ,constraint_handler_t
ये statement handler को define करता है जब bounds check function error_t , rsize_t और RSIZE_MAX run time पर occur होते है |और handler variable का type constraint_handler_t होना चाहिए |जैसे
constraint_handler_t ( const char *message ,void *p , error_t error);
यहा पर
const char *message : ये pointer charecter string को point करता है जो की error आने पर print होगा |
void *p : यर pointer implementation defined object को point करता है |
error_t error : ये function से आने वाली error को define करने के लिए किया जाता है |लेकिन ये तब होगा जब function से error_t occur होता है |
(v) abort_handler_s()
 जब bounds check function error_t , rsize_t और RSIZE_MAX run time पर occur होते है तब इस handler से प्रोग्राम त्येर्मिनाते हो जाता है | और handler variable का type abort_handler_s होना चाहिए |लेकिन जैसे
abort_handler_s ( const char *message ,void *p , error_t error);
यहा पर
const char *message : ये pointer charecter string को point करता है जो की error आने पर print होगा |
void *p : यर pointer implementation defined object को point करता है |
error_t error : ये function से आने वाली error को define करने के लिए किया जाता है |लेकिन ये तब होगा जब function से error_t occur होता है |
ये सभी error macro को क९९ मे include किया गया है जो की कई दुसरे programming language से include किया गया है |

शुष्क सेल या शुष्क बैटरी (dry battery or cell) , शुष्क सेल का एनोड और कैथोड का कार्य चित्र , किस धातु का बना होता है

(dry battery or cell) शुष्क सेल या शुष्क बैटरी , शुष्क सेल का एनोड और कैथोड का कार्य चित्र , किस धातु का बना होता है : वे बैट्री या सेल जिनमें तुलनात्मक रूप से बहुत कम नमी होती है अर्थात इनमें विद्युत अपघट्य पदार्थ में नमी बहुत कम होती है और इसलिए ही इन सेलों या बैटरीयों को शुष्क सेल कहा जाता है। अर्थात वे सेल जिनमें अन्य सेलों की तुलना में विद्युत अपघट्य में नमी बहुत कम होती है उसे शुष्क सेल कहते है , इसमें विद्युत अपघट्य पदार्थ को पेस्ट के रूप में काम में लिया जाता है।

शुष्क सेल बैटरी कैसे कार्य करता है (How Do Dry Cell Batteries Work?)

शुष्क सेल बैट्री में रासायनिक ऊर्जा को विद्युत ऊर्जा में परिवर्तित करके विद्युत धारा उत्पन्न की जाती है , सामान्यतया इन सेलों में जिंक और कार्बन या जिंक और मैंगनीज डाइऑक्साइड का उपयोग किया जाता है।
इन पदार्थों को बैट्री के विद्युत अपघट्य में मिलाया जाता है अर्थात इन दोनों को पेस्ट बनाकर विद्युत अपघट्य पदार्थ के रूप में काम में लिया जाता है , ये पदार्थ आपस में रासायनिक क्रिया करता है अर्थात कार्बन या मैंगनीज डाइऑक्साइड पदार्थ जिंक के साथ क्रिया करता है और इस रासायनिक अभिक्रिया द्वारा रासायनिक पदार्थ विद्युत ऊर्जा उत्पन्न करता है जिससे विद्युत धारा उत्पन्न हो जाती है।
इस विद्युत धारा को बैटरी के धन और ऋण सिरों अर्थात इलेक्ट्रोड के द्वारा प्राप्त कर लिया जाता है।

शुष्क सेल बैटरी की संरचना

शुष्क सेल लेक्लांश सैल पर आधारित होता है , यह सेल zn (जिंक) धातु का गोलाकार सिलिंडर का बना होता है यह एनोड की तरह कार्य करता है। इस सेल के मध्य में ग्रेफाईट की छड लगी हुई रहती है जो कैथोड का कार्य करती है।
अत: इस प्रकार के सेल में zn पदार्थ को एनोड की तरह काम में लिया जाता है और ग्रेफाईट पदार्थ को कैथोड की तरह काम में लिया जाता है।
ग्रेफाईट की छड के पास कार्बन (Carbon) और MnO2 के मिश्रण का गिला पेस्ट भरा हुआ रहता है तथा जिंक धातु के गोलाकार पात्र में NH4Cl और ZnCl2 का गिला पेस्ट भरा हुआ रहता है।
इस सेल को चारो तरफ से विद्युत रोधी बनाने के लिए मोटे कागज़ का आवरण लगाया जाता है।
जब इसे सेल को विद्युत परिपथ से जोड़ा जाता है तब Zn , इलेक्ट्रॉन त्यागकर Zn+2 में परिवर्तित हो जाता है , ये इलेक्ट्रॉन बाह्य परिपथ से होते हुए कैथोड पर पहुँचते है और कैथोड द्वारा ग्रहण कर लिए जाते है , कैथोड पर उपस्थित NH4+ आयन इलेक्ट्रॉन को ग्रहण करके उदासीन हो जाते है और यहाँ पर MnO2 का अपचयन हो जाता है।
ऐनोड पर क्रिया निम्न अभिक्रिया होती है –
Zn → Zn2+  + 2e
कैथोड पर क्रिया निम्न होती है –
2MnO2 + 2NH4+  + 2e  → 2MnO(OH) + 2NH3
इस क्रिया में बनी अमोनिया गैस Zn2+ आयन से क्रिया कर लेती है तथा [Zn(NH3)4]2+ आयन बना देती हैं।

बैटरियाँ या बैट्री या बैटरी या सैल : प्राथमिक बैट्री , द्वितीयक या संचायक बैटरी (batteries in hindi)

(batteries in hindi) बैटरियाँ या बैट्री या बैटरी या सैल : प्राथमिक बैट्री , द्वितीयक या संचायक बैटरी : हाथों में चलने वाले उपकरण जैसे फोन आदि से लेकर कई औद्योगिक अनुप्रयोगों मे भी बैटरीयों को काम में लिया जाता है।
बैट्री को निम्न प्रकार परिभाषित किया जा सकता है –
बैटरी की परिभाषा : जब दो या दो से अधिक विद्युत रासायनिक सेलों को श्रेणीक्रम में जोड़ा जाता है तो इसे बैट्री कहते है , यह रासायनिक ऊर्जा को विद्युत ऊर्जा में परिवर्तित कर देता है।
जब विद्युत रासायनिक सेल को बैट्री बनाने के लिए श्रेणीक्रम में जोड़ा जाता है तो इससे बहुत अधिक धारा प्राप्त की जा सकती है इसलिए हम सेल और बैटरी में यह अंतर बता सकते है कि सेल द्वारा प्राप्त विद्युत धारा निम्न या कम होती है जबकि बैट्री द्वारा प्राप्त विद्युत धारा का मान उच्च होता है।

अच्छी बैट्री के गुण

बैट्री में कुछ गुण होते है जिसके आधार पर उसे अच्छी बैट्री कहा जा सकता है जो निम्न है –
  • बैटरी का आकार छोटा होना चाहिए तथा इसका मूल्य भी कम होना आवश्यक है , अर्थात बैट्री का आकार और कीमत जितनी कम होगी वह उतनी ही अच्छी बैटरी मानी जाती है।
  • एक अच्छी बैट्री से अधिक समय तक उच्च ऊर्जा प्राप्त की जा सकती है , किसी बैट्री का जीवनकाल जितना अधिक होता है वह उतनी ही अच्छी बैटरी मानी जाती है।
  • बैट्री वजन में हल्की होनी चाहिए।
  • वह स्थिर वोल्टता की धारा देनी चाहिए अर्थात उस बैट्री द्वारा उत्पन्न धारा में वोल्टता समय के साथ स्थिर रहनी चाहिए या वोल्टता नियत रहनी चाहिए ताकि इससे चलने वाले उपकरण वोल्टता परिवर्तन के कारण खराब न हो।

बैटरी कैसे कार्य करती है (Working of Battery)

बैट्री एक ऐसा उपकरण है जिसमें बहुत सारे वोल्टिक सेल श्रेणीक्रम में जुड़े रहते है , प्रत्येक वोल्टिक सेल दो अर्द्ध सेल होते है जिन्हें इलेक्ट्रोड कहते है , विद्युत अपघट्य में ऋण आयन और धन आयन उपस्थित रहते है जो विपरीत इलेक्ट्रोड की तरफ गति करते है और परिणामस्वरूप विद्युत धारा उत्पन्न होती है।
यहाँ सेल में रेडोक्स अभिक्रिया होती है अर्थात एक इलेक्ट्रोड पर ऑक्सीकरण होता है और दूसरे इलेक्ट्रोड पर अपचयन की अभिक्रिया होती है अर्थात सेल में रेडोक्स अभिक्रिया के फलस्वरूप विद्युत धारा उत्पन्न होती है।

बैटरी के प्रकार (Types of Batteries)

मुख्य रूप से बैटरीयाँ दो प्रकार की होती है –
1. प्राथमिक बैटरीयां (Primary Batteries)
2. द्वितीयक बैटरीयाँ (Secondary Batteries)
1. प्राथमिक बैटरीयां (Primary Batteries) : वे बैट्री जिनमें रासायनिक अभिक्रिया केवल एक दिशा में होती है अर्थात इस प्रकार की बैट्री में अभिक्रिया एक तरफ चलकर पूर्ण हो जाती है और विद्युत उत्पादन बंद हो जाता है , इस प्रकार की बैटरी में अभिक्रिया को विद्युत धारा प्रवाहित करके विपरीत दिशा में नहीं करवाया जा सकता है अर्थात इन बैट्रीयों को चार्ज नहीं किया जा सकता है , यदि इन बैट्री में रासायनिक अभिक्रिया पूर्ण हो जाती है तो ये बेकार हो जाते है , इन्हें पुन: चार्ज नहीं किया जा सकता है।
उदाहरण : शुष्क सेल , मर्करी सेल।
2. द्वितीयक बैटरीयाँ (Secondary Batteries) : वे बैटरीयाँ जिनमे रासायनिक अभिक्रिया दोनों दिशाओं में चलती है अर्थात इन बैट्रीयों को पुन: चार्ज करके काम में लिया जा सकता है , इन बैटरियों को बार बार चार्ज करके काम में लिया जाता है अर्थात ये बेकार नहीं होता है , डिस्चार्ज होने पर पुन: इन्हें चार्ज करके काम में लिया जाता है।
पहले इन बैटरीयों में अभिकारक उत्पाद में परिवर्तित हो जाते है और धीरे धीरे डिस्चार्ज हो जाते है फिर इन बैटरीयों में विद्युत धारा प्रवाहित करके उत्पाद को अभिकारक में बदला जाता है और पुन: चार्ज कर दिया जाता है।
अर्थात इस प्रकार की बैट्री को बार बार चार्ज करके उपयोग में लाया जाता है , इसके कारण ये अधिक उपयोग होती है।
प्राथमिक बैट्री की तुलना में ये कुछ अधिक कीमत वाली होती है।
उदाहरण : लैड स्टोरेज सेल , निकल कैडमियम स्टोरेज सेल आदि।

फैराडे के विद्युत अपघटन के नियम , फैराडे का विद्युत अपघटन का प्रथम , द्वितीय नियम (faraday’s law of electrolysis in hindi)

(faraday’s law of electrolysis in hindi) फैराडे के विद्युत अपघटन के नियम , फैराडे का विद्युत अपघटन का प्रथम , द्वितीय नियम :फैराडे का नियम पढने से पहले हम कुछ विद्युत अपघटन के बारे में पढ़ लेते है , जब किसी विद्युत अपघट्य को विलयन या जल आदि में घोला जाता है तो विद्युत अपघट्य , धनात्मक और ऋणात्मक आयनों में विभक्त हो जाता है , धन आयन और ऋण आयन में टूटने के बाद , धन आयन उस इलेक्ट्रोड की तरफ गति करते है जो इलेक्ट्रोड बैट्री के ऋण सिरे से जुडा हुआ है और ऋण आयन उस इलेक्ट्रोड की तरफ गति करते है जो इलेक्ट्रोड बैटरी के धन सिरे से जुड़ा हुआ रहता है।

उदाहरण : जब विद्युत अपघट्य जैसे धातु सल्फेट को जल में घोला जाता है तो यह धनात्मक और ऋणात्मक आयन में टूट जाता है , इस अपघट्य के धनावेशित कण या धन आयन उस इलेक्ट्रोड क तरफ गति करते है जो बैट्री के ऋण सिरे से जुडा है जहाँ ये धनात्मक आयन इससे इलेक्ट्रॉन ग्रहण कर लेते है और उदासीन हो जाते है और शुद्ध धातु के कण के रूप में परिवर्तित हो जाते है , और इलेक्ट्रोड पर जमा हो जाते है। तथा इस अपघट्य के ऋणावेशित आयन उस इलेक्ट्रोड की तरफ गति करते है जो बैट्री के धनात्मक सिरे से जुडा हुआ रहता है जहाँ ये ऋणात्मक आयन अपना अतिरिक्त इलेक्ट्रॉन त्याग देते है और SO4 में परिवर्तित हो जाते है। हालाँकि यह SO4 विद्युत उदासीन अवस्था में नहीं पाया जाता है इसलिए यह धात्विक धनात्मक इलेक्ट्रोड पर आक्रमण करता है और दोबारा पानी में घुल जाता है।

फैराडे ने विद्युत अपघटन से सम्बंधित दो नियम दिए जो निम्न प्रकार है –

1. फैराडे का विद्युत अपघटन का प्रथम नियम : किसी विद्युत अपघटन के दौरान किसी इलेक्ट्रोड से मुक्त हुई पदार्थ की मात्रा , प्रवाहित होने वाली विद्युत धारा की मात्रा या  मान के समानुपाती होती है , यही फैराडे का प्रथम (पहला) नियम कहा जाता है।

माना किसी विद्युत अपघटन के दौरान किसी इलेक्ट्रोड से w ग्राम पदार्थ मुक्त हो रहा है तथा Q कुलाम धारा प्रवाहित हो रही है तो फैराडे के नियम के अनुसार W का मान Q के समानुपाती होता है –

W ∝ Q

इसे ही फैराडे का प्रथम नियम कहते है।

W = ZQ

यहाँ Z एक नियतांक है जिसे मुक्त हुए आयन का विद्युत रासायनिक तुल्यांक कहते है।

2. फैराडे का विद्युत अपघटन का द्वितीय नियम : इस नियम के अनुसार अलग अलग विद्युत अपघट्यो के विलयन में समान विद्युत धारा , समान समय के लिए प्रवाहित करने पर , इलेक्ट्रोडो से मुक्त हुए पदार्थ की मात्रायें , उनके तुल्यंकी भार के समानुपाती होती है।

फैराडे के प्रथम से नियम से –

W = ZQ

फैराडे के द्वितीय नियम के अनुसार भिन्न भिन्न विद्युत अपघट्य विलयन में समान धारा , समान समय के लिए प्रवाहित करने पर , इलेक्ट्रोड से मुक्त पदार्थ की मात्रा उनके तुल्यांकी भार के समानुपाती होता है।
माना प्रत्येक विद्युत अपघट्य विलयन में Q धारा को प्रवाहित किया जाता है।
माना दो विद्युत अपघट्य विलयन है , पहली स्थिति में Q धारा प्रवाहित करने पर w1 ग्राम मात्रा इलेक्ट्रोड से मुक्त होती है इस स्थिति में पदार्थ का विद्युत रासायनिक तुल्यांक z1 है तो –
प्रथम विद्युत अपघट्य के लिए w1 = Z1 x Q
दूसरी स्थिति में भी समान धारा अर्थात Q धारा को दुसरे विद्युत अपघट्य में प्रवाहित किया जाता है जिसका विद्युत रासायनिक तुल्यांक Z2 है तथा इलेक्ट्रोड से मुक्त पदार्थ की मात्रा w2 है तो –
द्वितीय विद्युत अपघट्य के लिए W2 = Z2 x Q
समीकरण 1 में दो का भाग देने पर
w1/w2 = Z1/Z2
यही फैराडे का विद्युत अपघटन का द्वितीय नियम है।

Switch Statement : Examples in c language in hindi , what is switch statement in c , स्विच स्टेटमेंट क्या है हिंदी में पढ़े

स्विच स्टेटमेंट क्या है हिंदी में पढ़े , Switch Statement : Examples in c language in hindi , what is switch statement in c :-
इससे पहले Decision making statements को पढ़ा है | C language मे , decision making statement तीन प्रकार के होते है :-
1. if else statement
इस statement से कोई condition check की जाती है |जब condition true होती तब true statement execute होगा |अन्यथा false statement execute होगा |इसका syntax है :-
if(condition)
{
true statement;
{
else
{
false statement;
}
2. Switch statement
जब multiple conditions को check की जाती है तब अलग अलग statement block execute होगी | इसका syntax है :-
switch(condition)
{
case case_label 1:
executable statement;
break;
case case_label 2:
executable statement;
break;
case case_label 3:
executable statement;
break;

default :
exit();
}
3. Looping
जब किसी statement को किसी condition के true करने पर execute करता है |ये तीन प्रकार के होते है |-
(i) while loop
(ii) Do -While loop
(iii)For loop

If-Else Statement examples :

उदहारण -1
Write a c program to calculate profit or loss.
इस उदाहरण मे , profit और loss को calculate करना है |

Explanation
1.सबसे पहले use से cost price और selling price को input करवाते है |
2. उसके बाद , यूजर से choice input करते है | (i) अगर profit calculate करते है तब ‘P’ input करते है और (ii) अगर loss calculate करना है तब ‘L’ input करवाते है |
2.अगर user द्वारा ‘P’ input करते है  तब  profit =selling price – cost price को calculate करता है |
3.अगर यूजर द्वारा “L” input करते है तब  loss= cost price -selling price को calculate करता है |
Source Code
#include<stdio.h>
#include<conio.h>
void main()
{
int sp,cp;
int profit,loss;

float profit_per,loss_per;
char choice;
printf(“Enter Selling Price”);
scanf(“%d”,&sp);
printf(“Enter cost Price”);
scanf(“%d”,&cp);
printf(“Enter Your Choice \n For Profit , enter ‘P’ or For Loss , enter ‘L'”);
scanf(“%c”,&choice);
switch(choice)
{
case ‘P’ :
profit=sp-cp;
profit_per=(profit/cp)*100;
printf(“Profit : %d “, profit);
printf(“Profit In percentage : %f”,profit_per);
break;
case ‘L’ :
loss=cp-sp;
loss_per=(loss/cp)*100;
printf(“Loss : %d”,loss);
printf(“Loss in percentage : %f “,loss_per);
break ;
default:
printf(“You put wrong choice.”);
}
getch();
}आउटपुट होगा :
Enter Selling Price 2000
Enter cost Price 1600
Enter Your Choice
For Profit , enter ‘P’ or For Loss , enter ‘L’ : P
Profit : 400
Profit In percentage : 25

उदाहरण 2
Write a program to find roots of a quadratic equation.
इस उदहारण मे , किसी quadratic equation के roots को find करने के लिए किया जाता है |

Explanation
Expression : ax^2 + b x + c
1.सबसे पहले discriminant को calculate करते है :- des = b^2 – 4ac
2.अगर des पॉजिटिव होती है तब इसके roots real होते है | इसका formula होता है :-
(-b + squareroot(des )) / 2*a
और
(-b-squareroot(des )) / 2*a
3. अगर des , zero है तब इस exucation के एक ही root होते है|
-(b/2a)
4.अगर des, negative होता है तब root complex number होते है|
in complex numbers का real part होता है :-
-(b/2a)     और  -(b/2a)
और इसके लिए imaginary पार्ट होगा :-
squareroot(des ) /(2*a)

source code
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int a,b,c;
float d;
float r1,r2;
float i;
printf(“Enter value of a,b or c”);
scanf(“%d %d %d”,&a, &b,&c);
d=b*b-4ac;
switch(d>0)
{
case ‘1’ :
r1=(-b+sqrt(d))/(2*a);
r1=(-b-qrt(d))/(2*a);
printf(“Roots Are Positive”);
printf(“%f %f”, r1, r2);
break;
case ‘0’ :
switch(des==0)
{
case ‘1’:
r1=r2=-b/(2*a);
printf(“Both roots of equation are same”);
printf(“%f”,r1);
break;
case ‘0’:
r1=r2=-b/(2*a);
i=sqrt(-d)/(2*a);
printf(“Roots are complex number”);
printf (“%f+i %f ,%f – i %f”,r1,i,r2,i);
break;
}
}
getch();
}

आउटपुट होगा
Enter value of a,b or c 1 8 7
Roots Are Positive
-1.00 -7.00
और
Enter value of a,b or c 1 4 0
Both roots of equation are same
-4.00
उदहारण 3
check validity of triangle by given sides.
इस उदहारण मे, किसी triangle की validity को check करना |
Explanation
1.सबसे पहले किसी triangle की तीनो sides को यूजर से input करा लेते है |
2.उसके बाद अगर ,यूजर द्वारा दिए गयी sides निन्म condition को फॉलो करती है तब triangle possible होगा :-
suppose l,m और n triangle की sides है तब condition
(i) l+m >n
(ii) m+n >l
(iii) l+n> m
3.अन्यथा enter की गयी sides से triangle बनाना impossible है |
source code
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
int count =0;
printf(“Enter Sides”);
scnaf(“%d %d %d “,&a &b &c);
switch (((a+b)>c) && ((a+c)>b) && ((b+c)>a)))
{
case ‘1’ :
printf(“Triangle is Possible with these sides value “);
break;

case ‘0’:
printf(“Triangle is Not Possible with these sides value “);
break;
}
getch();
}
आउटपुट होगा :
Enter Sides 5 4 7
Triangle is Possible with these sides value
उदहारण 4
check validity of triangle by given angels.
इस उदहारण मे, किसी triangle की validity को check करना |अगर यूजर द्वारा angel की value assign की जाती है |
Explanation
1.सबसे पहले किसी triangle की तीनो angel को यूजर से input करा लेते है |
2.उसके बाद condition check की जाती है |अगर तीनो angel का sum 180 नहीं होता तब Triangle is Possible with these angel value. print होगा |
3.अन्यथा Triangle is Possible with these sides value message print होगा  |
source code
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
int count =0;
printf(“Enter Angel”);
scnaf(“%d %d %d “,&a &b &c);
switch ((a+b+c)==180)
{
case ‘1’ :
printf(“Triangle is Possible with these angel value “);
break;case ‘0’ :

printf(“Triangle is Not Possible with these angel value “);
break;

}
getch();
}
आउटपुट होगा :
Enter Sides 60 50 70
Triangle is Possible with these angel value.
उदहारण 5 :-
check an alphabet is vowel or consonant.
इस उदहारण मे , alphabet के vowel या consonant होने की condition को check करना है |
Explanation
1.सबसे पहले किसी alphabet को यूजर से input करा लेते है |
2.उसके बाद condition check की जाती है |अगर यूजर द्वारा input किया alphabet ‘a’,’e’,’i’,’o’,’u’ और ‘A’ ,’O’,’I’,’U’ ,’E’ है तब alphabet is vowel message आ जायेगा |
3.अन्यथा alphabet is consonant message message print होगा  |
source code
#include<stdio.h>
#include<conio.h>
void main()
{
char a;
int count =0;
printf(“Enter character”);
scnaf(“%c “,&a);
switch(a)
{
case ‘a’ :
case ‘e’ :
case ‘i’ :
case ‘o’:
case ‘u’:
case ‘A’:
case ‘E’:
case ‘I’:
case ‘O’:
case ‘U’:
printf(” Alphabet is Vowel.”);
break ;
default :
printf(” Alphabet is consonant.”);

}
getch();
}
आउटपुट होगा :
Enter character i
Alphabet is Vowel.
और
Enter character B
Alphabet is consonant.

इन उदहारण से switch statement को और अच्छी तरह से read कर लिया है |

If-Else (Most Important Examples) in c language in hindi , इफ एल्स क्या है c भाषा में हिंदी decision making statement

इफ एल्स क्या है c भाषा में हिंदी में जाने , If-Else (decision making statement) (Most Important Examples) in c language in hindi :-
इससे पहले Decision making statements को पढ़ा है | C language मे , decision making statement तीन प्रकार के होते है :-
1. if else statement
इस statement से कोई condition check की जाती है |जब condition true होती तब true statement execute होगा |अन्यथा false statement execute होगा |इसका syntax है :-
if(condition)
{
true statement;
{
else
{
false statement;
}
2. Switch statement
जब multiple conditions को check की जाती है तब अलग अलग statement block execute होगी | इसका syntax है :-
switch(condition)
{
case case_label 1:
executable statement;
break;
case case_label 2:
executable statement;
break;
case case_label 3:
executable statement;
break;

default :
exit();
}
3. Looping
जब किसी statement को किसी condition के true करने पर execute करता है |ये तीन प्रकार के होते है |-
(i) while loop
(ii) Do -While loop
(iii)For loop

If-Else Statement examples :

उदहारण -1
Write a c program तो calculate profit or loss.
इस उदाहरण मे , profit और loss को calculate करना है |

Explanation
1.सबसे पहले use से cost price और selling price को input करवाते है |
2.अगर selling price ,cost price से बड़ी होती है तब  profit =selling price – cost price को calculate करता है |
3.अगर selling price ,cost price से छोटी होती है तब  loss= cost price -selling price को calculate करता है |
Source Code
#include<stdio.h>
#include<conio.h>
void main()
{
int sp,cp;
int profit,loss;

float profit_per,loss_per;
printf(“Enter Selling Price”);
scanf(“%d”,&sp);
printf(“Enter cost Price”);
scanf(“%d”,&cp);
if(sp>cp)
{
profit=sp-cp;
profit_per=(profit/cp)*100;
printf(“Profit : %d “, profit);
printf(“Profit In percentage : %f”,profit_per);
}
else
{
loss=cp-sp;
loss_per=(loss/cp)*100;
printf(“Loss : %d”,loss);
printf(“Loss in percentage : %f “,loss_per);
}
getch();
}आउटपुट होगा :
Enter Selling Price 2000
Enter cost Price 1800
Profit : 200
Profit In percentage : 11.11

उदाहरण 2
Write a program to find roots of a quadratic equation.
इस उदहारण मे , किसी quadratic equation के roots को find करने के लिए किया जाता है |

Explanation
Expression : ax^2 + b x + c
1.सबसे पहले discriminant को calculate करते है :- des = b^2 – 4ac
2.अगर des पॉजिटिव होती है तब इसके roots real होते है | इसका formula होता है :-
(-b + squareroot(des )) / 2*a
और
(-b-squareroot(des )) / 2*a
3. अगर des , zero है तब इस exucation के एक ही root होते है|
-(b/2a)
4.अगर des, negative होता है तब root complex number होते है|
in complex numbers का real part होता है :-
-(b/2a)     और  -(b/2a)
और इसके लिए imaginary पार्ट होगा :-
squareroot(des ) /(2*a)

source code
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int a,b,c;
float d;
float r1,r2;
float i;
printf(“Enter value of a,b or c”);
scanf(“%d %d %d”,&a, &b,&c);
d=b*b-4ac;
if(d>0)
{
r1=(-b+sqrt(d))/(2*a);
r1=(-b-qrt(d))/(2*a);
printf(“Roots Are Positive”);
printf(“%f %f”, r1, r2);
}
else if (d==0)
{
r1=r2=-b/(2*a);
printf(“Both roots of equation are same”);
printf(“%f”,r1);
}
else
{
r1=r2=-b/(2*a);
i=sqrt(-d)/(2*a);
printf(“Roots are complex number”);
printf (“%f+i %f ,%f – i %f”,r1,i,r2,i);
}
getch();
}

आउटपुट होगा
Enter value of a,b or c 1 8 7
Roots Are Positive
-1.00 -7.00
और
Enter value of a,b or c 1 4 0
Both roots of equation are same
-4.00
उदहारण 3
check validity of triangle by given sides.
इस उदहारण मे, किसी triangle की validity को check करना |
Explanation
1.सबसे पहले किसी triangle की तीनो sides को यूजर से input करा लेते है |
2.उसके बाद अगर ,यूजर द्वारा दिए गयी sides निन्म condition को फॉलो करती है तब triangle possible होगा :-
suppose l,m और n triangle की sides है तब condition
(i) l+m >n
(ii) m+n >l
(iii) l+n> m
3.अन्यथा enter की गयी sides से triangle बनाना impossible है |
source code
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
int count =0;
printf(“Enter Sides”);
scnaf(“%d %d %d “,&a &b &c);
if((a+b)>c)
{
if((a+c)>b)
{
if(b+c)>a)
{
count =1;
}
if(count == 1)
{
printf(“Triangle is Possible with these sides value “);
}
else
{
printf(“Triangle is Not Possible with these sides value “);
}
getch();
}
आउटपुट होगा :
Enter Sides 5 4 7
Triangle is Possible with these sides value
उदहारण 3
check validity of triangle by given angels.
इस उदहारण मे, किसी triangle की validity को check करना |अगर यूजर द्वारा angel की value assign की जाती है |
Explanation
1.सबसे पहले किसी triangle की तीनो angel को यूजर से input करा लेते है |
2.उसके बाद condition check की जाती है |अगर तीनो angel का sum 180 नहीं होता तब Triangle is Possible with these angel value. print होगा |
3.अन्यथा Triangle is Possible with these sides value message print होगा  |
source code
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
int count =0;
printf(“Enter Angel”);
scnaf(“%d %d %d “,&a &b &c);
if((a+b+c)==180)
{
printf(“Triangle is Possible with these angel value “);
}
else
{
printf(“Triangle is Not Possible with these angel value “);
}
getch();
}
आउटपुट होगा :
Enter Sides 60 50 70
Triangle is Possible with these angel value.
उदहारण 5 :-
check an alphabet is vowel or consonant.
इस उदहारण मे , alphabet के vowel या consonant होने की condition को check करना है |
Explanation
1.सबसे पहले किसी alphabet को यूजर से input करा लेते है |
2.उसके बाद condition check की जाती है |अगर यूजर द्वारा input किया alphabet ‘a’,’e’,’i’,’o’,’u’ और ‘A’ ,’O’,’I’,’U’ ,’E’ है तब alphabet is vowel message आ जायेगा |
3.अन्यथा alphabet is consonant message message print होगा  |
source code
#include<stdio.h>
#include<conio.h>
void main()
{
char a;
int count =0;
printf(“Enter character”);
scnaf(“%c “,&a);
if((a==a|| (a==e)|| (a==i)|| (a==u)||(a==o)|| (a== A) || (a== I) || (a==E) || (a== O) || (a==U) )
{
printf(” Alphabet is Vowel.”);
}
else
{
printf(” Alphabet is consonant.”);
}
getch();
}
आउटपुट होगा :
Enter character i
Alphabet is Vowel.
और
Enter character B
Alphabet is consonant.

C 99 – Complex.h Header File ( Part 3) trigonometric और hyperbolic trigonometric function in c language in hindi

c99 हैडर फाइल Complex.h में त्रिकोणमितीय और अतिशयोक्तिपूर्ण त्रिकोणमितीय फ़ंक्शन , C 99 – Complex.h Header File ( Part 3) trigonometric और hyperbolic trigonometric function in c language in hindi :-
इससे पहले के दो articles मे , header file complex.h के char महत्वपूर्ण function category (complex , imaginary , power और exponential ) को पढ़ा |अब इस article मे , trigonometric और hyperbolic trigonometric function को पढ़गे |Trigonometric function :
इस category मे , Trigonometric function को use करता है |दी गयी complex number की sin,cos,tan आदि की value को calculate किया जाता है |इसमें निन्म function include होते  है :-
1.Calculating Sine value

इस macro ,complex number के Sine value को calculate करने के  किया जता  है |ये तीन प्रकार के होते है |इसके syntax होते है :-
1.csinf (float complex number );इस macro का use,float type complex number के लिए किया जाता है |
2.csin (double complex number ); इस macro का use , double type complex number के लिए किया जाता है |
3.csinl(long double complex number); इस macro का use , long double complex number के लिए किया जाता है |
इस macro statement मे , complex number को pass किया जाता है | और  complex number की sine value complex number मे ही return होती है |
अगर complex number c=x+y.i  है तब इसकी Sine value = (e^(i c) + e^(-i c)) / 2.iयहा पर (e^(i c) की value e ^ ( y ) (sin ( x) + i. cos(x ) ) है |

2.Calculating Cosine value

इस macro ,complex number के Cosine value को calculate करने के  किया जता  है |ये तीन प्रकार के होते है |इसके syntax होते है :-
1.ccosf (float complex number );इस macro का use,float type complex number के लिए किया जाता है |
2.ccos (double complex number ); इस macro का use , double type complex number के लिए किया जाता है |
3.ccosl(long double complex number); इस macro का use , long double complex number के लिए किया जाता है |
इस macro statement मे , complex number को pass किया जाता है | और  complex number की Cosine valuecomplex number मे ही return होती है |
अगर complex number c=x+y.i  है तब इसकी Sine value = (e^(i c) + e^(-i c)) / 2यहा पर (e^(i c) की value e ^ ( y ) (sin ( x) + i. cos(x ) ) है |

3.Calculating Tangent value

इस macro ,complex number के Tangent value को calculate करने के  किया जता  है |ये तीन प्रकार के होते है |इसके syntax होते है :-
1.ctanf (float complex number );इस macro का use,float type complex number के लिए किया जाता है |
2.ctan (double complex number ); इस macro का use , double type complex number के लिए किया जाता है |
3.ctanl(long double complex number); इस macro का use , long double complex number के लिए किया जाता है |
इस macro statement मे , complex number को pass किया जाता है | और  complex number की Tangent value complex number मे ही return होती है |
अगर complex number c=x+y.i  है तब इसकी Sine value = (e^(i c) – e^(-i c)) / (e^(i c) + e^(-i c))यहा पर (e^(i c) की value e ^ ( y ) (sin ( x) + i. cos(x ) ) है |

उदाहरण के लिए

#include<stdio.h>
#include<conio.h>
#include<complex.h>
void main()
{
float real;
float imag;
float complex z ;
float complex h;
float complex g;
printf(“Enter real part of complex number “);
scanf(“%.1f”,&real);
printf(“Enter imaginary part of complex number “);
scanf(“%f”,&imag);
y=CMPLXF (real , imag);
z=csinf  ( y  );
h=ccosf (y);
g=ctanf(y);
printf(“y= %f + %f . i”,creal(y),cimg(y));
printf(“Sine value of complex number \n “);
printf(” %f + %f . i”,creal(z),cimg(z));
printf(“Cosine value of complex number\n “);
printf(” %f + %f . i”,creal(h),cimg(h));
printf(“Tangent value of complex number\n “);
printf(” %f + %f . i”,creal(g),cimg(g));
getch();
}आउटपुट होगा :
Enter real part of complex number 5
Enter imaginary part of complex number 4
y= 5 + 4 . i
Sine value of complex number
-26.18 + 7.74. i
Cosine value of complex number
7.74 + 26.16 . i
Tangent value of complex number 
-0.00 + 1.00 . i


Hyperbolic function :
इस category मे , Trigonometric function का hyperbolic value  को use करता है |दी गयी complex number की sinh,cosh,tanh आदि की value को calculate किया जाता है |इसमें निन्म function include होते  है :-
1.Calculating Sinh value

इस macro ,complex number के Sin की hyperbolic value को calculate करने के  किया जता  है |ये तीन प्रकार के होते है |इसके syntax होते है :-
1.csinhf (float complex number );इस macro का use,float type complex number के लिए किया जाता है |
2.csinh(double complex number ); इस macro का use , double type complex number के लिए किया जाता है |
3.csinhl(long double complex number); इस macro का use , long double complex number के लिए किया जाता है |
इस macro statement मे , complex number को pass किया जाता है | और  complex number की hyperbolic sine value , complex number मे ही return होती है |
अगर complex number c=x+y.i  है तब इसकी Sine value = (e^( c) – e^(- c)) / 2यहा पर (e^(i c) की value e ^ ( y ) (sin ( x) + i. cos(x ) ) है |

2.Calculating Cosine value

इस macro ,complex number के hyperbolic Cosine value को calculate करने के  किया जता  है |ये तीन प्रकार के होते है |इसके syntax होते है :-
1.ccoshf(float complex number );इस macro का use,float type complex number के लिए किया जाता है |
2.ccosh(double complex number ); इस macro का use , double type complex number के लिए किया जाता है |
3.ccoshl(long double complex number); इस macro का use , long double complex number के लिए किया जाता है |
इस macro statement मे , complex number को pass किया जाता है | और  complex number की hyperbolic Cosine valuecomplex number मे ही return होती है |
अगर complex number c=x+y.i  है तब इसकी hyperbolic cosine value = (e^(c) + e^(-c)) / 2यहा पर (e^(i c) की value e ^ ( y ) (sin ( x) + i. cos(x ) ) है |

3.Calculating Tangent value

इस macro ,complex number के Hyperbolic Tangent value को calculate करने के  किया जता  है |ये तीन प्रकार के होते है |इसके syntax होते है :-
1.ctanhf (float complex number );इस macro का use,float type complex number के लिए किया जाता है |
2.ctanh(double complex number ); इस macro का use , double type complex number के लिए किया जाता है |
3.ctanhl(long double complex number); इस macro का use , long double complex number के लिए किया जाता है |
इस macro statement मे , complex number को pass किया जाता है | और  complex number की Hyperbolic Tangent value complex number मे ही return होती है |
अगर complex number c=x+y.i  है तब इसकी Sine value = (e^( c) – e^(-c)) / (e^(c) + e^(-c))यहा पर (e^(i c) की value e ^ ( y ) (sin ( x) + i. cos(x ) ) है |

उदाहरण के लिए

#include<stdio.h>
#include<conio.h>
#include<complex.h>
void main()
{
float real;
float imag;
float complex z ;
float complex h;
float complex g;
printf(“Enter real part of complex number “);
scanf(“%.1f”,&real);
printf(“Enter imaginary part of complex number “);
scanf(“%f”,&imag);
y=CMPLXF (real , imag);
z=csinhf  ( y  );
h=ccoshf (y);
g=ctanhf(y);
printf(“y= %f + %f . i”,creal(y),cimg(y));
printf(“Hyperbolic Sine value of complex number \n “);
printf(” %f + %f . i”,creal(z),cimg(z));
printf(“Hyperbolic Cosine value of complex number\n “);
printf(” %f + %f . i”,creal(h),cimg(h));
printf(“Hyperbolic Tangent value of complex number\n “);
printf(” %f + %f . i”,creal(g),cimg(g));
getch();
}