មេរៀនទី 07-array and pointer

21
emeronTI7 ³ Array & Pointer I. Array : GefrmYyGacpÞúk)antMélEtmYyKt; na MeGayedI m, IpÞúktMélrbs;sV Í tmYy b¤tarag mYy)anluHRtaEteyI geRbI eRcI nGefr k¾b: uEnþ enAeBlenaHvamanlkçN³sμ úKsμ ajxøaMg Nas;. dUecñHedIm,IeCosvagkarRbkasGefreRcIndUckrNIxagelI enaHeKeRbI Array vij. I.1. GVIeTACa Array : Array KICaeQμ aHénsMnuMmYyEdlmaneRcInFatu nigFatunImYy²rbs;vaman RbePTTinñn½ydUcKña nigGacpÞúk)antMélmYyerog²xøÜn. karRbkas Array edIm,IeRbI k¾manlkçN³dUckarRbkasGefrFmμ taEdr EtRtUvcaMfa RbePTTinñn½yrbs; Array KWCaRbePTTinñn½yrbs;FatunImYy²én Array. Array RtUv)anRbkastamTMrg;dUcxageRkam ³ RbePTTinñn½y eQμ aHrbs; Array [cMnYnFaturbs; Array]; Datatype VariableName[size of array]; karRbkas Array GacmaneRcInvimaRt GaRs½yeTAtamdMrUvkar. edIm,IEsVg yl;GMBIvimaRtrbs; Array cUrBinitüemIl]TahrN_xageRkam ³ int a[10], b[4][2]; float x[5], y[3][3];

Upload: sopheap-sang

Post on 09-Dec-2015

100 views

Category:

Documents


13 download

DESCRIPTION

មេរៀនទី 07-Array and Pointer

TRANSCRIPT

Page 1: មេរៀនទី 07-Array and Pointer

emeronTI7 ³

Array & Pointer I. Array : GefrmYyGacpÞúk)antMélEtmYyKt; naMeGayedIm,IpÞúktMélrbs;sV‘ÍtmYy b¤tarag mYy)anluHRtaEteyIgeRbIeRcInGefr k¾b:uEnþenAeBlenaHvamanlkçN³sμúKsμajxøaMg Nas;. dUecñHedIm,IeCosvagkarRbkasGefreRcIndUckrNIxagelI enaHeKeRbI Array vij. I.1. GVIeTACa Array :

Array KICaeQμaHénsMnuMmYyEdlmaneRcInFatu nigFatunImYy²rbs;vaman RbePTTinñn½ydUcKña nigGacpÞúk)antMélmYyerog²xøÜn. karRbkas Array edIm,IeRbI k¾manlkçN³dUckarRbkasGefrFmμtaEdr EtRtUvcaMfa RbePTTinñn½yrbs; Array

KWCaRbePTTinñn½yrbs;FatunImYy²én Array. Array RtUv)anRbkastamTMrg;dUcxageRkam ³

RbePTTinñn½y eQ μaHrbs; Array [cMnYnFaturbs; Array]; Datatype VariableName[size of array];

karRbkas Array GacmaneRcInvimaRt GaRs½yeTAtamdMrUvkar. edIm,IEsVg yl;GMBIvimaRtrbs; Array cUrBinitüemIl]TahrN_xageRkam ³ int a[10], b[4][2]; float x[5], y[3][3];

Page 2: មេរៀនទី 07-Array and Pointer

xagelIenHCakarRbkas Array cMnYn 4 KW a, b, x, y EdlmanGtßn½ydUcxag eRkam ³

- cMeBaH Array TI 1 manRbePTTinñn½yCa int, eQμaH a, cMnYnvimaRtKW 1, cMnYnFatuKW 10. Array a manFatu 10 KW a[0], a[1], a[2],…, a[9] EdlFatunImYy²enH nwgRtUv)aneKeRbIsMrab;pÞúktMélmYyEdlmanRbePT Ca int. dUecñH Array a

eBlenHGacpÞúk)an 10 tMélRbePT int. - cMeBaH Array TI 2 manRbePTTinñn½yCa int, eQμaH b, cMnYnvimaRtKW 2, cMnYnFatuKW 4

KuNnig 2 es μI 8 (vimaRtTImYyKuNCamYyvimaRtTIBIr). Array b man 8

