You are on page 1of 21

CHƯƠNG 5

MẢ NG MỘ T CHIỀ U VÀ HAI CHIỀ U


MỤ C TIÊ U

1. Trình bày đượ c cấ u trú c mả ng 1 chiều và 2 chiều.


2. Lậ p trình và vậ n dụ ng đượ c mả ng 1 chiều và 2 chiều và o bà i toá n cụ thể.
LÝ THUYẾ T

1. Định nghĩa và khai bá o mả ng 1 chiều

2. Tham số mả ng củ a mộ t hà m 1 chiều
LÝ THUYẾ T

3. Thao tá c trên mả ng 1 chiều


- Truy xuấ t cá c phầ n từ trong mả ng: ten_mang[ i ];
- Duyệt mả ng theo chiều xuô i:

- Duyệt mả ng theo chiều ngượ c:


LÝ THUYẾ T

1. Định nghĩa và khai bá o mả ng 2 chiều

2. Tham số mả ng củ a mộ t hà m 1 chiều
LÝ THUYẾ T

3. Thao tá c trên mả ng 2 chiều


- Truy xuấ t cá c phầ n từ trong mả ng: ten_mang[ i ][ j ]
- Truy xuấ t theo từ ng hà ng
- Truy xuấ t theo từ ng cộ t
BÀ I TẬ P

• Nhậ p n số thự c và o mả ng 1 chiều


• Xuấ t n số thự c từ mả ng số thự c 1 chiều
• Sắ p xếp cá c giá trị củ a mả ng theo thứ tự tă ng dầ n.
• Viết hà m kiểm tra mả ng số nguyên có tồ n tạ i hai số 0 liên tiếp hay khô ng. Nếu có hà m trả về 1, ngượ c
lạ i trả về 0.
• Thêm mộ t phầ n tử có giá trị x và o mả ng tạ i vị trí thứ i.
• Thêm mộ t phầ n tử có giá trị x và o mả ng tă ng dầ n sao cho sau khi thêm x và o mả ng
vẫ n tă ng dầ n.
GIẢ I THUẬ T SẮ P XẾ P TĂ NG DẦ N

• Giải thuật Selection Sort


- Vò ng 1: Tìm min trong mả ng n phầ n tử , sắ p xếp min lê n đầ u mả ng
- Vò ng 2: Tìm min trong mả ng (n-1) phầ n tử , sắ p xếp min lên đầ u mả ng
- …
- Vò ng cuố i: Tìm min trong mả ng 2 phầ n tử , sắ p xế p min lên đầ u mả ng
GIẢ I THUẬ T SẮ P XẾ P TĂ NG DẦ N

• Giải thuật Selection Sort


- Vò ng 1: Tìm min trong mả ng n phần tử , sắ p xếp min lên đầ u mả ng
- So sá nh a[0] vớ i a[i], i = 1 -> (n-1)
- Nếu a[0] > a[i]  đả o a [0] và a [i]

- Vò ng 2: Tìm min trong mả ng (n-1) phầ n tử , sắ p xếp min lên đầu mả ng


- So sá nh a[1] vớ i a[i], i = 2 -> (n-1)
- Nếu a[1] > a[i]  đả o a [1] và a [i]

- Vò ng cuố i: Tìm min trong mảng 2 phầ n tử , sắ p xếp min lên đầu mả ng
- So sá nh a[n-2] vớ i a[i], i = (n-1)
- Nếu a[n-2] > a[i]  đả o a [n-2] và a [i]
GIẢ I THUẬ T THÊ M PHẦ N TỬ

• Kiểm tra mả ng có thể thêm đượ c phầ n tử nữ a khô ng? Nếu khô ng, thự c hiện nhiệm
vụ khá c.
• Kiểm tra [vị trí chèn] hợ p lệ khô ng. Nếu khô ng, gá n thứ tự = chỉ số đầ u/cuố i mả ng.
• Thự c hiện dịch chuyển mả ng (phầ n phía sau nơi chèn + vị trí chèn)
• Chèn và o vị trí cầ n chèn
• Tă ng số lượ ng phầ n tử
GIẢ I THUẬ T XÓ A PHẦ N TỬ TRONG MẢ NG

