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

Bài giảng kỹ thuật lập trình mảng

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 (747.76 KB, 46 trang )

KỸ THUẬT LẬP TRÌNH
Lecturer: Phan Hồ Duy Phương
Mekong University

Nhập Mơn Lập Trình – Mekong University

1


Nội dung

1.
2.
3.
4.
5.
6.

Giới thiệu
Biểu diễn dữ liệu trong máy tính
Ngơn ngữ lập trình C#
Lập trình hàm
Mảng
Thuật tốn

Nhập Mơn Lập Trình – Mekong University

2


5. Mảng



1.
2.
3.
4.

Giới thiệu
Khai báo mảng
Duyệt mảng
Các bài toán trên mảng

Nhập Mơn Lập Trình – Mekong University

3


5. Mảng

1.
2.
3.
4.

Giới thiệu
Khai báo mảng
Duyệt mảng
Các bài toán trên mảng

Nhập Mơn Lập Trình – Mekong University


4


5.1. Giới thiệu

VD: Viết chương trình nhập vào 10 số nguyên, xuất
tổng các số nguyên.
void main()
{
int n1,n2,n3,…,n10;
C.Write(“Nhap gia tri \n”);
Console.Read(n1);
…// 9 lệnh nhập n2..n10
C.Write(“Tong:{0}”,n1+n2+…+n10)
;
}
Nhập Mơn Lập Trình – Mekong University

5


5.1. Giới thiệu

o Yêu cầu thêm: nhập 100, 1000 số.

o Cần lưu trữ n số nguyên => không thực hiện
được
oCần sắp xếp n số nguyên => không thực hiện
được
=> Các kiểu dữ liệu cơ sở chưa đáp ứng việc

lưu trữ và truy xuất
Giải pháp:
Kiểu dữ liệu mới cho phép lưu trữ một dãy các
số nguyên và dễ dàng truy xuất.
Nhập Mơn Lập Trình – Mekong University

6


5.1. Giới thiệu

KIỂU DỮ LIỆU MẢNG (Array)
oLà một kiểu dữ liệu có cấu trúc do người lập trình
định nghĩa.
oBiểu diễn một dãy các biến có cùng kiểu. VD: dãy
các số nguyên, dãy các ký tự…
oKích thước được xác định ngay khi khai báo và
không bao giờ thay đổi.
oNgôn ngữ C luôn cấp phát một khối nhớ liên tục
cho một biến kiểu mảng.

Nhập Mơn Lập Trình – Mekong University

7


5. Mảng

1.
2.

3.
4.

Giới thiệu
Khai báo mảng
Duyệt mảng
Các bài toán trên mảng

Nhập Mơn Lập Trình – Mekong University

8


5.2. Khai báo Mảng

KHAI BÁO MẢNG
Khai báo tường minh:
<Kiểu DL>[ ] <Tên biến> = new <Kiểu DL>[<Số phần tử>];

Lưu ý:
oPhải xác định <số phần tử> cụ thể (hằng) khi khai báo.
oBộ nhớ sử dụng = <tổng số phần tử> * sizeof(DL>)
oMột dãy liên tục có chỉ số từ 0 đến <tổng số phần tử> 1

Nhập Mơn Lập Trình – Mekong University

9



5.2. Khai báo Mảng

KHAI BÁO MẢNG
VD:
Giá trị ô nhớ tại
vị trí i: A[i]

A

0

1

int[] A= new int[10];
Ơ nhớ có kích
cỡ sizeof(int)

2

3

4

5

6

7

8


9

Chỉ số phần
tử
Nhập Mơn Lập Trình – Mekong University

10


5.2. Khai báo Mảng

KHAI BÁO MẢNG
int[] A = new int[10];
int[] B = new int[10];
A

B

0

1

2

3

4

5


6

7

8

9

0

1

2

3

4

5

6

7

8

9

Nhập Mơn Lập Trình – Mekong University


11


5.2. Khai báo Mảng

KHỞI TẠO GIÁ TRỊ MẢNG
oKhởi tạo mọi giá trị mảng:
int[] A = {11, 22, 33, 44};
11

22

33

44

0

1

2

3

int[] A = {11, 22};
11

22


0

1

Nhập Mơn Lập Trình – Mekong University

12


5.2. Khai báo Mảng

KHỞI TẠO GIÁ TRỊ MẢNG
o<Kiểu GT>[] <Tên kiểu mảng> = {GT1,GT2,… };
VD:
string[] chuSo = {“không”, “một”,
“hai”, “ba”, “bốn”, “năm”, “sáu”,
“bảy”, “tám”, “chín”};
string[] week =
{“Hai”,“Ba”,“Tư”,“Năm”,“Sáu”,“Bảy”,
“Chủ Nhật”};

