មេរៀនទី២ expression and statement

29
emeronTI2 ³ kenSam Expression & Statement I. RbePTTinñn½y I.1. niymn½y Ti nñ n½ y (Data) KÅ CabNþ aBtmanEdlmanBi tdUcCa 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 ³

Upload: sopheap-sang

Post on 09-Dec-2015

47 views

Category:

Documents


6 download

DESCRIPTION

ចូលរួមជាមួយគ្នា

TRANSCRIPT

Page 1: មេរៀនទី២ Expression and Statement

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 ³

Page 2: មេរៀនទី២ Expression and Statement

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

Page 3: មេរៀនទី២ Expression and Statement

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;

Page 4: មេរៀនទី២ Expression and Statement

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

Page 5: មេរៀនទី២ Expression and Statement

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

Page 6: មេរៀនទី២ Expression and Statement

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

Page 7: មេរៀនទី២ Expression and Statement

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

Page 8: មេរៀនទី២ Expression and Statement

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

Page 9: មេរៀនទី២ Expression and Statement

]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 -----------------------*/

Page 10: មេរៀនទី២ Expression and Statement

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

Page 11: មេរៀនទី២ Expression and Statement

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.

Page 12: មេរៀនទី២ Expression and Statement

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

Page 13: មេរៀនទី២ Expression and Statement

]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

Page 14: មេរៀនទី២ Expression and Statement

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

Page 15: មេរៀនទី២ Expression and Statement

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 ³

Page 16: មេរៀនទី២ Expression and Statement

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

Page 17: មេរៀនទី២ Expression and Statement

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

Page 18: មេរៀនទី២ Expression and Statement

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

Page 19: មេរៀនទី២ Expression and Statement

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 :

Page 20: មេរៀនទី២ Expression and Statement

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

Page 21: មេរៀនទី២ Expression and Statement

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

Page 22: មេរៀនទី២ Expression and Statement

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

Page 23: មេរៀនទី២ Expression and Statement

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;

Page 24: មេរៀនទី២ Expression and Statement

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

Page 25: មេរៀនទី២ Expression and Statement

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

Page 26: មេរៀនទី២ Expression and Statement

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

Page 27: មេរៀនទី២ Expression and Statement

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 ) .

Page 28: មេរៀនទី២ Expression and Statement

+ 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

Page 29: មេរៀនទី២ Expression and Statement

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+++