FatudUcxageRkamKW ³ b[0][0] b[0][1] b[1][0] b[1][1] b[2][0] b[2][1] b[3][0] b[3][1] EdlFatunImYy²rbs; b KW b[i][j] GacpÞúk)antMélmYymanRbePTCa int. dUecñH Array b

GacpÞúkcMnYnKt; int )ancMnYn 4 CYredk nig 2 CYrQr. - cMeBaH Array TI 3 manRbePTTinñn½yCa float, eQμaH x, cMnYnvimaRtKW 1,

nigcMnYnFatuman 5 KW x[0], x[1]…,x[4]. FatunImYy² x[i] GaceRbIsMrab; pÞúktMélRbePTTinñn½yCa float dUecñH Array x eBlenHGacpÞúk)ancMnYn 5

tMélcMnYnBit float. - cMeBaH Array TI 4 manRbePTTinñn½yCa float, eQμaH y, cMnYnvimaRtKW 2,

nigcMnYnFatuman 9 KW ³ y[0][0] y[0][1] y[0][2] y[1][0] y[1][1] y[1][2] y[2][0] y[2][1] y[2][2]

eBlenH FatunImYy²rbs; y KW y[i][j] GacpÞúk)anmYytMélRbePT float dUecñH Array

y TaMgmUlGacpÞúk)ancMnYn 9 tMélcMnYnBit float.

142

Page 3: មេរៀនទី 07-Array and Pointer

I.2. kareRbIR)as; Array :

edIm,Iyl;eGay)anc,as;GMBIkareRbIR)as; Array eyIgBinitüemIl]TahrN_ xageRkam ³ I.2.1. bBa©ÚltMél nig GantMélBI Array :

Ex1: Read bNþatMéleTAeGay Array x BI Keyboard # include <stdio.h> # include <conio.h> # define SIZE 5 main ( ) { int x [SIZE]; int i ; for ( i = 0; i <=SIZE – 1; i ++ ) { printf ( “x[%d] =”, i ); scanf (“%d”,&x[i]); } /* display Array on screen */ printf (“\n Display Array x : ”); for ( i =0; i <= SIZE –1; i ++) printf ( “\n x[%d] = %d”, i, x[i]); getch ( ); return (0); } x[0] = 12

x[1] = 34

x[2] = 56

Display Array x: x[0] = 12 x[1] = 34 x[2] = 56

cMNaM ³ karsresrkenSam <= SIZE - 1 nig < SIZE kñúg Loop for enaHmann½ydUcKña . eyIgGacsresr Access data eTAeGay x enAelIbnÞat;EtmYy)an ³ # include <stdio.h> # include <conio.h> # define SIZE 5 main ( ) { int x[SIZE]; int i; printf (“\n Enter Value into Array on the one line :”); for ( i = 0; i <SIZE ; i ++)

143

Page 4: មេរៀនទី 07-Array and Pointer

{ scanf (“%d”, &x[i]); } printf (“\n Display Array on screen : ”); for ( i = 0; i <SIZE; i ++ ) printf (“\n x[%d] = %d”; i, x[i]); getch ( ); retune (0); }

Enter Value into Array on one line : 12 34 56 Display Array on screen :

x[0] = 12 x[1] = 34 x[2] = 56

Ex2: bUk One dimensional Array : C = A + B # include <conio.h> # include <stdio.h> # define SIZE 5 main ( ) { int A[SIZE], B[SIZE], C[SIZE]; int i; clrscr ( ); for ( i = 0 ; i <= SIZE - 1 ; i ++ ) { printf (“A[%d] =”, i); scanf (“%d”, &A[i]); } for ( i = 0; i <SIZE; i ++ ) { printf (“\n B[%d] =”, i); scanf (“%d”, &B[i]); } for ( i = 0; i <SIZE ; i ++ ) { C[i] =A[i] + B[i] } getch ( ); return (0); }

144

Page 5: មេរៀនទី 07-Array and Pointer

145

I.2.2. kMNt;tMéleGay Array Camun :

Array Gac Create Value eGayva)anenAeBleyIg Declaration : int x[3] = { 7, 4, 5 } ;

mann½yfaeBleyIg Declaration, enaHeyIgtagbNþatMéleGay Array Etmþg x[0] = 7; x[1] = 4; x[2] = 5 ;

I.2.3. Array én Characters :

