Bài giảng Mảng - Array
lượt xem 6
download
Bài giảng Mảng - Array nêu lên một số tính chất, khai báo mảng trong C, truy xuất các thành phần, truyền tham số kiểu mảng cho hàm, một số thao tác cơ sở, mảng nhiều chiều trong mảng - Array. Bài giảng hữu ích với các bạn chuyên ngành Công nghệ thông tin và những bạn quan tâm tới lĩnh vực này.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Mảng - Array
- Mảng Array
- Mảng – Array Một số tính chất Khai báo mảng trong C Truy xuất các thành phần Truyền tham số kiểu mảng cho hàm Một số thao tác cơ sở Mảng nhiều chiều
- Mảng – Một số tính chất Mảng là một kiểu dữ liệu có cấu trúc do người lập trình định nghĩa Dùng biểu diễn các đối tượng dữ liệu ở dạng một dãy các thành phần có cùng kiểu với nhau – kiểu cơ sở NNLT C luôn chỉ định một khối nhớ liên tục cho một biến kiểu mảng Kích thước của mảng được xác định ngay khi khai báo và không bao giờ thay đổi
- Mảng – Khai báo trong C kiểucơsở TênBiến[Sốthànhphần]; kiểu của mỗi thành phần hằng số, số thành phần tối đa của mảng do lập trình viên đặt tên int a[100]; //a là mảng biểu diễn dãy gồm 100 thành phần int
- Mảng – Ví dụ #define #define SIZE SIZE 10 10 int int a[5]; a[5]; // // aa dãy dãy gồm gồm 55 số số nguyên nguyên long long int int big[100]; big[100];// // big: big: chiếm chiếm 400 400 bytes! bytes! double double d[100]; d[100]; // // d: d: chiếm chiếm 800 800 bytes! bytes! long long double double v[SIZE];// v[SIZE];// v:10 v:10 long long doubles doubles
- Mảng – Ví dụ khởi tạo cho 5 thành phần int int a[5] a[5] == {{ 10, 10, 20, 20, 30, 30, 40, 40, 50}; 50}; double double d[100] d[100] == {{ 1.5, 1.5, 2.7}; 2.7}; short short primes[] primes[] == {{ 1, 1, 2, 2, 3, 3, 5, 5, 7, 7, 11, 11, 13}; 13}; long long b[50] b[50] == {{ 00 }; }; 2 thành phần đầu tiên được Trình biên dịch xác khởi tạo, phần định kích thước còn lại: 0 gồm 7 thành phần cách nhanh nhất để khởi tạo tất cả các thành phần bằng 0
- Mảng – Truy xuất các phần tử Các thành phần của mảng được truy xuất thông qua chỉ số của chúng 0..n1 Thao tác truy xuất không kiểm tra giới hạn của chỉ số int int main() main() a {{ 0 int int a[6]; a[6]; int 1 int ii == 7; 7; a[0] a[0] == 59; 59; 2 a[5] a[5] == -10; -10; 3 a[i/2] a[i/2] == 2;2; 4 a[6] a[6] == 0; 0; a[-1] 5 a[-1] == 5; 5; return return 0;0; }}
- Truyền tham số Mảng cho hàm Tham số kiểu mảng được truyền cho hàm chính là địa chỉ của phần tử đầu tiên trên mảng Số thành phần trong tham số mảng có thể để trống. Số thành phần thực sự được sử dụng phải truyền qua một tham số khác (vd: size) int int add_elements(int add_elements(int a[], a[], int int size) size) {{ int int add_elements(int add_elements(int *p, *p, int int size) size) {{
- Ví dụ primes #include #include 1 void voidsum(long sum(long [], [], int); int); 2 int int main(void) main(void) {{ long 3 long primes[6] primes[6] == {{ 1,1, 2, 2, 3, 3, 5, 5, 7, 7, 11 11 }; }; 5 sum(primes, sum(primes, 6); 6); 7 printf("%li\n", printf("%li\n", primes[0]); primes[0]); 11 return return 0; 0; }} a void voidsum(long sum(long a[], a[], int int sz) sz) {{ sz 6 int int i; i; long long total total == 0; 0; dùng để kiểm tra for(i for(i == 0; 0; ii
- Một số thao tác cơ sở Nhập Xuất Thêm một thành phần dữ liệu Loại bỏ một thành phần dữ liệu Tìm kiếm Sắp xếp
- Mảng – Nhập dữ liệu void void ReadData(int ReadData(int a[], a[], int int size) size) {{ duyệt qua tất cả các int int i; i; phần tử for(i for(i == 0; 0; ii
- Mảng – Xuất dữ liệu ra màn hình void void WriteData(int WriteData(int a[], a[], int int size) size) {{ int int i; i; for(i for(i == 0; 0; ii
- Mảng – Nhập xuất dữ liệu #include #include void void ReadData(int ReadData(int [], [], int int ); ); void void WriteData(int WriteData(int [], [], int int ); ); int int main() main() {{ int int a[100], a[100], n; n; printf(“Nhap printf(“Nhap so so thanh thanh phan phan cua cua day: day: “); “); scanf(“%d”, scanf(“%d”, &n); &n); printf(“Nhap printf(“Nhap cac cac thanh thanh phan phan cua cua day: day: “); “); ReadData(a, ReadData(a, n); n); printf(“Day printf(“Day vua vua nhap: nhap: \n“); \n“); WriteData(a, WriteData(a, n); n); return return 0; 0; }}
- Mảng – Tìm vị trí X trong dãy Bài toán: Tìm vị trí X trên mảng a đang có N thành phần. Giải pháp: Tìm tuần tự //input: //input: dãy dãy (a, (a, N), N), XX //output: //output: Vị Vị trí trí của của X, X, -1 -1 nếu nếu không không có có int int Search(int Search(int a[], a[], int int N, N, int int X) X) {{ for for (int (int ii == 0; 0; ii
- Mảng – Thêm một thành phần dữ liệu Bài toán: cần thêm thành phần dữ liệu X vào mảng a đang có N thành phần. Hai trường hợp cần xem xét: Dãy chưa có thứ tự Thêm X vào cuối a. Dãy đã có thứ tự Tìm vị trí thích hợp, chèn X vào
- Mảng – Thêm X vào cuối dãy Thêm 15 vào (a, 7) 0 1 2 3 4 5 6 7 12 2 8 5 1 6 4 N=7 8 a[N] a[N] == X; X; NX 15 N ++; ++;
- Mảng – Chèn X vào dãy tăng dần Chèn 6 vào (a, 7) pos 0 1 2 3 4 5 6 7 1 2 4 5 8 12 15 N=7 8 X 6 Vị trí thích hợp: 4
- Mảng – Chèn X vào dãy tăng dần //input: //input: dãy dãy (a, (a, N) N) tăng tăng dần, dần, XX //output: //output: dãy dãy (a, (a, N) N) đã đã có có XX ởở đúng đúng vị vị trí trí void void insert(int insert(int mang[], mang[], int int *N, *N, int int X)X) {{ int int pos= pos= *N*N -1; -1; while while (pos (pos >= >= 00 && && mang[pos]>X) mang[pos]>X) {{ mang[pos+1] mang[pos+1] == mang[pos]; mang[pos]; pos--; pos--; }} mang[pos+1] mang[pos+1] == X; X; *N *N == *N *N ++ 1; 1; }}
- Mảng – Loại bỏ một thành phần dữ liệu Bài toán: loại bỏ thành phần dữ liệu X ra khỏi mảng a đang có N thành phần. Hướng giải quyết: xác định vị trí của X, nếu tìm thấy thì dồn các phần tử ở phía sau lên để lấp vào chỗ trống. 2 trường hợp: Dãy không có thứ tự: lấp phần tử cuối lên Dãy đã thứ tự: dời tất cả các phần tử ở sau ví trí của X lên trước 1 vị trí.
- Mảng – Loại bỏ X ra khỏi dãy tăng Loại 5 khỏi (a, 8) pos 0 1 2 3 4 5 6 7 12 2 8 5 1 6 4 15 N=7 8 STOP X 5 Ok, found Tìm vị trí của 5 Dồn các vị trí 4, 5, 6, 7 lên
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng mạng máy tính (ĐH FPT) - Chương 2 Các thiết bị mạng và giao thức mạng
32 p | 509 | 130
-
Bài giảng mạng máy tính (ĐH FPT) - Chương 3 Mạng Ethernet và mạng Wi-Fi
45 p | 416 | 113
-
Bài giảng mạng máy tính (ĐH FPT) - Chương 5 Chia sẻ file và máy in trên mạng
18 p | 277 | 91
-
Bài giảng mạng máy tính (ĐH FPT) - Chương 4 Kết nối mạng và Internet
21 p | 289 | 90
-
Bài giảng Mạng máy tính - Chương 1: Tổng quan - ĐH KHTN TP.HCM
46 p | 452 | 58
-
Bài giảng Mạng máy tính - Chương 4: Tầng mạng
134 p | 249 | 39
-
Bài giảng Mạng máy tính: Chương 1 - Mạng máy tính cơ bản
29 p | 261 | 18
-
Bài giảng Mạng máy tính: Bài 12 - ThS. Nguyễn Cao Đạt
47 p | 168 | 14
-
Bài giảng Mạng máy tính: Chương 2 - Kỹ thuật mạng cục bộ
27 p | 127 | 12
-
Bài giảng Mạng máy tính và internet - Phạm Mạnh Cương
24 p | 111 | 10
-
Bài giảng Mạng máy tính: Chương 1 - Nguyễn Cao Đạt
18 p | 141 | 10
-
Bài giảng Mạng máy tính: Chương 1 - ThS Trần Đắc Tốt
89 p | 94 | 8
-
Bài giảng Mạng máy tính - Nguyễn Thái Dư
93 p | 90 | 8
-
Bài giảng Mạng máy tính - ThS. Nguyễn Cao Đạt
46 p | 144 | 7
-
Bài giảng Mạng cơ bản: Bài 5 - Các giao thức và phần mềm mạng
33 p | 95 | 7
-
Bài giảng Mạng thông tin quốc tế: Chương 1 - Nguyễn Anh Việt
100 p | 76 | 7
-
Bài giảng Mạng máy tính 1
29 p | 69 | 6
-
Bài giảng Mạng máy tính (Computer Networking) - Chương 7: Mạng con và siêu mạng
9 p | 34 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn