Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 11: Mảng (GV. Nguyễn Nhật Nam)
Số trang: 60
Loại file: pdf
Dung lượng: 292.27 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 11: Mảng (GV. Nguyễn Nhật Nam). Bài giảng có nội dung trình bày 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!
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 11: Mảng (GV. Nguyễn Nhật Nam) CHÖÔNG 11 MAÛNG CHÖÔNG 11 MAÛNG11.1 Khaùi nieäm11.2 Khai baùo maûng11.3 Khôûi ñoäng trò cuûa maûng11.4 Maûng laø ñoái soá cuûa haøm maûng laø bieán toaøn cuïc11.5 Caùc öùng duïngBaøi taäp cuoái chöông CHÖÔNG 11 MAÛNG11.1 KHAÙI NIEÄMMaûng laø moät bieán caáu truùc trong ñoù coù nhieàu phaàn töû cuøngkieåu, moãi phaàn töû laø moät bieán thaønh phaàn cuûa maûng. Moãibieán thaønh phaàn naøy laø moät bieán bình thöôøng vaø coù cöôùc soá(subscript) ñeå phaân bieät giöõa phaàn töû naøy vaø phaàn töû kia.Nhö vaäy, ñeå truy xuaát moät phaàn töû cuûa maûng, ta caàn bieátñöôïc cöôùc soá cuûa noù.Trong boä nhôù, caùc phaàn töû cuûa maûng ñöôïc caáp phaùt oâ nhôù coùñòa chæ lieân tieáp nhau. CHÖÔNG 11 MAÛNG11.1 KHAÙI NIEÄMC cuõng cho pheùp laäp trình vieân khai baùo vaø laøm vieäc treânmaûng moät chieàu (singledimensional array) vaø maûng nhieàuchieàu (multidimensional array). Soá phaàn töû treân moät chieàuñöôïc goïi laø kích thöôùc cuûa chieàu ñoù. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuCuù phaùp khai baùo maûng moät chieàu nhö sau: kieåu teân_maûng [kích_thöôùc];Vôùi kích_thöôùc laø moät haèng soá nguyeân cuï theå, cho bieát soáphaàn töû trong chieàu ñang xeùt.Trong C, cöôùc soá caùc phaàn töû cuûa maûng luoân ñi töø 0 trôû ñi,neân maûng moät chieàu coù n phaàn töû thì cöôùc soá caùc phaàn töûcuûa maûng laø 0,..., n-1. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuVí dụ: Cho khai báo sau: int a[10], x; Như vậy mảng a có 10 phầntử int, các phần tử đó là a[0],a[1], …, a[9]. Các phần tử nàyđược cấp phát vị trí trong bộnhớ như hình 12.1 sau. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuLệnh a[5] = a[3] + 1;có mã LC-3 như sau: ADD R0, R5, #-9 ; R0 = &a[0]: địa chỉ của a[0] LDR R1, R0, #3 ; R1 = a[3] ADD R1, R1, #1 ; tăng 1 STR R1, R0, #5 ; a[5] = R1, tức a[5] = a[3] + 1. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuLệnh a[5] = 7;có mã LC-3 như sau: AND R0, R0, #0 ADD R0, R0, #7 ; R0 = 7 ADD R1, R5, #-9 ; R1 = &a[0]: địa chỉ của phần tửa[0] STR R0, R1, #5 ; a[5] = R0 CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàu Còn lệnh a[x+1] = a[x] + 2;với x là biến đang chứa trị là chỉ số nào đó cần làm việc, cómã LC-3 như sau: LDR R0, R5, #-10 ; R0 = x ADD R1, R5, #-9 ; R1 = &a[0] ADD R1, R0, R1 ; R1 = &a[x] LDR R2, R1, #0 ; R2 = a[x] ADD R2, R2, #2 ; cộng thêm 2 CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàu LDR R0, R5, #-10 ; R0 = x ADD R0, R0, #1 ; R0 = x+1 ADD R1, R5, #-9 ; R1 = &a[0] ADD R1, R0, R1 ; R1 = &a[x+1] STR R2, R1, #0 ; a[x+1] = R2 CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuVí duï :Vieát chöông trình nhaäp moät daõy caùc soá nguyeân, tìm soá lôùnnhaát trong daõy soá ñoù.#include #include main(){ int i, n, max, vtmax; int a[100]; clrscr(); CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG printf (Chuong trinh thu mang ); 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 , vtmax, max); getch()} CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG2- Maûng nhieàu chieàuCuù phaùp khai baùo maûng nhieàu chieàu nhö sau:kieåu teân_maûng [kích_thöôùc_chieàu1][kích_thöôùc_chieàu2] [...];Khi dòch C baùo loãiArray size too large ? CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG2- Maûng nhieàu chieàuVí duï: Khai baùo maûng hai chieàu aint a[4][3];Nhö vaäy maûng a coù 4x3 phaàn töû int, caùc phaàn töû ñoù laø ...
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 11: Mảng (GV. Nguyễn Nhật Nam) CHÖÔNG 11 MAÛNG CHÖÔNG 11 MAÛNG11.1 Khaùi nieäm11.2 Khai baùo maûng11.3 Khôûi ñoäng trò cuûa maûng11.4 Maûng laø ñoái soá cuûa haøm maûng laø bieán toaøn cuïc11.5 Caùc öùng duïngBaøi taäp cuoái chöông CHÖÔNG 11 MAÛNG11.1 KHAÙI NIEÄMMaûng laø moät bieán caáu truùc trong ñoù coù nhieàu phaàn töû cuøngkieåu, moãi phaàn töû laø moät bieán thaønh phaàn cuûa maûng. Moãibieán thaønh phaàn naøy laø moät bieán bình thöôøng vaø coù cöôùc soá(subscript) ñeå phaân bieät giöõa phaàn töû naøy vaø phaàn töû kia.Nhö vaäy, ñeå truy xuaát moät phaàn töû cuûa maûng, ta caàn bieátñöôïc cöôùc soá cuûa noù.Trong boä nhôù, caùc phaàn töû cuûa maûng ñöôïc caáp phaùt oâ nhôù coùñòa chæ lieân tieáp nhau. CHÖÔNG 11 MAÛNG11.1 KHAÙI NIEÄMC cuõng cho pheùp laäp trình vieân khai baùo vaø laøm vieäc treânmaûng moät chieàu (singledimensional array) vaø maûng nhieàuchieàu (multidimensional array). Soá phaàn töû treân moät chieàuñöôïc goïi laø kích thöôùc cuûa chieàu ñoù. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuCuù phaùp khai baùo maûng moät chieàu nhö sau: kieåu teân_maûng [kích_thöôùc];Vôùi kích_thöôùc laø moät haèng soá nguyeân cuï theå, cho bieát soáphaàn töû trong chieàu ñang xeùt.Trong C, cöôùc soá caùc phaàn töû cuûa maûng luoân ñi töø 0 trôû ñi,neân maûng moät chieàu coù n phaàn töû thì cöôùc soá caùc phaàn töûcuûa maûng laø 0,..., n-1. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuVí dụ: Cho khai báo sau: int a[10], x; Như vậy mảng a có 10 phầntử int, các phần tử đó là a[0],a[1], …, a[9]. Các phần tử nàyđược cấp phát vị trí trong bộnhớ như hình 12.1 sau. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuLệnh a[5] = a[3] + 1;có mã LC-3 như sau: ADD R0, R5, #-9 ; R0 = &a[0]: địa chỉ của a[0] LDR R1, R0, #3 ; R1 = a[3] ADD R1, R1, #1 ; tăng 1 STR R1, R0, #5 ; a[5] = R1, tức a[5] = a[3] + 1. CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuLệnh a[5] = 7;có mã LC-3 như sau: AND R0, R0, #0 ADD R0, R0, #7 ; R0 = 7 ADD R1, R5, #-9 ; R1 = &a[0]: địa chỉ của phần tửa[0] STR R0, R1, #5 ; a[5] = R0 CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàu Còn lệnh a[x+1] = a[x] + 2;với x là biến đang chứa trị là chỉ số nào đó cần làm việc, cómã LC-3 như sau: LDR R0, R5, #-10 ; R0 = x ADD R1, R5, #-9 ; R1 = &a[0] ADD R1, R0, R1 ; R1 = &a[x] LDR R2, R1, #0 ; R2 = a[x] ADD R2, R2, #2 ; cộng thêm 2 CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàu LDR R0, R5, #-10 ; R0 = x ADD R0, R0, #1 ; R0 = x+1 ADD R1, R5, #-9 ; R1 = &a[0] ADD R1, R0, R1 ; R1 = &a[x+1] STR R2, R1, #0 ; a[x+1] = R2 CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG1- Maûng moät chieàuVí duï :Vieát chöông trình nhaäp moät daõy caùc soá nguyeân, tìm soá lôùnnhaát trong daõy soá ñoù.#include #include main(){ int i, n, max, vtmax; int a[100]; clrscr(); CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG printf (Chuong trinh thu mang ); 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 , vtmax, max); getch()} CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG2- Maûng nhieàu chieàuCuù phaùp khai baùo maûng nhieàu chieàu nhö sau:kieåu teân_maûng [kích_thöôùc_chieàu1][kích_thöôùc_chieàu2] [...];Khi dòch C baùo loãiArray size too large ? CHÖÔNG 11 MAÛNG11.2 KHAI BAÙO MAÛNG2- Maûng nhieàu chieàuVí duï: Khai baùo maûng hai chieàu aint a[4][3];Nhö vaäy maûng a coù 4x3 phaàn töû int, caùc phaàn töû ñoù laø ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Hệ thống máy tính và ngôn ngữ C Hệ thống máy tính Ngôn ngữ C Khai báo mảng Khởi động trị của mảng Biến toàn cụcGợi ý tài liệu liên quan:
-
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 1) - Nguyễn Hải Châu
6 trang 181 0 0 -
6 trang 174 0 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 133 0 0 -
Giáo trình Tin học đại cương: Phần 2 - Trần Đình Khang
118 trang 118 0 0 -
101 thuật toán chương trình C: Phần 2
130 trang 91 0 0 -
91 trang 85 0 0
-
Giáo trình Office 2013 cơ bản: Phần 1
149 trang 76 0 0 -
39 trang 76 0 0
-
Đề tài: TÌM HIỂU VÀ THIẾT KẾ MẠNG LAN CHO TRƯỜNG THPT PHỤC HÒA
68 trang 76 0 0