bIRbePT Declaration xageRkamenHsmmUlnwgKña . char text1 [5] = { ‘D’, ‘C’, ‘f’, ‘s’, ‘p’ }; char text2 [5] = “DCfsp”; char text3 [ ] = “DCfsp”; text[0] = ‘D’; text[1] = ‘C’; text[2] = ‘f’; text[3] = ‘s’; text[4] = ‘p’;

Et Tucbo C k¾eRbI Declaration Array of character dUcKñanig array of string . string kñúg turbo

C RtUv)an bBa©b;edayFatucugeRkaymantMélesμ I Character NULL, Ca character dMbUgman Code =

0 in ASCII Table, RtUvtagkñúg Turbo C edaysBaØa ‘\0’ . dUecñH text1, text2 manRKb;lμm 5kEnøgsMrab; 5 characters, dUecñHenAxVHmYykEnøgeToteGay ‘\0’,

dUecñHRtUv sresreLIgvij char text1 [6] = { ‘D’, ‘C’, ‘f’, ‘s’, ‘p’ }; char text2 [6] = “DCfsp”;

ebImincg;rab;eTcUl Declaration: char text3[ ] = “DCfsp”

Computer pþl;eGayeyIg 6Enøg/ 5kEnøgsMrab; Characters nig 1kEnøgsMrab;sBaØa ‘\0’ . Ex3: Convert string BIGkSrtUceTAGkSrFM ³ # include <stdio.h> # include <conio.h> # include <ctype.h> # define SIZE 80 main ( ) { char text [SIZE]; int count; for (count = 0; count <= SIZE –1; count ++ ) text[count] = getchar ( ); for (count = 0; count < SIZE; count ++ )

Page 6: មេរៀនទី 07-Array and Pointer

putchar (toupper (text[count])); getch ( ); return (0); }

Ex4: rab; Characters:

]bmaeyIgcg;rab;kñúg 100dgénkarcucbBa©Úl Character BI Keyboard,

cMnYnelcecjénbNþa character BI ‘A’ dl; ‘Z’ manb:unñan ? Variable count RtUv)an Declaration

xageRkamenH # include <stdio.h> # include <conio.h> # include <ctype.h> # define SIZE 80 main ( ) { char text[SIZE]; int i, count[‘Z’ – ‘A’ + 1]; clrscr ( ); for ( i = 0; i <SIZE; i ++ ) text [i] = toupper (getchar ( ) ); for ( count = 0; count <SIZE, count ++ ) putchar (text [count] ); for ( i = 0; i < ‘Z’ - ‘A’ + 1; i ++) count [i] = 0; for (i = 0; i < SIZE; i ++) { printf (“%d”, count [text [i] – ‘A’] ); count [text [i] – ‘A’] ++; printf (“%d”, count [text [i] – ‘A’]); } for ( i = ‘A’; i <= ‘Z’; i ++) if (count [i – ‘A’] ) printf (“\n number of characters %c = %d”, i, count[i – ‘A’]); getch ( ); return (0); }

Note: km μviFIxagelIebIeyIg Run km μviFIenaHeyIgRtUv Input character rhUtdl; 80 character eTIbQb;. dUecμH eyIgKb,Isresrkm μviFIedayeGay Read character rhUtdl;CYb Enter eTIbQb; .

146

Page 7: មេរៀនទី 07-Array and Pointer

I.3. tMerob Array

kar Sort Fatu Array tamlMdab;ekIn b¤cuH mansar³sMxan;kñúgkarKNna Array . enHCa Algorithm EdlRtUveron . xageRkamenHnwgGFib,ayBIreboberobbNþaFaturbs; Array

tam]TahrN_ ³ Ex5: Sort Array # include <stdio.h> # include <conio.h> # include <math.h> # define SIZE 5 main ( ) { int x[SIZE]; int i, j, temp; for ( i = 0; i <= SIZE –1; i ++ ) { printf (“x[%d] = ”, i); scanf (“%d”, &x[i]); } /* sort Array */ for ( i = 0; i < SIZE –1; i++) for ( j = i +1; j < SIZE; j++ ) { if (x [i] > x [j]) { temp = x[i]; x [i] = x [j]; x [j] = temp } } printf (“\n The Array After Sort: ”); for (i =0; i < SIZE – 1; i++) printf (“%7d”, x[i]); getch ( ); return (0); }

lTæpl Run program :

x[0] = -1 x[1] = 456 x[2] = 34 x[3] = -312 x[4] = -56