Nhập Môn Lập Trình – Mekong University

13


5.2. Khai báo Mảng

SỐ PHẦN TỬ MẢNG
oCó thể khai báo số phần tử ngay lúc khai báo.

int[] a = new int a[20];
oXác định trong thời gian run time
int n;int[] a;
n = Console.Read();
a = new int[n];

Nhập Mơn Lập Trình – Mekong University

14


Bài tập

1. Viết chương trình nhập vào một mảng số nguyên
có n phần tử. Với n do người dung nhập vào.

Nhập Mơn Lập Trình – Mekong University

15


5. Mảng

1.
2.
3.
4.

Giới thiệu
Khai báo mảng

Duyệt mảng
Các bài toán trên mảng

Nhập Mơn Lập Trình – Mekong University

16


5.3. Duyệt Mảng

TRUY XUẤT PHẦN TỬ MẢNG
Thông qua chỉ số: <tên biến>[<chỉ số>]
oVD:
int[] a= {11, 22, 33, 44};
Console.Write(a[0]) // xuất 11
Console.Write(a[3]) // xuất 44
oKhông hợp lệ:
a[0] a[1] a[2]
a[4], a[5], a[-1]

Nhập Mơn Lập Trình – Mekong University

a[3]

11

22

33


44

0

1

2

3

17


5.3. Duyệt Mảng

PHÉP GÁN HAI MẢNG
oSử dụng phép gán (=) cho biến mảng: Hai mảng trỏ
(tham chiếu) đến cùng vùng nhớ. Thay đổi giá trị
mảng này sẽ ảnh hưởng đến mảng kia
oVD:
int[] a= {11, 22};
b = a;
Console.Write(b[0]);// Xuất 11
b[1] = 20;
Console.Write(a[1]);// Xuất 20
Nhập Mơn Lập Trình – Mekong University

18



5.3. Duyệt Mảng

PHÉP GÁN HAI MẢNG
oSao chép giá trị: dung hàm Clone()
oVD:
int[] a= {11, 22};
b = a.Clone() as int[];
a[0] = 50;
Console.Write(b[0]);// Xuất 11
Console.Write(a[1]);// Xuất 22

Nhập Mơn Lập Trình – Mekong University

19


5.3. Duyệt Mảng

THUỘC TÍNH MẢNG
oLấy số lượng phần tử mảng: Mang.Length
o Số chiều (Demension): Mang.Rank
oVD:
int[] a= new int[10];
Console.Write(a.Length);// Xuất 10
Console.Write(a.Rank);// Xuất 1, vì
là mảng 1 chiều

Nhập Mơn Lập Trình – Mekong University

20



5.3. Duyệt Mảng

TRUYỀN GIÁ TRỊ MẢNG CHO HÀM

oĐối số kiểu mảng truyền cho hàm chính là
địa chỉ của phần tử đầu tiên của mảng
oMảng có thể thay đổi nội dung sau khi
thực hiện hàm
void xuatMang(int[] Mang);

Nhập Mơn Lập Trình – Mekong University

21


5.3. Duyệt Mảng

TRUYỀN GIÁ TRỊ MẢNG CHO HÀM
oSố lượng phần tử thông qua .Length
static void nhapMang(int[] Mang);
oGọi hàm:
void main()
{
int[] a;
nhapMang(a);
xuatMang(a);
}
Nhập Mơn Lập Trình – Mekong University


22


5.3. Duyệt Mảng

NHẬP – XUẤT GIÁ TRỊ MẢNG
oDuyệt mảng: sử dụng vòng lặp for để duyệt từ đầu
đến cuối mảng.
oTại mỗi bước lặp: xử lý phần tử mảng thứ i
oNhập
oXuất
oLấy giá trị phần tử
oKiểm tra
oSo sánh, tìm kiếm

Nhập Mơn Lập Trình – Mekong University

23


5.3. Duyệt Mảng

NHẬP – XUẤT GIÁ TRỊ MẢNG
oNhập mảng:
int[] a = new int[10];
for(int i = 0; i < 10; i++)
{
Console.Read(a[i]);
}


oXuất mảng:
for(int i = 0; i < 10; i++)
{
Console.Write(a[i]);
}
Nhập Môn Lập Trình – Mekong University

24


5. Mảng

1.
2.
3.
4.

Giới thiệu
Khai báo mảng
Duyệt mảng
Các bài toán trên mảng

Nhập Mơn Lập Trình – Mekong University

25


×