14/05/2011

(cid:49)(cid:857)i dung

Ch(cid:585)(cid:583)ng 4

1. M(cid:1191)ng 2. Câu l(cid:1227)nh l(cid:1211)p foreach 3. M(cid:1191)ng (cid:255)a chi(cid:1221)u 4. Câu h(cid:1235)i

Array

1. M(cid:608)ng

(cid:48)(cid:608)ng là gì?

(cid:127) (cid:48)(cid:1191)ng là m(cid:1245)t t(cid:1201)p h(cid:1255)p có th(cid:1261) t(cid:1269) c(cid:1259)a nh(cid:1267)ng (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:127) (cid:55)(cid:1193)t c(cid:1191) các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng này cùng m(cid:1245)t ki(cid:1223)u (cid:127) Ngôn ng(cid:1267) C# cung c(cid:1193)p cú pháp chu(cid:1197)n cho vi(cid:1227)c khai báo nh(cid:1267)ng (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:80)(cid:1191)ng

(cid:127) Khai báo m(cid:1191)ng (cid:127) Giá tr(cid:1231) m(cid:1211)c (cid:255)(cid:1231)nh (cid:127) Truy c(cid:1201)p các thành ph(cid:1195)n trong m(cid:1191)ng (cid:127) Kh(cid:1251)i t(cid:1189)o thành ph(cid:1195)n trong m(cid:1191)ng (cid:127) (cid:54)(cid:1265) d(cid:1257)ng t(cid:1263) khóa params (cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c và thu(cid:1245)c tính c(cid:1131) b(cid:1191)n

(cid:170) Tuy nhiên, cái th(cid:1201)t s(cid:1269)(cid:3)(cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra là (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:70)(cid:1259)a

1

ki(cid:1223)u System.Array

14/05/2011

Mô (cid:87)(cid:608)

(cid:54)(cid:877) d(cid:869)ng m(cid:857)t m(cid:608)ng

1. Khai báo 2. T(cid:1186)o th(cid:1203) hi(cid:1205)n + Gán giá tr(cid:1207) m(cid:1197)c (cid:284)(cid:1207)nh

(cid:127) Khai báo (cid:127) (cid:55)(cid:1189)o th(cid:1223) hi(cid:1227)n (xác (cid:255)(cid:1231)nh s(cid:1237) ph(cid:1195)n t(cid:1265)) (cid:127) Gán giá tr(cid:1231) (giá tr(cid:1231) m(cid:1211)c (cid:255)(cid:1231)nh; Giá tr(cid:1231) c(cid:1257) th(cid:1223))

Khai báo + Gán giá tr(cid:1207) c(cid:1221) th(cid:1203)

Khai báo + T(cid:1186)o th(cid:1203) hi(cid:1205)n + Gán giá tr(cid:1207) c(cid:1221) th(cid:1203)

3. Gán giá tr(cid:1207) c(cid:1221)

th(cid:1203)

(cid:54)(cid:877) d(cid:869)ng m(cid:857)t m(cid:608)ng

(cid:54)(cid:877) d(cid:869)ng m(cid:857)t m(cid:608)ng

int[] myIntArray = { 2, 4, 6, 8, 10};

1. Khai báo 2. T(cid:1186)o th(cid:1203) hi(cid:1205)n + Gán giá tr(cid:1207) m(cid:1197)c (cid:284)(cid:1207)nh

3. Gán giá tr(cid:1207) c(cid:1221)

th(cid:1203)

int[] myIntArray; myIntArray = new int[6]; // Ch(cid:753)(cid:751)ng trình

Khai báo + Gán giá tr(cid:1207) c(cid:1221) th(cid:1203)

2

14/05/2011

(cid:54)(cid:877) d(cid:869)ng m(cid:857)t m(cid:608)ng

Truy (cid:70)(cid:618)p các ph(cid:612)n (cid:87)(cid:877)

int[] myIntArray = new int[5] { 2, 4, 6, 8, 10};

Khai báo + T(cid:1186)o th(cid:1203) hi(cid:1205)n + Gán giá tr(cid:1207) c(cid:1221) th(cid:1203)

namespace mang_timpt {

Tìm ki(cid:636)m ph(cid:612)n t(cid:877)

class Program {

static void Main(string[] args) {

namespace mang_1 {

class Program {

static void Main(string[] args) {

int gt, vitri, sotim; sotim = 5; vitri = 0; int[] mang = new int[5] { 3, 5, 6, 5, 8}; bool kq = false; for (int i = 0; i < 5; i++) {

int[] mangso1; mangso1 = new int[5] {2, 5, 7, 9, 1}; for (int i = 1; i < 6; i++)

gt = mang[i]; if (gt==sotim) { kq = true; vitri = i; }

{

System.Console.WriteLine(mangso1[i]);

} if ( kq==true ) { System.Console.WriteLine("Co phan tu " + sotim + " trong mang");

}

System.Console.WriteLine("Vi tri "+ sotim+ " trong mang la "+vitri); }

System.Console.ReadLine();

}

else { System.Console.WriteLine("Khong co phan tu " + sotim + " trong mang"); } System.Console.ReadLine();

}

}

}

}

}

3

14/05/2011

Ví d(cid:869)

(cid:55)(cid:1189)o m(cid:1191)ng ch(cid:1261)a (cid:255)(cid:76)(cid:1223)m c(cid:1259)a sinh viên v(cid:1247)i các yêu c(cid:1195)u:

namespace mang_params {

(cid:127) (cid:54)(cid:1237) ph(cid:1195)n t(cid:1265) do ng(cid:1133)(cid:1249)i nh(cid:1201)p quy(cid:1219)t (cid:255)(cid:1231)nh (cid:127) (cid:264)(cid:76)(cid:1223)m (cid:1261)ng v(cid:1247)i m(cid:1243)i ph(cid:1195)n t(cid:1265) do ng(cid:1133)(cid:1249)i nh(cid:1201)p (cid:127) (cid:54)(cid:1203)p x(cid:1219)p m(cid:1191)ng theo (cid:255)(cid:76)(cid:1223)m t(cid:1263) nh(cid:1235)(cid:3)(cid:255)(cid:1219)n l(cid:1247)n (cid:127) Xu(cid:1193)t ra k(cid:1219)t qu(cid:1191) 1 4 5 7 8 9 8 1 4 5 7 8 9 8

(cid:54)(cid:877) d(cid:869)ng t(cid:875) khóa params

Ví d(cid:869)

class Program {

public void DisplayVals(params int[] intVals) {

foreach (int i in intVals) {

– (cid:264)(cid:1223) l(cid:1193)y m(cid:1245)t s(cid:1237) các bi(cid:1219)n c(cid:1259)a tham s(cid:1237) nguyên – (cid:54)(cid:1265) d(cid:1257)ng t(cid:1263) khóa params (cid:255)(cid:1223) truy(cid:1221)n m(cid:1245)t s(cid:1237) bi(cid:1219)n c(cid:1259)a tham s(cid:1237)

Console.WriteLine("Hi(cid:1223)n th(cid:1231) {0}", i);

mà không c(cid:1195)n thi(cid:1219)t ph(cid:1191)i t(cid:1189)o m(cid:1245)t m(cid:1191)ng

– (cid:54)(cid:1265) d(cid:1257)ng vòng l(cid:1211)p foreach truy xu(cid:1193)t các ph(cid:1195)n t(cid:1265)

} Console.ReadLine();

}

1. T(cid:1189)o m(cid:1245)t ph(cid:1133)(cid:1131)ng th(cid:1261)c :

static void Main(string[] args) {

– (cid:264)(cid:1231)nh ngh(cid:429)a m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng – Truy(cid:1221)n giá tr(cid:1231) “c(cid:1259)a m(cid:1191)ng” cho ph(cid:1133)(cid:1131)ng th(cid:1261)c

Program m = new Program(); m.DisplayVals(6, 7, 8, 9);

int[] mang2=new int[5]{3, 4, 6, 2, 8}; m.DisplayVals(mang2);

}

}

}

4

2. T(cid:1189)i Main() :

14/05/2011

Ph(cid:585)(cid:583)ng th(cid:873)c và thu(cid:857)c tính

Ph(cid:585)(cid:583)ng th(cid:873)c và thu(cid:857)c tính

Array.Clear(mang, n, m);

mang.Length; mang.Rank;

Array.Copy(mang, mang1, n);

Array.IndexOf(mang, "12"); Array.LastIndexOf(mang, "12"); Array.Sort(mang); Array.Reverse(mang);

namespace mangnc {

(cid:48)(cid:857)t s(cid:849) ph(cid:585)(cid:583)ng th(cid:873)c

public class Tester {

public static void PrintArray(object[] mArray) {

foreach( object obj in mArray) {

Console.WriteLine("Hien thi "+ obj);

} Console.WriteLine('\n');

} static void Main() {

string[] m1Array = {"Ban", "la", "Nam", "Nu"}; PrintArray( m1Array ); Array.Reverse( m1Array ); PrintArray( m1Array ); string[] m2Array = {"Chung", "toi", "la", "nhung", "nguoi", "lap", "trinh", "may", "tinh"}; PrintArray( m2Array ); Array.Sort( m2Array ); PrintArray( m2Array ); Console.ReadLine();

}

}

}

5

(cid:127) .; (cid:127) .Clear(); (cid:127) .Count(); (cid:127) .First(); (cid:127) .Last();

14/05/2011

2. Câu l(cid:644)nh l(cid:628)p foreach

(cid:127) Câu l(cid:1227)nh l(cid:1211)p foreach cho phép chúng ta l(cid:1211)p qua t(cid:1193)t c(cid:1191) các m(cid:1257)c trong m(cid:1245)t m(cid:1191)ng hay trong m(cid:1245)t t(cid:1201)p h(cid:1255)p

System.Console.WriteLine("Xuat phan tu mang {0}", i.ToString(),'\t');

foreach ( in ) {

int[] mang = new int[3] {3, 5, 7}; foreach (int i in mang) {

// th(cid:1269)c hi(cid:1227)n thông qua t(cid:1133)(cid:1131)ng (cid:1261)ng v(cid:1247)i // t(cid:1263)ng m(cid:1257)c trong m(cid:1191)ng hay t(cid:1201)p h(cid:1255)p

}

i.ToString() : Chuy(cid:1203)n s(cid:1210) qua chu(cid:1213)i ‘\t’ : tab ngang

}

3. M(cid:608)ng (cid:255)a chi(cid:638)u

C# h(cid:855) tr(cid:867) hai ki(cid:640)u

– Trong m(cid:1191)ng này m(cid:1243)i dòng trong m(cid:1191)ng có cùng kích th(cid:1133)(cid:1247)c

(cid:89)(cid:1247)i nhau

(cid:127) (cid:48)(cid:1191)ng (cid:255)a chi(cid:1221)u cùng kích th(cid:1133)(cid:1247)c:

– (cid:48)(cid:1191)ng này có th(cid:1223) là hai hay nhi(cid:1221)u h(cid:1131)n hai chi(cid:1221)u

(cid:127) (cid:48)(cid:1191)ng m(cid:1245)t chi(cid:1221)u trong (cid:255)ó các thành ph(cid:1195)n c(cid:1259)a nó ch(cid:1229) (cid:255)(cid:1131)n gi(cid:1191)n là các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ki(cid:1223)u giá tr(cid:1231) hay (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng tham chi(cid:1219)u

– Các dòng (cid:255)(cid:1133)(cid:1255)c tính theo hàng ngang c(cid:1259)a m(cid:1191)ng – Các c(cid:1245)t (cid:255)(cid:1133)(cid:1255)c tính theo hàng d(cid:1233)c c(cid:1259)a m(cid:1191)ng

(cid:127) (cid:48)(cid:1191)ng hai chi(cid:1221)u (cid:255)(cid:1133)(cid:1255)c t(cid:1241) ch(cid:1261)c thành các dòng và (cid:70)(cid:1245)t :

– Trong m(cid:1191)ng này các dòng không cùng kích th(cid:1133)(cid:1247)c v(cid:1247)i nhau

(cid:127) (cid:48)(cid:1191)ng (cid:255)a chi(cid:1221)u không cùng kích th(cid:1133)(cid:1247)c:

– Là m(cid:1191)ng có t(cid:1241) ch(cid:1261)c r(cid:1193)t ph(cid:1261)c t(cid:1189)p – (cid:48)(cid:1243)i thành ph(cid:1195)n là m(cid:1245)t m(cid:1191)ng khác

6

(cid:127) (cid:48)(cid:1191)ng (cid:255)a chi(cid:1221)u:

14/05/2011

(cid:48)(cid:608)ng (cid:255)a chi(cid:638)u cùng kích th(cid:585)(cid:859)c

(cid:55)(cid:606)o m(cid:608)ng

– Chi(cid:1221)u (cid:255)(cid:1195)u tiên (cid:255)(cid:1133)(cid:1255)c tính b(cid:1205)ng s(cid:1237) dòng (cid:70)(cid:1259)a m(cid:1191)ng – Chi(cid:1221)u th(cid:1261) hai (cid:255)(cid:1133)(cid:1255)c tính b(cid:1205)ng s(cid:1237) (cid:70)(cid:1245)t (cid:70)(cid:1259)a m(cid:1191)ng

(cid:127) Còn g(cid:1233)i là m(cid:1191)ng hình ch(cid:1267) nh(cid:1201)t:

const int rows = 4; const int columns = 3; int [,] mangso1 = new int[rows, columns];

(cid:127) Khai báo :

[,] ;

int[] mangso2 = new int[rows]; int[] mangso3 = new int[columns];

kh(cid:863)i t(cid:606)o các thành ph(cid:612)n trong m(cid:608)ng

xu(cid:610)t n(cid:857)i dung ra màn hình

for(int i = 0; i < rows; i++) { for(int i = 0; i < rows; i++) {

Console.WriteLine(“mangso[{0},{1}] = {2}”,i, j, mangso[i, j]);

for(int j = 0; j < columns; j++) { for(int j = 0; j < columns; j++) {

mangso[i,j] = i+j;

} }

7

} }

14/05/2011

(cid:48)(cid:608)ng (cid:255)a chi(cid:638)u có kích khác nhau

Khai báo

(cid:127) Hình d(cid:1189)ng không ph(cid:1191)i hình ch(cid:1267) nh(cid:1201)t vì các chi(cid:1221)u c(cid:1259)a chúng không (cid:255)(cid:1221)u nhau

const int rows = 4; // khai báo m(cid:1191)ng t(cid:1237)i (cid:255)a b(cid:1237)n dòng int[][] mArray = new int[rows][]; mArray[0] = new int[5]; // dòng (cid:255)(cid:1195)u tiên có 5 ph(cid:1195)n t(cid:1265) mArray[1] = new int[2]; // dòng th(cid:1261) hai có 2 ph(cid:1195)n t(cid:1265) mArray[2] = new int[3]; // dòng th(cid:1261) ba có 3 ph(cid:1195)n t(cid:1265) mArray[3] = new int[5]; // dòng cu(cid:1237)i cùng có 5 ph(cid:1195)n t(cid:1265)

– Khai báo s(cid:1237) dòng trong m(cid:1191)ng tr(cid:1133)(cid:1247)c – (cid:48)(cid:1243)i dòng s(cid:1217) gi(cid:1267) m(cid:1245)t m(cid:1191)ng, có kích th(cid:1133)(cid:1247)c b(cid:1193)t k(cid:484) – Nh(cid:1267)ng m(cid:1191)ng này (cid:255)(cid:1133)(cid:1255)c khai báo riêng – Sau (cid:255)ó chúng ta kh(cid:1251)i t(cid:1189)o giá tr(cid:1231) các thành ph(cid:1195)n trong nh(cid:1267)ng

(cid:80)(cid:1191)ng bên trong

(cid:127) Khai báo :

Xu(cid:610)t k(cid:636)t qu(cid:608)

Kh(cid:863)i t(cid:606)o m(cid:857)t vài giá tr(cid:648)

for(int i = 0; i < 5; i++) {

Console.WriteLine(“mArray[0][{0}] = {1}”, i, m[0][i]);

} for(int i = 0; i < 2; i++) {

Console.WriteLine(“mArray[1][{0}] = {1}”, i, mArray[1][i]);

}

mArray[0][3] = 15; mArray[1][1] = 12; mArray[2][1] = 9; mArray[2][2] = 99; mArray[3][0] = 10; mArray[3][1] = 11; mArray[3][2] = 12; mArray[3][3] = 13; mArray[3][4] = 14;

8

14/05/2011

4. Câu h(cid:847)i

(cid:127) (cid:264)(cid:76)(cid:1221)u phân bi(cid:1227)t gi(cid:1267)a m(cid:1191)ng và các thành ph(cid:1195)n bên trong m(cid:1245)t m(cid:1191)ng?

(cid:127) (cid:55)(cid:1263) khoá params (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng làm gì? (cid:127) Ý ngh(cid:429)a c(cid:1259)a l(cid:1227)nh l(cid:1211)p foreach? L(cid:1227)nh này (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng (cid:89)(cid:1247)i ki(cid:1223)u d(cid:1267) li(cid:1227)u nào?

(cid:127) Hãy cho bi(cid:1219)t s(cid:1269) khác nhau gi(cid:1267)a hai cách g(cid:1233)i Arr[i][j] và Arr[i, j]?

9

(cid:127) Làm th(cid:1219) nào (cid:255)(cid:1223) bi(cid:1219)t kích th(cid:1133)(cid:1247)c c(cid:1259)a m(cid:1245)t m(cid:1191)ng?