Upload
sopheap-sang
View
47
Download
6
Embed Size (px)
DESCRIPTION
ចូលរួមជាមួយគ្នា
Citation preview
emeronTI2 ³
kenSam Expression & Statement
I. RbePTTinñn½y I.1. niymn½y Tinñn½y (Data) KÅCabNþaBt’manEdlmanBitdUcCa GtßbT tMélelx sMelg nig rUbPaB sMEdgeRkamTMrg;mYyEdlkuMBüÚT½rGaceFVIkarR)aRs½yTak;Tg b¤Gnuvtþn_ kargarNamYyCamYyva)an. I.2. RbePTTinñ½y (Data Type)
kñúgPasa C manRbePTTinñn½ymYycMnYndUc)anbgðajxageRkamenH ³
RbePTTinñn½yRtUv)aneKeGayniymn½yedayBIrcMnucxageRkamKW ³
+ CaRbePT nigEdnkMNt;éntMél EdleRkayeBlGefrmYy)anRbkas CamYyRbePTTinñn½yenaHrYc vaGacTTYlyktMélenaH)an.
+ kñúgRbePTTinñn½ynImYy²GacmankMNt;RbmaNviFImYycMnYnCak;lak;.
I.3. RbePTcMnYnKt; ( Integer )
eyIgdwgehIyfa kñúgKNitviTüa cMnYnKt;FmμCatimantMélcab;BI –N rhUtdl; N nigFatuTaMgGs;rYmcUlKñabegáIt)anCasMnuMcMnYnKt;. enAkñúgkuMBüÚT½rvaBuMmanlT§PaB sMEdgtMélelx )antaMgBI -∞ rhUtdl; +∞ enaHeT KWvaGacsMEdg)anEtenAcenøaH kMNt;NamYyén (-∞, +∞)
b:ueNÑaH. dUecñHcMnYnKt; (Integer) enAkñúgkMuBüÚT½rKWman karEbgEckCaRbePTcMnYnKt; epSg²BIKñaeTot GaRs½yeTAtamEdntMélrbs;vadUc xageRkam ³
RbePTTinñn½y BaküKnøwH cMnYn Byte EdntMél Character char 1 -128 dl; 127 Integer int 2 -32768 dl;
32767 Short integer short 2 -32768 dl;
32767 Long integer long 4 -2147483648 dl;
2147483647 Unsigned character unsigned
char 1 0 dl; 255
Unsigned intger unsigned int 2 0 dl; 65535
Unsigned short intger unsigned short 2 0 dl; 65535
Unsigned long intger unsigned long 4 0 dl;
4294967295
26
27
cMNaM ³ RbePTTinñn½y char PaBBitCaRbePTGkSr k¾b:uEnþkñúgPasa C )anGnuBaØateGayeRbIRbePT char enHCacMnYnKt;mYyEdlmantMélGacsMEdg)an dUckñúgtaragxagelI. enHKWCaPaBrs;rvIkrbs; C EdlenAeBleFIVRbmaNviFInBVnþ enaHRbePTTinñn½y char
RtUv)ancat;TukCacMnYnKt; Etdl;eBleFVIRbmaNviFICamYy tYGkSr enaHvacat;Tuk char
CaRbePTtYGkSrvij. I.3.1. sMEdgcMnYnKt;edayelxeKal 16 nigeKal 8
enAkñúgkarsreskmμviFIedayPasa C eRkAGMBIkarsresrelxeRkamTMrg; Decimal
(elxeKal 10) va)anpþl;lT§PaBeGayeyIgGacsresrelxeRkamTMrg; eKal 16 (hexa) EfmeTot. RbB½n§elxeKal 16 rYmman 16 tYelxKW ³ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D,
E, F EdlkñúgenaH A, B, C, D, E, F tMNageGay 10, 11, 12, 13, 14, 15. kñúgPasa C edIm,IsresrelxeRkamTMrg; Hexa enaHRtUvsresrtamlMnaM xageRkam ³ Ox41mann½yfa 41 hexa EdlesIμnwg 65 decimal OxFmann½yfa F hexa EdlesIμnwg 15 decimal eRkABIkarsresrelxeRkamTMrg;CaRbB½n§ Hexa enaHkñúgPasa C enA
GnuBaØateGayeyIgGaceRbIR)as;elxeRkamTMrg; Octal )anEfmeTotpg. RbB½n§elx Octal
(RbB½n§elxeKal 8) rYmman 8 tYelxsMrab;eRbIKW 0, 1, 2, 3, 4, 5, 6, 7.
edIm,IsMEdgelxNamYyeRkamTMrg; Octal enaHkñúgPasa C RtUvsresrcab;epþIm eLIgedayelxsUnü 0 (elxsUnü ). ]TahrN_ ³ 013 mann½yfa 13 Octal EdlesIμnwg 11 decimal
07 mann½yfa 7 Octal EdlesIμnwg 7 decimal
I.3.2. Pa¢b;tMélcab;epþImeGayGefrRbePTcMnYnKt;
]bmafaeyIgP¢ab;tMél 5 eGayGefr x enaHeyIgGacsresr)anBIrrebob dUcxageRkam ³ int x; x = 5; b¤sresr ³ int x = 5;
I.3.3. cMnYnefrRbePTcMnYnKt;
eBlxøHeyIgRtUvkarsresrcMnYnefredIm,IP¢ab;eGayGefr b¤brimaNGVImYy. edIm,ITTYl)annUv kMritsuRkitx<s; Kb,IeyIgRtUvsresrbBa¢ak;bEnßmnUvtYGkSrbBa¢ak; mYyenAEpñk xageRkay bMputrbs; bNþatYelxéntMélenaH. ]TahrN_ ³
1000U )ann½yfaCacMnYnefrcMnYnKt; unsigned int EdlmantMél 1000
1000L )ann½yfaCacMnYnefrcMnYnKt;RbePT long EdlmantMél 1000
1000UL CacMnYnefrcMnYnKt;RbePT unsigned long EdlmantMél 1000
0100L CacMnYnefrcMnYnKt;RbePT long sresreRkamTMrg;elxRbB½n§eKal 8
0x1000U CacMnYnefrcMnYnKt;RbePT unsigned int EdlsresreRkamTMrg; RbB½n§elxeKal 16. I.4. cMnYnBit (Real )
dUcKñaCamYynwgRbePTTinñn½ycMnYnKt;Edr kñúgkMuBüÚT½rvaBMumanlT§PaBsMEdg tMélelxrbs; sMnMucMnYnBit)anTaMgGs;enaHeT KW)anEtEpñkNamYyénsMnMuEtbu:eNÑaH. kñúgPasa C
RbePTcMnYnBitRtUv)anEckecjCabIRbePTepSg²eTotKW ³ RbePT float, double nig long dougle. enAeBlEdlGñksresrtMélelxsMEdgeRkamTMrg;RbB½n§ elxeKal 16 b¤eKal 8 enaHkñúgPasa C
BMuGnuBaØateGayGñkeRbIsBaØaek,ós (.) )aneLIy. karsreselxdUcxageRkamenHmankMhus ³
0x5.5 xus 05.5 eBlenHkuMBüÚT½rBMu)anyl;faelxenHCaelxeKal 8 eT vaEbCayl; faenHCaelxeKal 10 EdlmantMéles μ I 5.5.
cMNaM ³ kñúgesÞIrRKb;PasasresrkmμviFITaMgGs; eBlsresrek,ósTsPaK enaHEtgRtUv)aneKeRbIsBaØa (.) BMuEmnsBaØa (,) eT.
28
29
I.4.1. rebobsresrtMéléncMnYnBitkñúgPasa C
3.1416 RtUv 3. RtUv 5 xus 3.0 RtUv 0.5 RtUv 5E-2 RtUv -12.345 RtUv .50 RtUv 5,00 xus +0.00050 RtUv
CamYyKñaenH eyIgk¾GacsresrcMnYnTsPaKtamTMrg;dUcxageRkam ³ ]TahrN_
512.34567 = 5.1234567.102 = 0.51234567.103
kñúgPasa C eyIgGacsresr ³ 5.1234567E+02 (RtUvsresrCab;KñaTaMgGs;) mann½yfa 5.1234567*10+2
dUcKñaenHEdr tMél -0.001234 eyIgGacsresr)anfa ³ -12.34E-4 I.4.2. RbePTcMnYnKt;
RbePTTinñn½y BaküKnøwH cMnYn Byte EdntMél Single-precision floating point float 4 3.4E-38 dl;
3.4E+38 Doule-precision floating point double 8 1.7E-308 dl;
1.7E+308 Long double-precision floating point
long double 10 3.4E-4932 dl; 1.1E+4932
I.4.3. cMnYnefrRbePTcMnYnKt;
edIm,IsresrtMélcMnYnefrRbePTcMnYnBiteGaymanPaBsuRkitx<s; enaHeyIg RtUvP¢ab;BIxageRkaytMélcMnYnBitenaHnUvtYGkSrbBa¢ak; F (float) b¤ L (long).
]TahrN_ ³ 0.12345E-33L CacMnYnefrRbePT long double 5.50123E+10F CacMnYnefrRbePT float .12345FCacMnYnefrRbePT float
I.4.4. P¢ab;tMélcab;epþImeGayGefrRbePTcMnYnKt; eyIgGacP¢ab;tMélcab;epþImeGayGefrRbePTcMnYnBit tamlMnaMdUcxageRkam ³ ]TahrN_
float x; x = .50;
b¤k¾Gacsresr ³ float x = .50;
I.5. Tinñn½yRbePT Char (Character Type)
kMuBüÚT½rvaBMuRtwmEteFVIkarCamYyTinñn½yCatMélelxb:ueNÑaHeT EfmTaMgvaGaceFVI karCamYybNþatYGkSr (Letters) tYelx (Numerals) nigGaclayCamYybNþa sBaØaepSg (Sign) eTotpg EdlFatunImYy²rbs;sMnMuTaMgenHGacRtUv)aneKehAfa Ca Character. bNþa Character EdleyIgEtgEtCYbRbTH nigeRbIR)as;sBVéf¶man dUcCa a, b, c, …, z, A, B, C, …,
Z, 0, 1, 2, …, 9, !, ?, \.l. kñúgPasa C edIm,IsresrcMnYnefrén Character eyIgRtUvsresr Character
enaHenAkñúgcenøaHsBaØa ‘ ’ (single quote) ]TahrN_dUcCa ‘a’, ‘0’, ‘?’, ‘2’, ‘z’ CaedIm. Character TaMgGs;suT§EtRtUv)aneKkMNt;kUdtMNageGayva edIm,IgayRsYl
kñúgkarrkSaTuk nigGnuvtþn_RbmaNviFIelIva. kñúgenaHEdr ASCII (American Standard Code
30
for Information Interchange) )ankMNt;kUdsMrab; 256 character nigeRbImYy Byte memory edIm,IrkSaTukTinñn½y 1 character.
tarag ASCII xageRkamenH)anbgðaj 128 character dMbUg cMENk 128 eRkayeTot nwgRtUv)anbgðajenAkñúgesckþIbEnßménesovePAenH. 32 tYdMbUg (Edl mankUdcab;BI 0 dl; 31) CabNþa character bBa¢a Cak;EsþgdUcCakUd 7 Ca ASCII rbs; BELL
)ann½yfaeBlEdlkMuBüÚT½rTTYl)antMélenH vanwgbeBa©jsMelgCYg (Bell). cMENkÉkUd 13
(CR-Carriage Return) nig 10 (LF-Line Feed) vijKWCa character bBa¢aeGay screen
Gnuvtþn_kacuHbnÞat; nigRtLb;mkedImbnÞat;vij. cab;BI ASCII 32 rhUtdl; 127 CabNþa character EdlGacbgðajelIeGRkg; nig e)aHBum<ecjeRkA)an. tarag ASCII 128 tYdMbUg ³
31
kñúgPasa C eyIgGacsresrbNþa character bBa¢a)anedayeRbI Constance character
EdleK)ankMNt;CaeRscdUctaragxageRkam ³
Constance character ASCII muxgar ‘\a’ 7 beBa©jsMelgCYg (BELL) ‘\b’ 8 lb;mkeqVgmYytYGkSr (Back Space) ‘\t’ 9 Character Tab ; ‘\n’ 10 cuHbnÞat;f μ I (Line Feed)
‘\r’ 13 RtLb;eTAedImbnÞat; (Carriage Return)
eRkABIbNþa Character xagelIenH edIm,IsresrsBaØa b¤ Character Biess mYycMnYndUckñúgtaragxageRkam enaHRtUvdak; Character ‘\’ BIxagmuxsindUcCa ³
rebobsresr Character
‘\‘’ ‘ ‘\“’ “ ‘\\’ \ ‘\0’ \0 b¤ NULL
cUrRby½tñcMeBaH Character ‘\0’ nig ‘0’ :
+ Character ‘\0’ KWCa Character EdlRtUv)aneKehAmü:ageTotfa NULL nigman ASCII = 0.
+ Character ‘0’ KWCatYelxsUnüEdlman ASCII = 48 decimal.
karP¢ab;tMélcab;epþImeGayGefrRbePT char :
eyIgGackMNt; b¤P¢ab;tMélcab;epþImeGayGefrRbePT char )andUc]TahrN_ xageRkam ³
32
]TahrN_ char x = ‘5’; b¤k¾ char x ; x = ‘5’ ;
kmμviFIxageRkamenHCa]TahrN_bgðajGMBIkareRbIR)as;bNþa Character bBa¢a. cUrGñkvaykUdkmμviFIenHkñúgmCÄdæanRmbUlpþMú TURBO C rYcehIydMeNIrkarva CamYynwgkarBinitüemIlRKb;dMNak;kalénkarbþÚr b¤lub Character bBa¢aNamYy. kmμviFI Prog2_1.C xageRkamenHmankareRbI Character bBa¢amYycMnYndUcCa ‘\n’, ‘\t’, ‘\a’, ‘\’’, ‘\”’
.l.
33
#include <stdio.h> #include <conio.h> void main( ) { clrscr( ); printf("Hello every body ! \nThis is a program"); printf(" Showing about the Escape sequence."); printf("\nThis program just output text onto screen\n\n\a\a"); printf("\t1.\tGood morning !\n"); printf("\"Build Bright University\" \'BBU\'"); getch( ); }
Hello every body ! This is a program Showing about the Escape sequence. This program just output text onto screen
1. Good morning !
"Build Bright University" 'BBU'
lT§plelIeGRkg;KW ³
/*----------------------- Prog2_1.C -----------------------*/
I.6. Tinñn½yRbePT String
kñúgPasa C String KWCaes‘rIén Character EdlRtUv)aneKsresrdak;kñúg cenøaHsBaØa “ ”
(double quotes) ]TahrN_dUcCaXøa “Cambodia”. FatunImYy² rbs; String RtUv)andMerobCab;²KñaGs;BImYyeTAmYykñug Memory ehIyEpñkxag cugbMputénFaturbs; String
RtUv)aneKpÞúk Character NULL b¤ ‘\0’ EdlenHCa sBaØamYyeRbIsMrab;bBaØak;fa String
RtUv)anbBaØb;RtwmenH. dUecñHXøa “Cambodia” nwgRtUv)anrkSaTukkñúg Memory dUcxageRkam ³
Rby½tñ ³
PaBxusKñarvag String “A” CamYynwg Character ‘A’ KW ³ “A” RtUv)anrkSaTukkñúg 2 Byte Memory KW ³ A \0
cMENk ‘A’ vijRtUv)anrkSaTukkñúg 1 Byte Memory KW ³ A
eyIgGacsresr ³ ‘A’ + ‘b’ + 5 mann½yfa 65 + 98 + 5
EteyIgBMuGacsresr ³ “A” + “b” + 5 (mankMhuseRBaH “A” nig “b” suT§EtCa String)
I.7. Tinñn½yRbePT Boolean Tinñn½yRbePT Boolean CaRbePTTinñn½ysMedAeTAelIEttMélBIrb:ueNÑaH KW 1 nwg 0
EdlenHCatMéltkátMNageGaylT§plrbs;sMeNIrmYy Bit (TRUE) b¤ minBit (FALSE). ]TahrN_
sMeNIr 5 < 1 enaHlT§pl = FALSE b¤ 0
5 > 1 enaHlT§pl = TRUE b¤ 1
34
35
eyagtam]TahrN_xagelIeyIgeXIjfa lT§plrbs;sMeNIrxagelIKWCa cMnYnKt;EdlGacmanEtBIrtMélb:ueNÑaHKW 0 nig 1.
II.cMnYnefr nig Gefr (Constance & Variable)
II.1. cMnYnefr
enAkñúgkarsresrkmμviFI eKeRbIcMnYnefredIm,ICYysMrYleGaymanPaBgayRsYl kñúgkareRbItMél Cak;EsþgNamYyEdlnwgBMuRtUv)anERbRbYlkñúgdMeNIrkarénkmμviFI. eyIgGackMNt;eQμaHNamYy edIm,ItMNageGaytMéléncMnYnefrRbePTNamYy edayeRbIBaküKnøwH const BIxagmux.
]TahrN_dUcCa ³ const int a = 300;
const float b = 3.50;
const char ch = ‘A’, k = ‘5’;
eRkaykarRbkasdUcxagelI eBlenHeyIgTTYl)an ³ a CacMnYnefrRbePT integer EdlmantMél 300
b CacMnYnefrRbePT float EdlmantMél 3.50
ch nig kCacMnYnefrRbePT charEdlmantMél ‘A’ nig ‘5’
eRkayeBlRbkasbNþaeQμaHxagelIenHCacMnYnefrrYc enaHeyIgnwgBMuGac nwgeFVIRbmaNviFINamYy EdlbNþaleGaymankarERbRbYldl;tMélrbs;cMnYnefr TaMgenaHLIy.
TMrg;énkarRbkascMnYnefr ³
const RbePTTinñn½y eQ μaHcMnYnefr = tMéléncMnYnefr II.2. Gefr enAkñúgPasasresrkm μviFIkMuBüÚT½r GefrKWCaeQμaHénbNþMú Memory (cab;BI Address
NamYyeTA) EdlRtUv)aneKeRbIsMrab;rkSaTukTinñn½yRbePTNamYyenAkñúg Memory énkMuBüÚT½r.
Tinñn½yTaMgGs;suT§EtmanRbePTrbs;va dUecñHedIm,IeRbIGefr sMrab;pÞúkTinñn½yRbePTNamYyenaH CadMbUgeyIgRtUvRbkasGefrenaHCamYyRbePT Tinñn½yEdlnwgRtUvpÞúkCamunsin.
rebobRbkasGefr
]TahrN¾ ³ RbePTTinñn½y Gefr1, Gefr2, …, Gefrn;
int m,n ;
float x ;
eRkayeBlRbkasdUcxagelI eBlenHeyIgTTYl)an m nig n KWCaGefr RbePT int dUecñHeyIgGacyk m nig n eRbIedIm,IpÞúkTinñn½yRbePT int )an. cMEnkÉ x vijRtUv)anRbkasCamYy float dUecñHeyIg)anvaCaGefrRbePT float EdlGac eRbIsMrab;pÞúkTinñn½yRbePT float )an. III. RbmaNviFI III.1. bNþasBaØaEdleRbIkñúgRbmaNviFInBnþ
sBaØa Gtßn½y ]TahrN¾ + bUk a+b - dk a-b * KuN a*b / Eck a/b
% EckyksMNl; a%b
sBaØa / ³
+ RbsinebIEckelxrvagBIrcMnYnKt; enaHeyIgnwgTTYl)anplEckCa cMnYnKt;.
36
]TahrN_ ³ 10/3 = 3 (lT§plKW 3BMuEmn 3.333 eT)
+ ebIEckelxrvagcMnYnBit nigcMnYnBit b¤cMnYnBit nigcMnYnKt; enaHeyIg nwgTTYl)anplEckCacMnYnBit.
]TahrN¾ ³ 10.00/3 = 3.333333 10/3.0 = 3.333333
sBaØa % ³ enHKWCasBaØaEckyksMNl; vaRtUv)anGnuvtþEtelIkarEckcMnYnKt;CamYy cMnYnKt;b:ueNÑaH. ]TahrN_ ³
10%3 = 1 10.0%3 krNIenHmankMhus
kmμviFI]TahrN_ ³ kmμviFIxageRkamenHCa]TahrN_bgðajGMBIkareRbIsBaØaEckykplEck nig
kareRbIsBaØaEckyksMNl;. kmμviFI Prog2_2.C #include<stdio.h>
#include<conio.h> void main() { int a, b; /*--- RbkasGefr a nig b CaGefrRbePT int ---*/
float x; /*--- RbkasGefr x CaGefrRbePT float ---*/ a = 10 ; b = 3; x = a/b; /*--- EckcMnYnKt; a eGay b ---*/
clrscr(); /*--- lubbNþaGkSrEdlkMBugmanelIeGRkg; ---*/
printf("x = %f",x); /*--- bgðajtMél x elIeGRkg; ---*/
x = 10.0/3; /*--- EckcMnYnTsPaK 10.0 eGay 3 ---*/ printf("\nx = %f",x);
37
x = a % b; printf("\nx = %f",x); a = 20 % 7; /* EckyksMNl; ehIyP¢ab;lT§pleGay a */ printf("\nA = %d",a); getch(); /*--- rg;caM Press Key NamYy ---*/
}
lT§plelIeGRkg;KW ³ x = 3.000000 x = 3.333333 x = 1.000000 x = 6
III.2. GaTiPaBkñúgRbmaNviFInBnþ
enAkñúgkareFVIRbmaNviFInBVnþ karKNnaRtUvcab;ecjdMeNIrBIeqVgeTAsþaM nigsBaØaRbmaN viFInImYy²GacmanGaTiPaBepSg²Kña dUcCa RbmaNviFIbUk nigdk KWmanGaTiPaBesμIKña k¾b:uEnþvaRtUvTabCagGaTiPaBrbs;RbmaNviFIKuN Eck nigEck yksMNl; (EtRbmaNviFITaMgbI enHmanGaTiPaBes μ IKña).
kñúgkenSammYy vaGacmankareFIVRbmaNviFIeRcIn ehIyRbmaNviFInImYy² GacmanGaTiPaBepSg²Kña dUecñHkñúgkenSamenaHnwgRtUvmanRbmaNviFIxøH)anGnuvtþ mun nigxøHeTotRtUvGnuvtþtameRkay.
]TahrN¾karKNnakenSam ³ 5+10/3
lT§plénkarKNnakenSamxagelIenHKW 8 BIeRBaHsBaØaEckmanGaTiPaB x<s;CagsBaØabUk dUecñHRtUvGnuvtþRbmaNviFIEckmun )anlT§plehIyeTIbGnuvtþ RbmaNviFIbUktameRkay.
edIm,IeCosvagkMhuskñúgRbmaNviFI b¤kñúgkenSamRbmaNviFI enaHeyIgRtUv eRbIsBaØargVg;Rkck ( ) edIm,IbBaØak;GMBIGaTiPaBénRbmaNviFI. ]TahrN_dUcCa ³
(5+10)/3 eyIg)anlT§plKW 5
38
39
5+(10/3) eyIg)anlT§plKW 8
III.3. RbmaNviFIeRbobeFob nig RbmaNviFItká lT§plrbs;RbmaNviFIeRbobeFob nigRbmaNviFItká manEtBIrtMélb:ueNÑaH KWBit (1)
b¤minBit (0) dUecñHlT§plrbs;RbmaNviFIenHCaTinñn½yRbePT Boolean. bNþasBaØaRbmaNviFIeRbobeFob
sBaØa Gtßn½y ]TahrN_ > FMCag b¤eT? a > b
>= FMCag b¤esIμ b¤eT? a > = b < tUcCag b¤eT? a < b
<= tUcCag b¤esI μ b¤eT? a < = b == esIμKña b¤eT? a = = b != xusKña b¤eT? a ! = b
4 sBaØaRbmaNviFIdMbUgmanGaTiPaBesμ IKña b:uEnþvax<s;CagGaTiPaBrbs;BIr
sBaØaRbmaNviFIcugeRkay (KW == nig != ) EtkñúgenaHRbmaNviFI (==) nig (!=) manGaTiPaBes μ IKñavij.
RKb;bNþasBaØaRbmaNviFIeRbobeFobTaMgGs; suT§EtmanGaTiPaBTabCag bNþasBaØaRbmaNviFInBVnþ ]TahrN_dUcCakenSam m < (n-1) enaHkMuBüÚT½rnwgGnuvtþ RbmaNviFInBVnþmunKW (n-1) rYceTIbeFVIkareRbobeFoblT§plenaHCamYy m tameRkay.
bNþasBaØaRbmaNviFItká ³ sBaØaRbmaNviFItkákñúgPasa C rYmman 3 dUc)anbgðajkñúgtaragxageRkam ³
sBaØa Gtßn½y ]TahrN_ ! bdiesFn_ (NOT) !a
&& RbmaNviFI (AND) a && b || RbmaNviFI (OR) a || b
xageRkamenH Catarag]TahrN_bgðajGMBIkareRbIR)as;bNþasBaØaRbmaN viFItká.
a b !a !b a&&b !(a&&b) a || b !(a || b) 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0
cMNaM ³ kñúgRbmaNviFItká a nig b GacCacMnYnKt; b¤cMnYnBit
bNþasBaØaRbmaNviFIeRbobeFobTaMgGs; suT§EtmanGaTiPaBTabCagsBaØa RbmaNviFI NOT k¾b:uEnþvamanGaTiPaBx<s;CagsBaØaRbmaNviFI AND nig OR vij.
]TahrN¾kenSam (a<b)&&(c>d) eyIgGacsresr)anfa a<b&&c>d
eBlenaHkareFIVRbmaNviFIelIkenSamenHKWRtUvGnuvtþRbmaNviFI a < b rYcehIyeTIb KNna c > d
nigCacugeRkayeTIbyklT§plBIrRbmaNviFImunenHeTAGnuvtþRbmaN viFI AND. xageRkamenH bgðajGMBIlMdab;GaTiPaBkñúgRbmaNviFIeRbobeFob nigRbmaN viFItká ³
!
>> = <<=
= = ! =
&& ||
RbmaNviFITaMgenH CaFm μtavaEtgRtUv)aneKeRbIedIm,IbegáItlkçxNÐsMrab; eRCIserIskargar b¤k¾bBa©b;kargarenAkñúgrgVil (Loop) NamYy.
40
kmμviFIxageRkamenH Ca]TahrN_bgðajGMBIrebobeRbIR)as;bNþasBaØaeRbob eFobxagelIenAkñúgkarsikSalkçxNÐedIm,IeRCIserIskargarmkGnuvtþ. kmμviFI Prog2_3.C #include <stdio.h>
#include <conio.h>
void main() {
int n;
printf("\nInput an integer between 0 and 10 :");
scanf("%d",&n);
printf("\nYou entered %d which is greater than 5",n);
if(n<5)
printf("\nYou entered %d which is smaller than 5",n);
if(n==5)
printf("\nYou entered 5");
getch();
}
lT§plelIeGRkg;KW ³
Input an integer between 0 and 10 : 6
if(n>5)
41
III.4. RbmaNviFIelI BIT
xageRkamenHCabNþakargarEdlEtgEt)anCYbCajwkjab;enAkñúgPasakMrit Tab EtBMusUvCa)anCYbenAkñúgPasakMritx<s;eLIy. vamanmuxgarsMrab;eFVIRbmaN viFIeTAelI Bit
nImYy²rbs;cMnYnKt; (bNþasBaØaRbmaNviFIxageRkamenH BMuGac Gnuvtþ)ancMeBaHRbePTTinñn½y float nig double eLIy) :
sBaØa Gtßn½y ]TahrN_ & RbmaNviFI AND cMeBaH Bit nImYy² a & b
| RbmaNviFI OR cMeBaH Bit nImYy² a | b
^ RbmaNviFI XOR cMeBaH Bit nImYy² a ^ b
<< rMkileqVg a << b
>> rMkilsþaM a >> b
~ RbmaNviFIbdiesFn_ Bit nImYy² ~ a
]TahrN_ ³
a b a & b a | b a^b 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0
a << N = a*2N
a >> N = 2Na
~1 = 0 ~0 = 1
42
a). ]TahrN_Cak;EsþgGMBIkareRbIRbmaNviFI & ³ ]bmafaeyIgmanGefrcMnYnKt;BIrKW a nig b Edl a = 5 nig b = 10
cUrKNna x = a & b ?
eyIgman ³ a = 5 KW 0 0 0 0 0 1 0 1 & b = 10 KW 0 0 0 0 1 0 1 0
x = a & b KW 0 0 0 0 0 0 0 0
x = 0
b). ]TahrN_Cak;EsþgGMBIkareRbIRbmaNviFI | ³ ]bmafaeyIgmanGefrcMnYnKt;BIrKW a nig b Edl a = 5 nig b = 10
cUrKNna x = a | b ?
eyIgman ³
43
a = 5 : 0 0 0 0 0 1 0 1 |
0 0 0 0 1 0 1 0 b = 10 :
0 0 0 0 1 1 1 1 x = a | b :
x = 15
c). ]TahrN_Cak;EsþgGMBIkareRbIRbmaNviFI ^ ³ ]bmafaeyIgmanGefrcMnYnKt;BIrKW a nig b Edl a = 5 nig b = 10
cUrKNna x = a ^ b ?
eyIgman ³ a = 5 : 0 0 0 0 0 1 0 1 ^
0 0 0 0 1 0 1 0 b = 10 :
0 0 0 0 1 1 1 1 x = a ^ b :
x = 15
d). ]TahrN_Cak;EsþgGMBIkareRbIRbmaNviFI << ³ ]bmafaeyIgmanGefrcMnYnKt; a mYyEdl a = 5
cUrKNna x = a << 2 ? ()ann½yfa cUrKNna x Edles μ InwgtMél a rMkileTA xageqVgcMnYn 2 bit). ENnaM ³ GñkGacemIlesovePA Assembly EdlniyayGMBI Instruction SHL nig SHR.
eyIgman ³ a = 5 KW ³ 0 0 0 0 0 1 0 1
0 0 0 0 0 1 0 1 0 a << 2 KW ³
x = a << 2 KW ³ 0 0 0 1 0 1 0 0
dUecñH x = 20
e). ]TahrN_Cak;EsþgGMBIkareRbIRbmaNviFI >> ³ ]bmafaeyIgmanGefrcMnYnKt; a mYyEdl a = 5
cUrKNna x = a >> 2 ? ()ann½yfa cUrKNna x Edles μ InwgtMél a rMkileTA xagsþaMcMnYn 2 bit.
eyIgman ³ a = 5 KW ³ 0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0 1 a >> 2 KW ³
x = a >> 2 KW ³ 0 0 0 0 0 0 0 1
44
dUecñH x = 1
f ). ]TahrN_Cak;EsþgGMBIkareRbIRbmaNviFI ~ ³ ]bmafaeyIgmanGefrcMnYnKt; a mYyEdl a = 5
cUrKNna x = ~a ? eyIgman ³ a = 5 KW ³ 0 0 0 0 0 1 0 1
x = ~a KW ³ 1 1 1 1 1 0 1 0
dUecñH x = 250
III.5. GaTiPaBrbs;bNþasBaØaRbmaNviFI
enAkñúgkenSamKNna sBaØaRbmaNviFInImYy²GacmanGaTiPaBepSgKña )ann½y faenAkñúgkenSamenaH GacmansBaØaRbmaNviFINamYyRtUv)anGnuvtþmunsBaØaRbmaN viFINamYyepSgeTot. lMdab;GaTiPaBrbs;bNþasBaØaRbmaNviFIRtUv)anbgðaj dUckñúgtaragxageRkam ³
lr bNþasBaØaRbmaNviFI lMdab;RbmUlpþMú 1 ( ) [ ] - > . BIeqVgeTAsþaM 2 ! ~ & * - ++ -- (type)sizeof BIsþaMeTAeqVg 3 * / % BIeqVgeTAsþaM 4 + - BIeqVgeTAsþaM 5 << >> BIeqVgeTAsþaM 6 < <= > >= BIeqVgeTAsþaM 7 == != BIeqVgeTAsþaM
45
8 & BIeqVgeTAsþaM 9 ^ BIeqVgeTAsþaM 10 | BIeqVgeTAsþaM 11 && BIeqVgeTAsþaM 12 || BIeqVgeTAsþaM 13 ?: BIsþaMeTAeqVg 14 = += -= *= /= %= <<= >>=
&= ^= |= BIsþaMeTAeqVg 15 , BIeqVgeTAsþaM
ENnaMbEnßmGMBIkaremIltaragxagelI ³
1. bNþasBaØaRbmaNviFIxagelIEdlsresrenAelIbnÞat;EtmYy enaH)an n½yfamanGaTiPaBesμI²Kña nigbNþasBaØaEdlfitenAbnÞat;xagelI manGaTiPaBCag bNþasBaØaEdlfitenAbnÞat;xageRkamva.
2. cMeBaHbNþasBaØaEdlmanGaTiPaBesμ IKña lMdab;énkarKNnaGaccab; epþImBIeqVgeTAsþaM b¤BIsþaMeTAeqVgvij dUc)ancg¥úlbgðajenAkñúgkUeLan {lMdab; RbmUlpþMú}. ]TahrN_dUcCa ³
+ cMeBaHkenSam * --px eyIgeXIjfa sBaØa * nigsBaØa -- man GaTiPaBesμIKña k¾b;uEnþlMdab;énkarKNnaKWBIsþaMeTAeqVg. dUecñHRtUvKNna --px
rYceTIbyklT§plEdlTTYl)aneTAeFVIRbmaNviFIKuNtameRkay.
+ cMeBaHkenSam 8/4*6 eyIgeXIjfa sBaØa / nigsBaØa * man GaTiPaBesμ IKña k¾b:uEnþlMdab;énkarKNnaKWBIeqVgeTAsþaM. dUecñHmann½yfa RtUvKNna 8/4
rYceTIbyklT§pl 2 EdlTTYl)anenaHeTAeFVIRbmaNviFIKuN CamYy 6
dUecñHlT§plrbs;kenSam 8/4*6 KW 12.
3. edIm,IsresrkenSameGay)anRtwmRtUvbMput enaHRtUveRbIsBaØargVg;Rkck
46
47
III.6. karbegáIn nig karbnßaytMélrbs;Gefr
C )anpþl;BIrRbmaNviFImYy Operand edIm,IeFVIkarbgáIn b¤bnßytMélrbs;Gefr (TaMgcMnYnKt; nigcMnYnBit). karI ++ eRbIsMrab;bUktMél 1 bEnßmeGayeTAelI Operand cMEnkÉkarI --
vijKWsMrab;dkyktMél 1 ecjBI Operand EdlenACab;vaenaHvij.
]TahrN_fa eyIgmanGefr n EdlkMBugpÞúktMélesμ I 5 enaHeyIg)an ³ eRkayRbmaNviFI ++n enaH n nwgTTY)antMél 6 eRkayRbmaNviFI --n enaH n nwgTTY)antMél 4
karI ++ nig -- GacQrenAxagmux Operand b¤k¾xageRkay Operand k¾b:uEnþ lT§plEdlTTYl)anmanPaBxusKñabnþic. dUecñHeyIgGacsresr ³
++n n++ --n n— PaBxusKñarvag ++n nig n++ KW ³
+ kñúgRbmaNviFI n++ (Postfix) enaHtMél n nwg RtUv)anekIneLIgEfm mYytMéleTot eRkayeBltMélcas;rbs; n RtUv)aneKeRbIR)as;rYc.
+ cMENkÉ ++n (Prefix) vijenaH tMélrbs; n nwgRtUv)anekIneLIgmYy tMéleTot TaMgmuneBltMélcas;rbs;vaBMuTan;RtUv)aneKeRbIR)as;enAeLIy.
]bmafaeyIgmanGefr n EdlkMBugpÞúktMél 5 enaHeyIg)an ³ x = n++ ; /*P¢ab;tMél 5eGayeTA x bnÞab;mk n TTYl)antMél 6 */
cMENkÉ ³ x = ++n ; /*n TTYl)antMél 6 rYck¾P¢ab;tMél 6 enaHeGayeTA x */
cMeBaHkarI -- vijk¾dUcKñaCamYykarI ++ xagelIEdrRKan;EttMélrbs; Operand RtUv)andkecjmYytMélb:ueNÑaH.
eRkAGMBIRbmaNviFIxagelIenH kñúg C enAmankarImYycMnYneTotsMrab;Gnuvtþ RbmaNviFIdUcCa ³
n = n + 5 ; Gacsresr n += 5;
m = m - 5 ; Gacsresr m -= 5;
x = x *(y + 5) ; Gacsresr x *= y+5;
z = z /(a + b) ; Gacsresr z /= a+b;
y = y % a ; Gacsresr y % = a;
karIesμI = karIesμI RtUv)aneKeRbIsMrab;P¢ab;tMélrbs;kenSamxagsþaMkarW eGayeTA kenSamEpñkxageqVgkarI. eyIgGaceRbIkarIesμIsMrab;P¢ab;tMéleGayGefrdUcTMrg; xageRkam ³
a = b = c = 5; eyIgTTUl)an a = 5 b = 5 nig c = 5
eyIgk¾GacP¢ab;tMéleGaybNþaGefrdUc]TahrN_xageRkamenH ³ int x, y, z; /* RbkasGefr */
z = (y = 3) * (x = 5); eyIgTTUl)an x = 5
y = 3 nig z = y * x = 3 * 5 = 15
dUecñHeyIgTTYl)an z = 15 III.7. kenSamlkçxNÐ Conditional Expression
kenSamlkçxNÐCakenSamEdlmanTMrg;dUcxageRkam ³ e1 ? e2 : e3 kñúgenaH e1, e2 nig e3 KWkenSamepSg²Kña. tMélrbs;kenSamlkçxNÐenHnwg es μ I e2
RbsinebIkenSam e1 Bit EtpÞúyeTAvijvanwgTTYlyktMélrbs;kenSam e3. RbsinebI e2 nig e3 CaRbePTcMnYnKt; enaHtMélrbs;kenSamTaMgmUlk¾CacMnYnKt; Edr EtebI e2 b¤ e3 CacMnYnBitenaHtMélrbs;kenSamk¾manRbePTCacMnYnBitEdr.
]TahrN¾ x = (a > b) ? a:b
48
x nwgTTYl)antMélesμ I a RbsinebI a > b EtebIpÞúyeTAvijenaH x nwg TTYl)antMéles μ I b.
printf(“\n%f”, a<b?a:b); Statement xagelIenHmanmuxgarbgðajelIeGRkg;nUvtMélmYyEdlCatMél Gb,rimarvag a
nig b. kmμviFIxageRkamenHCa]TahrN_bgðajGMBIrebobeRbIkenSamlkçNÐ. CadMbUg
kmμviFIdMrUveGayGñkeRbIbBa©ÚltMéleGayGefr n bnÞab;mkeTIbbBa©ÚleGayGefr m
rYcehIyeTIbbgðajtMélGtibrimarvagtMél n nig m. kmμviFI /*Prog2_4.C*/
#include <stdio.h> #include <conio.h> void main() { int n, m, max;
printf("\nInput n="); scanf("%d",&n); /* bBa©ÚltMéleGayGefr n */ printf("\nInput m="); scanf("%d",&m); /* bBa©ÚltMéleGayGefr m */
max = (m>n)?m:n; /* eRbobeFobemIletI m FMCag n b¤eT */
printf("\nMax = %d",max); getch();
} lT§plelIeGRkg;KW ³
Input n = 10 Input m = 20 Max = 20
49
III.8. karbþÚrRbePTTinñn½y Casting Data Type
kñúgeBleFVIRbmaNviFI karbþÚrRbePTTinñn½yeRcInEtekItmaneLIgedaysV½y RbvtþidUcCa³ - enAeBlEdlkñúgkenSammaneRcInFatu ehIyFatunImYy²manRbePT Tinñn½yepSgKña. - enAeBlEdlP¢ab;tMélRbePTNamYyeGayeTAGefrRbePTepSg Edl
krNIenHEtgekItmaneLIgkñúgeBlP¢ab;tMéleGayeTAeQ μaH Function edayBakü KnøwH return b¤ k¾epÞrtMélBI Argument eGayeTA)a:ra:Em:Rt nigkñúgkrNImYycMnYneTot.
CamYyKñaenHEdr kñúgeBleFVIRbmaNviFI eyIgk¾GacbþÚrRbePTTinñn½yBIRbePT mYyeTACaRbePTmYyepSgeTot edaysresrtamTMrg;dUcxageRkam ³
(Data type) kenSam
]TahrN¾ ³
(float)(a+b) karbþÚrRbePTTinñn½ykñúgkenSam EtgEtekIteLIgedaysV½yRbvtþienAeBlEdl
bNþaFatuenAkñúgkenSam manRbePTTinñn½yepSgKña ehIyenAeBlenaHRbePT Tinñn½yEdlmanTMhM Memory tUcCag nwgRtUvbþÚreTAtamRbePTTinñn½yrbs;Fatu EdlFMCag. ]TahrN¾dUcCa eyIgeFIVRbmaNviFI a+b EdlkñúgenaH a manRbePT Tinñn½yCa int cMEnk b manRbePTTinñn½yCa long dUecñHeBleFIVRbmaNviFIenH a nwg RtUv)anbþÚredaysV½yRbvtþieTACaRbePT long (BIeRBaH int
manTMhM Memory 2 byte tUcCag long EdlmanTMhM Memory rhUtdl;eTA 4 byte). eyIgGacbþÚrRbePTTinñn½yBIRbePTmYy eTACaRbePTmYyeTotepSgeTot)an
dUcbNþa]TahrN_xageRkamenaH ³ int a, b, x; float y, z;
50
51
a = 10; /* P¢ab;tMéleGayGefrcMnYnKt; a = 10 */
b = 3; /* P¢ab;tMéleGayGefrcMnYnKt; b = 3 */
x = a/b; /* eyIgTTYl)an x = 3 eRBaHkñúgkrNIEckcMnYnKt;eGaycMnYnKt; enaHeyIgnwgTTYl)anlT§plCacMnYnKt; */
y = a/b; /* eyIgTTYl)an y = 3.000 eRBaHEckcMnYnKt;eGaycMnYnKt;enaH eyIgnwgTTYl)anlT§plCacMnYnKt; */
y = (float)a/b; /* eyIgTTYl)an y = 3.333333 eRBaHeBlenHcMnYnKt; a
RtUv)anbMElgeTACaRbePTcMnYnBit dUecñHkenSam y enaH)ann½yfa EckcMnYnBiteGaycMnYnKt; lT§plEdlTTYl)anRtUvEtCacMnYn Bit (cMnYnTsPaK) */
y = (float)(a/b); /* TTYl)an y = 3.000 eRBaH a/b )anlT§plCacMnYnKt;KW 3
rYcehIyeTIbbMElglT§plenaHeTACaRbePT float )anCa 3.00 ehIyP¢ab;eGay y Etmþg. */
x = (float)(a/b); /* eyIg)an x = 3 BIeRBaHlT§plénkarEckKWCacMnYnKt; 3
bnÞab;mkbMElgvaeTACaRbePT float dUecñHlT§plenaHkøayeTACa 3.00
ehIyP¢ab;eGayeTA x. EtedayGefr x manRbePTCa int
dUecñHlT§plenaHRtUv)anbþÚrRbePTedaysV½yRbvtþieTACaRbePT cMnYnKt; (int) */ z = 5.00; x = a/z; /* lT§plKW x = 2 */
IV. Statement
Statement kMNt;bNþakargarEdlkm μviFIRtUvGnuvtþn¾edIm,IKNnabNþaTinμn½yEdleyIg)an declaration . manBIr y:agKW statement eTal nig statement manTMrg; ³ + Statement eTalCa statement EdlKμanpÞúkbNþa statement epSgeTot. dUcCa Assignment ( a = 2 ) .
+ Statement man structure : Ca statement EdlmanpÞúkbNþa statement epSgeTotkñúgva . dUcCa for.., while .., do ... while; . kúñg Turbo C cugbBa©b;én statement nImYy²RtUvmansBaØa Semi colon (;) Ex: x = 2; y = 3 < 5* 8; Z=PI;
= = = = = * = = = = =
52
53
ageRkam ³ 4)
b) )) || ) >= 1000) 100)
8.
(20 >> 4) 9. kçN³RtwmRtUv ³
j
sMNYr 1. cUrniyayGMBIPaBxusKñarvag Character ‘\0’ nig ‘0’ ? 2. cUrniyayGMBIPaBxusKñarvag “A” nig ‘A’ ? 3. etIGefr nigcMnYnefrKWCaGVI? nigRtUv)aneKeRbIsMrab;eFVIGVI? 4. cUrkMNt;tMélrbs;kenSamxageRkam ³
x1 = 10%3 x2 = 10/3 x3 = 10/3.0 x4 = 10.0/3 x5 = 10.0/3.0 cUrkMNt;tMélken5. SamxageRkam ³ a). 5.6 + 2.7 + 20/6 + 8.0 b). 5.6 + 2.7*20/6 - 8
6. a). x1 = (6+5*3/2) <= (7/4*2+10/cUrKNnakenSameRbobeFobx
b). x2 = (6+5*3/2) == (7/4*2+10/4) c). x3 = (6+5*3/2) != (7/4*2+10/4)
7. a = 10; b = 5; c = 7; cUrKNnaRbmaNviFIxageRkam ³
x = (((a+ <= (a-c (a+b+cy = (!(a+b) <= 4 || (a-c) > 2) && (a+b+c <cUrkMNt;tMélrbs;bNþakenSamxageRkam ³ x1 = 10 & 5
5 x2 = x1 | 25 –x3 = x1 ^ x2
) +x4 = (10 << 2cUrbgðajbNþakenSamEdlmanla). (i = j)++ b). i+j++ c). ++(i+j) d). ++i+++