The Array After Sort :

147

Page 8: មេរៀនទី 07-Array and Pointer

xageRkamenHCakm μviFI Sort Array RtUv)ansresreRkamrag Function : Ex6: # include <stdio.h> # include <conio.h> # include <math.h> # define SIZE 5 void Sort_Array ( int n, int x [ ] ); main ( ) { int x[SIZE] int i; for ( i =0; i <SIZE; i++) { printf (“x[%d] = ”, i); scanf (“%d”, &x[i] ); } Sort_Array (size, x); printf (“\n Array x : ” ); for ( i =0; i <Size; i++ ) printf (“%7d”, x[i] ); getch ( ); return (0); } void Sort_Array (int n, int x [ ] ) { int temp, i, j; for ( i =0; i < n – 1; i++) for (j = i + 1; j < n; j++ ) { if (x[i] > x[j] ) { temp = x[i]; x[i] = x[j]; x[j] = temp; } } return ; }

kñúg]TahrN_xagelIeyIgeXIjrebobbBa¢Ún Parameter Ca Array eGayeTA Function . enAeBl Declaration Function, eyIgRKan;EtbBa¢Ún Declaration Array Edlman [ ] edIm,IbBa©Úl Address . ebIeyIgbBa¢Ún Array man Index enaHminEmnCa Address KWCa Value . void Sort_Array (int n, int x[ ]) ;

nwgeBl Call Function, eyIgRKan;EtbBa¢ÚneQμaH Array b:ueNÑaH Sort_Array (size, x);

148

Page 9: មេរៀនទី 07-Array and Pointer

149

II. Pointer nig Linking with Array :

- cMnucEdlRtUvykcitþTukdak;kñúg]TahrN_xagelIKW eRkayBI Call Function Sort_Array,

statement Edl print lTæplmkelI Screen sßitenAxageRkA Function Sort_Array ¬kñúg main

Function) EtenAEt print RtUv . eyIgdwgfa parameter EdlbBa¢ÚneGay Function Sort_Array Ca Value parameter . tamBitcg; print RtUv eyIgRtUvEtsresr statement Edl print

lTæplenaHenAkñúg Function Sort_Array Etmþg . enaHKWedaysarEteQμaH Array Ca Address, )ann½yfa pointer point eTAFatutMbUgrbs; Array . karyl;BI Gtßn½yrbs; Array kñúg C TamTaeGayeyIg RtUvmanKMnitmUldæanGMBI Pointer . eyIgeRbIbNþasBaØa Operator pointer nig Address dUcxageRkam ³ * p CaTinñn½yEdlpÞúkkñúg Address p, niyaymYyrebobeTot p Ca memory pÞúk address

rbs; *p b¤Ca Pointer point eTA Variable pÞúktMél *p . &x Ca Address rbs; Variable x . pointer Ca Variable pÞúk Address, KμanpÞúktMéleT . ]bmaeyIg Declaration variable x,

p nig assignment dUcxageRkam ³ int x = 15; /* x Ca Variable mantMél = 15 */

int *p; /* Declaration Tinñn½yCacMnYnKt;man address KW p */

p = &x ; /* p TTYltMél address rbs; x */

dMbUg pointer p Kμan Value eT/ EteRkayeBlman assignment p = &x enaH p nig point eTA x . eBlenaH Pointer Ca Variable pÞúk tMél Address én memory rbs; x . ehIy p xøÜnÉgk¾man address pÞal;rbs;xøÜn EdrKW &p . Et address rbs; p eyIgminykcitþTukdak;eT/ EteyIgKiteTAdl;Gtßn½y memory KW address p . cUrBinitürUbxageRkam ³ . cUrykcitþTukdak;Gtßn½y F0F4, KWCatMélsresreRkamrag Hexa, smmUl nig 2 bytes . GñkmincaM)ac;xVl;KitfatMélenaHb:uNÑaeTkñúgelxeKaldb; . cMeBaH variable p enaH F0F4 CatMél rbs; p . cMeBaH x, vaCa address KW &x .

Page 10: មេរៀនទី 07-Array and Pointer

memory pÞúk pointer : memory pÞúk data kMBug Analysis

Address Meaning Memory Address Meaning

Memory 56FO 1234 FOFO F6 56F2 5678 FOF2 73 56F4 &p

FOF4 p= &X

