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)
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 (
int[] mang = new int[3] {3, 5, 7}; foreach (int i in mang) {
// th(cid:1269)c hi(cid:1227)n thông qua
}
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?