• Kiểm tra có thể xó a hay khô ng? Nếu khô ng, thự c hiện nhiệm vụ khá c/ thoá t hà m
• Kiểm tra vị trí xó a hợ p lệ khô ng. Nếu khô ng, cho về chỉ số đầ u/cuố i.
• Dịch chuyển mả ng lù i 1 chỉ số – phầ n phía sau nơi xó a
• Giả m số lượ ng phầ n tử
• Bài 1. Viết chương trình cho phép người dùng thực hiện một trong các lựa
chọn sau. Yêu cầu: viết hàm con cho mỗi lựa chọn từ 1-5, và viết hàm main()
gọi các hàm con đó.
• 1. Tính tổng các ước của số nguyên n.
- Input: n (int)
- Output: tong (int)
- Giả i thuậ t:
+ Tìm ướ c số : vò ng lặ p từ 1 – (n-1), phép tính %
+ Cộ ng dồ n
2. Tìm số ngày của một tháng khi biết tháng và năm.
- Input: thá ng (int), nă m (int)
- Output: ngay (int)
- Giả i thuậ t:
+ Cơ sở dữ liệu ngày theo thá ng:
Thá ng 1 – 31 ngày
Thá ng 2 – 28/29 ngày => xét nă m nhuậ n (nam%4==0)&&(nam%100!=0)||nam%400==0)
Thá ng 3 – 30 ngày
Thá ng 4 – 31 ngày….
So sá nh thá ng vớ i 1/2/3/4….
3. Đổi chỗ 2 số nguyên x, y.
- Input: x, y (int)
- Output: x, y
- Giả i thuậ t:
temp = x;
x = y;
y = temp;
4. Tìm BCNN của hai số nguyên dương a và b
5. Kiểm tra số nguyên dương n có các chữ số toàn là chữ số lẻ hay không?
- Input: n (int)
- Output: kết quả n có cá c chữ số toà n số lẻ hay khô ng  0 là khô ng có , 1 là có .
- Giả i thuậ t:
+ Tìm tổ ng số chữ số củ a n: int tongSo = scanf(“%d”, &n);
+ Tá ch từ ng số :
n / 10  số dư là chữ số hà ng đơn vị (%)
+ Nếu chẵ n  return 0.
+ Nếu lẻ  tiếp tụ c chia 10 cho đến khi kết quả =0  vò ng lặ p
BÀ I TẬ P TẠ I LỚ P

• Cho một mảng 1 chiều chứa các số nguyên. Hãy viết một chương trình cho phép
người dùng chọn một trong các yêu cầu sau:
1. Tạ o mộ t mả ng 1 chiều chứ a n số nguyên.
• 2. Tính giá trị trung bình cá c phầ n tử trong mả ng.
• 3. Đếm số lầ n phầ n tử x xuấ t hiện trong mả ng, vớ i x nhậ p từ bà n phím
BÀ I TẬ P VỀ NHÀ

Cho một mảng 1 chiều chứa các số nguyên. Hãy viết một chương trình cho phép
người dùng chọn một trong các yêu cầu sau:
1. Tạ o 1 mả ng chứ a số nguyên.
2. Tìm vị trí củ a số lớ n nhấ t trong mả ng.
3. Thêm mộ t phầ n tử có giá trị x và o mả ng tạ i vị trí pos cho trướ c.
4. Xó a phầ n tử tạ i vị trí pos cho trướ c.
5. Đưa cá c phầ n tử có giá trị 0 về đầ u mả ng.
6. Xó a tấ t cả phầ n tử có giá trị 0.
BÀ I TẬ P VỀ NHÀ

Cho một mảng 2 chiều chứa các số nguyên. Hãy viết một chương trình thực hiện
các yêu cầu sau:
1. Tạ o 1 ma trậ n số nguyên có kích thướ c m x n, vớ i m là số hà ng và n là số cộ t.
2. Tìm giá trị lớ n nhấ t và vị trí củ a nó ở dò ng k.
3. Tìm vị trí củ a x trong ma trậ n, vớ i x nhậ p từ bà n phím.
4. Xuấ t cá c phầ n tử trên đườ ng chéo chính và đườ ng chéo phụ .
BÀ I TẬ P

• Nhậ p ma trậ n số thự c có n hà ng và m cộ t.


• Sắ p xếp giá trị tă ng dầ n ở hà ng thứ k trong ma trậ n.
Nhậ p và o 2 chuỗ i ký tự a và b từ bà n phím.
- So sá nh 2 chuỗ i này có giố ng nhau hay khô ng.
- Tạ o mộ t chuỗ i c. Sao chép chuỗ i a và o chuỗ i c. Lưu ý kích thướ c chuỗ i c phả i bằ ng
chuỗ i a.
- Tìm kiếm chuỗ i con có giá trị biết trướ c trong chuỗ i a. Ví dụ : chuỗ i a có giá trị “Lop
DHDKTD16C” thì chuỗ i con cầ n tìm là “Lop”

You might also like