point to FOF4 &x

15 x = *p

ebIcg; p Ca pointer point to variable x, kñúg program eyIgRtUv Assignment p = &x;

rMlwkeLIgvijbNþabBaðaEdlmanTMnak;TMngCamYy Array : CamYy Declaration : int x[SIZE];

enaHtamBit x Ca address énFatutMbUgrbs; Array . eyIgGacsresr x smmUl nwg &x[0]

Note : cUlcMNaMcMnucmYyKW manEteQμaHrbs; Array eTEdlmantMél address, eBalKW pointer . cMENkeBl sresrFaturbs; Array, enaHeQ μaHrbs; Array CamYysBaØa [ ] Edlman Index,

enaHvaCa Variable mYy/ mann½yfa x b¤ x[ ] Ca variable pointer cMENk x[0], x[1] Ca Variable

Fm μtavij . Ex: BinitütMélbNþa pointer # include <stdio.h> # include <conio.h> main ( ) { int number ; int *pointer ; number = 10; printf (“\n Address of number : %p”, &number ); printf (“\n value of number : %d”, number); pointer = &number; /* pointer point to number */ printf (“\n Address of pointer : %p”, &pointer ); printf (“\n value of pointer : %p”, pointer ); printf (“\n value have point to is : %d”, *pointer); getch ( ); return (0); }

150

Page 11: មេរៀនទី 07-Array and Pointer

The Result on screen :

151

&number number &pointer pointer * pointer

Address of number : 8 EEA : OFFE Value of number : 10 Address of pointer : 8EEA : OFFA Value of pointer : 8EEA : OFFE Value have point to is : 10

+ format sMrab; print pointer KW %p . Ex : rebob Declaration nigeRbIR)as; pointer : static char *msg = “rose”;

C nwgpÞúk String enAkñúg Array rYmman5Fatu . CamYyenaH C k¾erobcM memory edIm,IpÞúk pointer msg . pointer enHnwgRtUv)ancat;TukdUcCa Variable mYy/ dUecñHvak¾GacERbRbYltMél)an . cUlBinitü Looping xageRkam ³ while ( *(msg) != ‘\0’) putchar (* (msg++));

CamYy Declaration Void Sort_Array (int n, int x[ ]);

eyIgyl;fa parameter x[ ] Ca Address rbs; Array x, KWCa Address énFatutMbUgrbs; Array . Address enHmunnigeRkay Function Sort_Array ( ) Gnuvtþn_/ vaminERbRbYl . Function

nwgeFVIeGayERb RbYl Gtßn½ypÞúkRtg; Address x, minEmneFVIeGayERbRbYl Address x eT . cUrBinitübNþa]TahrN_ xageRkam ³ Ex 10: # include <stdio.h> # include <conio.h> main ( ) { int Array [4], *ptr1, index; float Value [4], *ptr2; ptr1 = Array; ptr2 = Value; for (index = 0; index < 4; index ++ ) printf (“base + %d : %10d %10d \n”, index, ptr1 + index, ptr2 +index );

Page 12: មេរៀនទី 07-Array and Pointer

getch ( ); return (0); }

lTæplnwg print mkBI Screen dUcxageRkam ³ base + 0 : ^^^^^ 12345 ^^^^^ 31890 base + 1 : 346 913 base + 2 : 36 345 base + 3 : 28934 12891

CamYy Declaration : float value[4] , *ptr2;

Note: eyIgdwgfa Value (array pÞúk Value ) Ca Array man4FatuehIy Value Ca Address

rbs;FatutMbUg . *ptr2 mann½yfa ptr2 Ca pointer point eTA float, *ptr2 Ca Variable manRbePT float, RtUv)anpÞúkkñúg memory, man Address KW ptr2 . eQμaH Array GacsresredayKμansBaØa [ ] )an/ enaHKW Address énFatutMbUg . ptr1 = Array; /*ptr1 point to Array */

+ mancMnucmYyEdlRtUvykcitþTukdak;/ KW kñúg Turbo C, Variable pointer RtUvekIneLIg 1 nigmin ekIntMél Address eLIg1eT/ Etva ekIneLIgTMhMsmmUlnwgTMhMTinæn½yEdlva point eTAenaH . ebIeyIg sresr ptr2++ enaHvanigekIneLIg 4 eRBaHRbePT float manTMhM 4 byte . kñúg]TahrN_xagelI ³ Array + 2 = = &Array[2] *(Array +2) = = Array[2]

RbmaNviFIGnuvtþn_CamYy pointer :

manEtRbmaNviFIxageRkameTEdlGnuvtþn_CamYy pointer )an ³ - RbmaNviFI Assignment (=)

- RbmaNviFIeRbobeFob (= =) b¤ ( != )

+ RbmaNviFIekInEfm Address : dUckñúg]TahrN_xagelI eyIgmanRbmaNviFIKNna Array + 2

enaHKW eyIgRtUvyl;faRbmaNviFIekInEfm Address, eLIg2FatueTot/ KWminEmnekIn Value eLIg 2eT .

152

Page 13: មេរៀនទី 07-Array and Pointer

153

+ bNþatMélrbs; Variable pointer, minGac Read from Keyboard )aneT . EteyIgGac Print vamk elI Screen edayRtUv Format %p .

Constant NULL : NULL CatMél Const BiessmYyeRbIeGaybNþa Variable pointer

ehIyvaRtUv)aneRbIedIm,IbBa¢ak;fa K μan point eTANaTaMgGs; . NULL GactageGayRKb; Variable

RbePT pointer )anTaMgGs; . NULL Ca pointer BiessmYypÞúktMél 0 . ]TahN_ Declaration

NULL dUcxageRkam ³ int n = 0, *pn = NULL;

III. Array eRcInvimaRt (Multidimensional Array) :

Multidimensional Array, Ca Array EdlmanbNþaFatueRcIn Rows, eRcIn Columns. Ex: int x[3] [5];

)ann½yfa Array pÞúkbNþacMnYnKt;/ man 3 Rows, 5Colunm . bNþaFatu Array RtUv)ankMNt; Index dUcrUbxageRkam ³ 0 1 2 3 4

x[0,0] x[0,1] x[0,2] x[0,3] x[0,4] x[1,0] x[1,1] x[1,2] x[1,3] x[1,4]

0 1 2 x[2,0] x[2,1] x[2,2] x[2,3] x[2,4]

Ex: Access Fatu Array x[1,3]; x[i +1, J +3] ...

Ex: Declaration Array epSg float x [3] [5]; char x [3] [5];

begáIntMéleGay Multidimensional Array :

Multidimensional Array GacbegáIttMéldMbUg)an . Ex: int x[3,2] = {(1,2), (3,4), (5,6) }; int x[3,2] = {1, 2, 3, 4, 5, 6};

bNþa]TahrN_ ³ Ex1: program KuN matrix kaer:BICamYyK μa ³ C = A * B

Page 14: មេរៀនទី 07-Array and Pointer

bNþaFatuén Array C, RtUvKNnatamrUbmnþ ³ ijC = kj

n

kik BA *

1∑=

# include <stdio.h> # include <conio.h> # include <math.h> # define N 3 main ( ) { int i, j, k; int A[N][N],B[N][N], C[N][N]; /* Matrix */ /* Read data into Array A */ for (i = 0; i <N; ++i) for ( j = 0; j < N; j++) { printf (“A[%d, %d] =”, i, j ); scanf (“%d”, &A[i][j]); } /* Read data into Array B */ for ( i = 0; i < N; i++) for ( j = 0; j < N; j++) { printf (“B[%d, %d] =”, i, j ); scanf (“%d”, &B[i][j]); } /* C = A * B */ for ( i = 0; i < N; i++ ) for ( j = 0; j < N; j++) { C [i][j] = 0; for ( k = 0; k < N; k++ ) C [i][j] = C [i][j] + A[i][k] * B[k][j]; } /* Display Result on screen */ for ( i = 0; i < N; i++ ) { for ( j = 0; j < N; j++ ) printf (“%4d”, C [i][j]); printf (“\n”); } getch ( ); return (0); }

154

Page 15: មេរៀនទី 07-Array and Pointer

155

Note: rebobmü:ageToteyIgmincaM)ac; Read data into matrix eT/ cUrBinitükMNat;kmμviFIxageRkam eyIg begáItcMnYn Random ehIytagcMnYn Random TaMgenaHeTAeGayFatu Matrix : for ( i = 0; i < N; i++ ) for ( j = 0; j < N; j++ ) A[i] [j] = rand ( );

