Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 11: Mảng

26 5 0
Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 11: Mảng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 11: Mảng. Bài giảng cung cấp cho học viên những kiến thức về khái niệm; khai báo mảng; khởi động trị của mảng; mảng là đối số của hàm, mảng là biến toàn cục; các ứng dụng;... Mời các bạn cùng tham khảo!

1 Các nội dung:      Khái niệm Khai báo mảng Khởi động trị mảng Mảng đối số hàm, mảng biến toàn cục Các ứng dụng © TS Nguyễn Phúc Khải KHÁI NIỆM  Mảng biến cấu trúc có nhiều phần tử kiểu Mỗi phần tử biến thành phần mảng Mỗi biến thành phần biến bình thường có cước số (subscript) để phân biệt phần tử phần tử Như vậy, để truy xuất phần tử mảng, ta cần biết cước số  Trong nhớ, phần tử mảng cấp phát nhớ có địa liên tiếp © TS Nguyễn Phúc Khải KHÁI NIỆM  C cho phép làm việc mảng chiều (singledimensional array) mảng nhiều chiều (multidimensional array)  Số phần tử chiều gọi kích thước chiều © TS Nguyễn Phúc Khải KHAI BÁO MẢNG  Mảng chiều:  Cú pháp khai báo mảng chiều sau: kiểu tên_mảng [kích_thước];  Với kích_thước số nguyên cụ thể, cho biết số phần tử chiều xét  Trong C, cước số phần tử mảng từ trở đi, nên mảng chiều có n phần tử cước số phần tử mảng 0, , n1 © TS Nguyễn Phúc Khải KHAI BÁO MẢNG  Ví dụ: Cho khai báo sau: int a[10], x;  Như mảng a có 10 phần tử int, phần tử a[0], a[1], …, a[9] Các phần tử cấp phát vị trí nhớ hình 12.1 sau © TS Nguyễn Phúc Khải KHAI BÁO MẢNG  Ví dụ : Viết chương trình nhập dãy số nguyên, tìm số lớn dãy số #include #include main() { int i, n, max, vtmax; int a[100]; clrscr(); printf ("Chuong trinh thu mang \n"); © TS Nguyễn Phúc Khải KHAI BÁO MẢNG printf ("Moi ban nhap so phan tu cua mang: "); scanf ("%d", &n); printf ("Moi nhap cac phan tu cua mang:"); for (i = 0; i < n; i++) scanf ("%d", &a[i]); max = a[0]; vtmax = 0; for (i = 1; i < n; i++) if (max < a[i]) { max = a[i]; vtmax = i; } printf ("Phan tu %d co tri lon nhat la %d\n", vtmax, max); getch() } © TS Nguyễn Phúc Khải KHAI BÁO MẢNG  Mảng nhiều chiều:  Cú pháp khai báo mảng nhiều chiều sau: kiểu tên_mảng [kích_thước_chiều1] [kích_thước_chiều2] [ ];  Khi dịch C báo lỗi: “Array size too large?” © TS Nguyễn Phúc Khải KHAI BÁO MẢNG  Ví dụ: Khai báo mảng hai chiều a int a[4][3];  Như mảng a có 4x3 phần tử int, phần tử là: a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] a[2][0] a[2][1] a[2][2] a[3][0] a[3][1] a[3][2] © TS Nguyễn Phúc Khải 10 KHAI BÁO MẢNG  Ví dụ 1: Viết chương trình tạo in hình ma trận đơn vị cấp n © TS Nguyễn Phúc Khải 12 KHAI BÁO MẢNG #include #include #define MAX 20 main() { int i, j; int a[MAX][MAX]; int n; clrscr(); printf ("Chuong trinh thu mang \n"); printf ("Moi ban nhap cap cua ma tran: "); scanf ("%d", &n); © TS Nguyễn Phúc Khải 13 KHAI BÁO MẢNG for (i = 0; i < n; i++) for (j = 0; j < n; j++) a[i][j] = (i == j); printf ("Ma tran duoc tao la: \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) printf ("%d", a[i][j]); printf(“\n”);} getch () } } © TS Nguyễn Phúc Khải 14 KHAI BÁO MẢNG  Ví dụ 2: #define MAX int a[MAX][MAX]; int n = 3;/* cấp thực cần làm việc ma trận */ int i, j; /* biến số mảng */ /* Nhập trị cho mảng*/ for (i = 0; i < n; i++) for (j = 0; j < n; j++) scanf (“%d”, &a[i][j]); © TS Nguyễn Phúc Khải 15 KHAI BÁO MẢNG a[0][0] a[1][0] a[2][0] a[3][0] a[0][1] a[1][1] a[2][1] a[3][1] a[0][2] a[1][2] a[2][2] a[3][2] a[0][3] a[1][3] a[2][3] a[3][3] © TS Nguyễn Phúc Khải 16 KHAI BÁO MẢNG  Ví dụ : int a[10];  mà ta lại thực lệnh for (i = 0; i

Ngày đăng: 05/07/2022, 13:46

Hình ảnh liên quan

hình ma trận đơn vị cấp n - Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 11: Mảng

hình ma.

trận đơn vị cấp n Xem tại trang 12 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan