Tải bản đầy đủ (.pdf) (9 trang)

Bài giảng Lập trình C# 1 - Chương 4: Array

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (255.94 KB, 9 trang )

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



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



×