kñúgenaH Function rand ( ) Ca Function begáItcMnYn Random . km μviFIxagelIeyIg Declaration N = 3, eyIgGacERbRbYltMélrbs; N )an .

Ex 2: bUkBIr Matrix CamYyKña ³ C = A + B

eyIgeRbIrUbmnþ ³ C[i][j] = A[i][j] + B[i][j]

]TahrN_enHGFib,ayrebobepSgkñúgeBlsrserkm μviFI/ KWrebobEdlmanlkçN³RKb;RKan;Cagmun . edayrebobxageRkam ³

- Matrix A nig B RtUvmanFatudUcKña ³ (Rows <= 20, Column <= 30 ) - Read Value into Array - Display the Result on screen # include <stdio.h> # include <conio.h> # define Max_Row 20 # define Max_Column 30

void read_input ( int a[ ][Max_Column], int num_Row, int num_Col ); void Sum (int a[ ][Max_Column], int b[ ][Max_Column], int c[ ][Max_Column], int num_Row, int num_Col ); main ( ) { int numRow , numCol ; int a[Max_Row][Max_Column],b[Max_Row][Max_Column], c[Max_Row][Max_Column]; printf (“Number of Rows :”); scanf (“%d”, &num_Row ); printf (“Number of Column :”); scanf (“%d”, &num_Col); printf (“\n\n Array A :\n”); read_input (a, num_Row, num_Col ); printf (“\n\n Array B :\n”); read_input (b, num_Row, num_Col ); sum (a, b, c, num_Row, num_Col ); printf (“\n\n sum of 2 matrix : \n\n”); write_output ( c, num_Row , num_Col); getch(); } */ Function Read Array integer */

Page 16: មេរៀនទី 07-Array and Pointer

void read_input (int a[ ][Max_Col], int m, int n) { int i, j; for (i = 0; i <m; i++) { printf (“\n please input data %2d \n”, i + 1); for ( j = 0; j <n; ++j) scanf (“%d”, &a[i][j] ); } return ; } /* Calculate sum of to Array intege */ void sum ( int a[ ][Max_Column], int b[ ][Max_Column], int c[ ][Max_Column], int m, int n) { int i, j; for ( i = 0; i , m; i++) for (j = 0; j < n; ++j ) c[i][j] = a[i][j] + b[i][j]; return ; } /* Display the Result on screen */ void write_output ( int a[ ][Max_column], int m, int n) { int i, j; for ( i = 0; i <m; i++ ) { for ( j = 0; j <n; ++j ) printf (“%4d”, a[i][j] ); printf (“\n”); } return ; }

]bmaeyIgRtUvbUk 2 Matrix : Matrix A Matrix B 1 2 3 4 10 11 12 13 5 6 7 8 14 15 16 17 9 10 11 12 18 19 20 21

enaHvanig Display the result on screen

156

Page 17: មេរៀនទី 07-Array and Pointer

lMhat; bNþalMhat;xageRkamKb,IsresrCa Function :

1) sresrkmμviFI edaHRsayRbB½næsmIkarxageRkam³ a11 . x + a12 . y = C1 a21 . x + a22 . y = C2

2) sresrkm μviFI begáIttaragemelxKuN 3) begáIt Matrix X[1..10] [a..10]

a. sresrkm μviFIbegáIt !00 tMél Random sßitenAbenøaHtMélBI 1..10 . b. KNnaplbUkénbNþaFatusßitenAelIGgát;RTUg c. KNnaplbUkkaerénbNþaelxenAelI Column KU d. KNnaplbUk rWskaer:énbNþaelxenAelI Column ess e. etImanb:unμanFatuén Array, EdlmantMélsßitenAcenøaH 4..6

4) sresrkm μviFIKNnaplbUkkaer:énbNþacMnYnGviC¢mankñúg Array Integer . 5) sresrkm μviFIrkcMnYnFMbMput nigcMnYntUcbMputén Array R EdlmancMnYn 15cMnYnBit . 6 ) sresrkm μviFIedaHRsayRbB½næsmIkarxageRkam ³ A11 . X + A12 . Y + A13 .Z = U1 ; A21 . X + A22 . Y + A23 .Z = U2 ; A31 . X + A32 . Y + A33 .Z = U3 ;

7 ) sresrkm μviFIedayeRbI Sub-program, KuN Matrix nig Matrix

- Matrix A manFatu ³ N * L

- Matrix B manFatu ³ L * M

