F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
i dung
Ch
ng 4
Array
1. M ng
•
•
•
•
•
•
Khai báo m ng
Giá tr m c nh
Truy c p các thành ph n trong m ng
Kh i t o thành ph n trong m ng
d ng t khóa params
Ph ng th c và thu c tính c b n
1.
2.
3.
4.
M ng
Câu l nh l p foreach
M ng a chi u
Câu h i
ng là gì?
•
ng là m t t p h p có th t c a nh ng i t ng
•
t c các i t ng này cùng m t ki u
• Ngơn ng C# cung c p cú pháp chu n cho vi c khai
báo nh ng i t ng ng
Tuy nhiên, cái th t s
ki u System.Array
c t o ra là
it
ng
a
1
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
Mô
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
d ng m t m ng
• Khai báo
•
o th hi n (xác nh s ph n t )
• Gán giá tr (giá tr m c nh; Giá tr c th )
1. Khai báo
2. T o th hi n +
Gán giá tr m c
nh
3. Gán giá tr c
th
d ng m t m ng
int[] myIntArray;
myIntArray = new int[6];
// Ch
ng trình
1. Khai báo
2. T o th hi n +
Gán giá tr m c
nh
3. Gán giá tr c
th
Khai báo + Gán giá
tr c th
Khai báo + T o
th hi n + Gán giá
tr c th
d ng m t m ng
int[] myIntArray = { 2, 4, 6, 8, 10};
Khai báo + Gán giá
tr c th
2
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
d ng m t m ng
Truy
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
p các ph n
int[] myIntArray = new int[5] { 2, 4, 6, 8, 10};
Khai báo + T o
th hi n + Gán giá
tr c th
namespace mang_timpt
{
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++)
{
gt = mang[i];
if (gt==sotim)
{ kq = true;
vitri = i; }
}
if ( kq==true )
{ System.Console.WriteLine("Co phan tu " + sotim + " trong mang");
System.Console.WriteLine("Vi tri "+ sotim+ " trong mang la "+vitri); }
else
{ System.Console.WriteLine("Khong co phan tu " + sotim + " trong mang"); }
System.Console.ReadLine();
}
}
}
Tìm ki m ph n t
namespace mang_1
{
class Program
{
static void Main(string[] args)
{
int[] mangso1;
mangso1 = new int[5] {2, 5, 7, 9, 1};
for (int i = 1; i < 6; i++)
{
System.Console.WriteLine(mangso1[i]);
}
System.Console.ReadLine();
}
}
}
3
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
Ví d
o m ng ch a
m c a sinh viên v i các yêu c u:
•
ph n t do ng i nh p quy t nh
•
m ng v i m i ph n t do ng i nh p
•
p x p m ng theo m t nh
nl n
• Xu t ra k t qu
d ng t
1. T o m t ph
khóa params
ng th c :
–
–
l y m t s các bi n c a tham s nguyên
d ng t khóa params truy n m t s bi n c a tham s
mà không c n thi t ph i t o m t m ng
–
d ng vòng l p foreach truy xu t các ph n t
1457898
1457898
namespace mang_params
{
class Program
{
public void DisplayVals(params int[] intVals)
{
foreach (int i in intVals)
{
Console.WriteLine("Hi n th {0}", i);
}
Console.ReadLine();
}
2. T i Main() :
–
–
nh ngh a m t i t ng
Truy n giá tr “c a m ng” cho ph
static void Main(string[] args)
{
Program m = new Program();
m.DisplayVals(6, 7, 8, 9);
}
ng th c
Ví d
int[] mang2=new int[5]{3, 4, 6, 2, 8};
m.DisplayVals(mang2);
}
}
4
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
Ph
ng th c và thu c tính
Array.Clear(mang, n, m);
Ph
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
ng th c và thu c tính
mang.Length;
mang.Rank;
Array.Copy(mang, mang1, n);
Array.IndexOf(mang, "12");
Array.LastIndexOf(mang,
"12");
Array.Sort(mang);
Array.Reverse(mang);
t s ph
•
•
•
•
•
ng th c
ng>.<Sum()/Max()/Min()/Average()>;
ng>.Clear();
ng>.Count();
ng>.First();
ng>.Last();
namespace mangnc
{
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
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
2. Câu l nh l p foreach
• Câu l nh l p foreach cho phép chúng ta l p qua t t c
các m c trong m t m ng hay trong m t t p h p
int[] mang = new int[3] {3, 5, 7};
foreach (int i in mang)
{
foreach (<ki ud li uthànhph n> <têntruyc p> in <m ng/t ph p>)
{
// th c hi n thông qua <tên truy c p> t
// t ng m c trong m ng hay t p h p
ng ng v i
System.Console.WriteLine("Xuat phan tu mang {0}", i.ToString(),'\t');
}
}
i.ToString() : Chuy n s qua chu i
‘\t’ : tab ngang
3. M ng a chi u
•
ng m t chi u trong ó các thành ph n c a nó ch
n gi n là các i t ng ki u giá tr hay i t ng
tham chi u
•
ng hai chi u
c t ch c thành các dòng và t :
– Các dòng
– Các c t
•
c tính theo hàng ngang c a m ng
c tính theo hàng d c c a m ng
ng a chi u:
C# h tr hai ki u
•
ng a chi u cùng kích th
c:
– Trong m ng này m i dịng trong m ng có cùng kích th
i nhau
–
ng này có th là hai hay nhi u h n hai chi u
•
ng a chi u khơng cùng kích th
c
c:
– Trong m ng này các dịng khơng cùng kích th
c v i nhau
– Là m ng có t ch c r t ph c t p
–
i thành ph n là m t m ng khác
6
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
ng a chi u cùng kích th
c
• Cịn g i là m ng hình ch nh t:
– Chi u u tiên
– Chi u th hai
c tính b ng s dịng a m ng
c tính b ng s
t a m ng
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
o m ng
const int rows = 4;
const int columns = 3;
int [,] mangso1 = new int[rows, columns];
• Khai báo :
<ki u d li u>[,] <tên m ng>;
int[] mangso2 = new int[rows];
int[] mangso3 = new int[columns];
xu t n i dung ra màn hình
kh i t o các thành ph n trong m ng
for(int i = 0; i < rows; i++)
{
for(int j = 0; j < columns; j++)
{
mangso[i,j] = i+j;
}
}
for(int i = 0; i < rows; i++)
{
for(int j = 0; j < columns; j++)
{
Console.WriteLine(“mangso[{0},{1}] = {2}”,i, j, mangso[i, j]);
}
}
7
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
ng a chi u có kích khác nhau
• Hình d ng khơng ph i hình ch nh t vì các chi u c a
chúng khơng u nhau
• Khai báo :
– Khai báo s dòng trong m ng tr c
–
i dịng s gi m t m ng, có kích th c b t k
– Nh ng m ng này
c khai báo riêng
– Sau ó chúng ta kh i t o giá tr các thành ph n trong nh ng
ng bên trong
= 15;
= 12;
= 9;
= 99;
= 10;
= 11;
= 12;
= 13;
= 14;
ac
.c
tr
k e r- s o ft w a
Khai báo
const int rows = 4; // khai báo m ng t i a b n dòng
int[][] mArray = new int[rows][];
mArray[0] = new int[5]; // dịng u tiên có 5 ph n t
mArray[1] = new int[2]; // dịng th hai có 2 ph n t
mArray[2] = new int[3]; // dịng th ba có 3 ph n t
mArray[3] = new int[5]; // dòng cu i cùng có 5 ph n t
Kh i t o m t vài giá tr
mArray[0][3]
mArray[1][1]
mArray[2][1]
mArray[2][2]
mArray[3][0]
mArray[3][1]
mArray[3][2]
mArray[3][3]
mArray[3][4]
om
k
lic
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
Xu t k t qu
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]);
}
8
re
F -X C h a n ge
PD
F -X C h a n ge
N
y
bu
om
k
lic
tr
ac
.c
C
om
k
lic
C
.c
re
.
.
k e r- s o ft w a
w
w
ac
ww
ww
tr
to
to
bu
y
N
O
W
!
14/05/2011
O
W
!
PD
k e r- s o ft w a
4. Câu h i
•
•
•
•
•
u phân bi t gi a m ng và các thành ph
trong m t m ng?
khoá params
c s d ng làm gì?
Ý ngh a c a l nh l p foreach? L nh này
i ki u d li u nào?
Hãy cho bi t s khác nhau gi a hai cách g
và Arr[i, j]?
Làm th nào
bi t kích th c c a m t m
n bên
c s d ng
i Arr[i][j]
ng?
9
re