- Matrix C manFatu ³ N * M

8) sresrkm μviFIeFVIkargarxageRkam ³ a. Read bBa©Úl N cMnYnKt;BI Keyboard, N>5 . man Path c,as;las;kñúgeBl Read . b. erobbNþaelxEdlmantMélFMCag 10eTAxagedIm . c. cUrlubFatuTI3 rbs; Array nigFatuTI n . sresrlTæplmkelI Screen

157

Page 18: មេរៀនទី 07-Array and Pointer

9) sMnYrbEnßm ³ 1) etIRtUvkarb:unμan byte sMrab;eRbIeGaykar Declaration dUcxageRkam ³ char ch [ ] = “A”;

a. 0 b. 1 c. 2 d. 3

10) etIRtUvkarb:unμan byte sMrab;eRbIeGaykar Declaration dUcxageRkam ³ char ch [ ] = “A”;

a. 0 b. 1 c. 2 d. 3

11) bnÞat;TIBIrénlTæpleRkayBIeyIg Run program : # include <stdio.h> main ( ) { static char msg [ ] = “Hello!” ; char * msgptr; msgptr = msg; puts (++msg); puts (msg); msg [3] = ‘\0’; puts (msg); }

a. Hello b. Welcome c. ch

d. Kμan a, b, c. km μviFImankMhus

12) bnÞat;tMbUgénlTæplrbs;m μviFIxageRkam ³ # include <stdio.h> main ( ) { static char msg [ ] = “Hello!” char * msgptr; msgptr = msg + strlen (msg); while ( - - msgptr >= msg ) puts (msgptr ); }

158

Page 19: មេរៀនទី 07-Array and Pointer

159

a. 0 b. lo c. H

d. Kμan a, b, c. km μviFImankMhus

13) kñúgkmμviFIxageRkam/ etImanb:unμan byte eRbIeGaykar Declaration xageRkam ³ char *ptr = “C”;

a. 0 b. 1

c. 3 ( 1sMrab; pointer, 2 sMrab; data )

d. 4( 2 sMrab; pointer, 2 sMrab; data )

14) etItMélrbs; *ptr kñúg]TahrN_xageRkam ³ char *ptr; static char msg[ ] = “Test”; ptr = msg [0];

a. minkMNt;)an b. T c. Address rbs; character dMbUg d. KμancMelIyNaRtwmRtUveT

15) etItMélrbs; *(ptr + 2) kñúg]TahrN_xagelI a. minkMNt;)an b. T c. Address rbs; character dMbUg d. s

16) Declaration ptr Ca pointer én Array 20 character a. char ptr[20]; b. char (*ptr) [20]; c. *(ptr[20]);

d. KμancMelIyNaRtwmRtUveT 17) Declaration Ca Array én 20 pointer point to Array

a. char ptr [20]; b. char (*ptr)[20]; c. *(ptr [20]);

Page 20: មេរៀនទី 07-Array and Pointer

d. KμancMelIyNaRtwmRtUveT 18) sBaØaNaCaFatuTI3 rbs; Array msg Edlman 4 characters

a. msg [3] b. msg [2] c. *msg [3] d. msg [4]

19) sBaØaNaCa pointer rbs;FatuTI3 rbs; Array msg man 4 characters a. *(msg + 3) b. *(msg + 2) c. *msg + 3 d. *msg + 2

20) ebIman Declaration dUcxageRkam ³ char msg [10]; char value;

etIXøaxageRkamNamYyEdlRtwmRtUv ? a. msg [2] = Value; b. msg = Value;

c. XøaTaMgBIrxagelIRtwmRtUv

d. KμancMelIyNaRtwmRtUv

21) ebIman Declaration dUcxageRkam ³ char *ptr; char [10]; char Value;

XøaxageRkamenHRtwmRtUv ³ a. ptr = Value; b. ptr = msg;

c. XøaTaMgBIrxagelIminRtwmRtUv

22) Pointer point to array man 3 character KW ³ a. (*ptr) [4]; b. (*ptr) [3]; c. (*ptr [4]); d. (*ptr [3]);

160

Page 21: មេរៀនទី 07-Array and Pointer

161

23) tMéllTæplCamYy static char msg [ ] = “Test”; printf (“%d”, strlen (msg) );

KW ³ a. 0 b. 6 c. 5 d. 4

= = = = = * = = = = =