Danh mục

Bài giảng Lập trình cơ bản: Ngôn ngữ lập trình C

Số trang: 80      Loại file: pdf      Dung lượng: 1.76 MB      Lượt xem: 22      Lượt tải: 0    
Hoai.2512

Hỗ trợ phí lưu trữ khi tải xuống: 3,000 VND Tải xuống file đầy đủ (80 trang) 0
Xem trước 8 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Mời các bạn cùng tham khảo "Bài giảng Lập trình cơ bản: Ngôn ngữ lập trình C" để nắm chi tiết các kiến thức về mảng, con trỏ và xâu ký tự; mảng một chiều và nhiều chiều; con trỏ và các phép toán; xâu ký tự.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình cơ bản: Ngôn ngữ lập trình C Lập trình cơ bản: Ngôn ngữ lập trình C Đỗ Thị Mai Hường Bộ môn Hệ thống thông tin Khoa Công nghệ thông tin Mảng, con trỏ và xâu ký tự Tài liệu tham khảo • Kỹ thuật lập trình C: cơ sở và nâng cao, Phạm Văn Ất, Nhà xuất bản KHKT – Chương 6 • The C programming language 2nd Edition, Brian Kernighan and Dennis Ritchie, Prentice Hall Software Series – Chương 4 • The C programming language 2nd Edition, Brian Kernighan and Dennis Ritchie, Prentice 3 Hall Software Series – Chương Chương 7 - Phần 1 5 Nội dung • Mảng một chiều • Mảng hai chiều • Con trỏ và phép toán trên con trỏ – Khai báo con trỏ – Phép gán con trỏ – Truy xuất giá trị qua con trỏ • Con trỏ và mảng • Cấp phát vùng nhớ cho con trỏ • Xâu ký tự – Khái niệm – Khởi tạo – Các thao tác trên xâu ký tự 4 Chương 7 - Phần 1 PHẦN 1. MẢNG MỘT CHIỀU VÀ NHIỀU CHIỀU 5 Mảng một chiều • Khái niệm • Khai báo • Truy xuất dữ liệu 6 Dữ liệu kiểu mảng • Khái niệm – Là một kiểu dữ liệu có cấu trúc do người lập trình định nghĩa. – Biểu diễn một dãy các biến có cùng kiểu. Ví dụ: dãy các số nguyên, dãy các ký tự… – Kích thước được xác định ngay khi khai báo và không bao giờ thay đổi. – NNLT C luôn chỉ định một khối nhớ liên tục cho một biến kiểu mảng. 7 Khai báo biến mảng (tường minh) • Tường minh []; [][]…[]; – , …, : số lượng phần tử của mỗi chiều. • Lưu ý – Phải xác định cụ thể (hằng) khi khai báo. – Mảng nhiều chiều: = N1*N2*…*Nn 8 – Bộ nhớ sử dụng = *sizeof( Khai báo biến mảng (tường minh) • Ví dụ int Mang1Chieu[10]; 0 1 2 3 4 5 6 7 8 9 Mang1Chieu int Mang2Chieu[3][4]; 0 1 2 3 4 5 6 7 8 9 10 11 Mang2Chieu 0 1 2 9 Khai báo biến mảng (không tường minh) • Cú pháp – Không tường minh (thông qua khai báo kiểu) typedef []; typedef []…[]; ; typedef int Mang1Chieu[10]; typedef int Mang2Chieu[3][4]; • Ví dụ Mang1Chieu m1, m2, m3; Mang2Chieu m4, m5; 10 Chương 7 - Phần 1 Số phần tử của mảng • Phải xác định cụ thể số phần tử ngay lúc khai báo, không được sử dụng biến hoặc int n1 = 10; int a[n1]; hằng thường const int n2 = 20; int b[n2]; #define n1 10 #define n2 20 int a[n1]; //  int a[10]; int b[n1][n2]; //  int b[10][20]; • 11Nên sử dụng chỉ thị tiền xử lý #define để Khởi tạo giá trị cho mảng lúc khai báo • Gồm các cách sau – Khởi tạo giá trị cho mọi phần tử của mảng int a[4] = {2912, 1706, 1506, 1904}; 0 1 2 3 a 2912 1706 1506 1904 int a[4] = {2912, 1706}; – Khởi tạo giá 0trị cho1 một số 3 tử đầu mảng 2 phần a 2912 1706 0 0 12 Khởi tạo giá trị cho mảng lúc khai báo • Gồm các cách sau – Khởi tạo giá trị 0 cho mọi phần tử của mảng int a[4] = {0}; 0 1 2 3 a 0 0 0 0 – Tự động xác định số lượng phần tử int a[] = {2912, 1706, 1506, 1904}; 0 1 2 3 a 2912 1706 1506 1904 13 Truy xuất đến một phần tử • Thông qua chỉ số [][]…[] • Ví dụ 0 1 2 3 – Cho mảng như sau int a[4]; – Các truy xuất • Hợp lệ: a[0], a[1], a[2], a[3] • Không hợp lệ: a[-1], a[4], a[5], … => Cho kết thường không như mong muốn! 14 Gán dữ liệu kiểu mảng • Không được sử dụng phép gán thông thường mà phải gán trực tiếp giữa các phần tử tương ứng #define MAX 3 • Ví dụ typedef int MangSo[MAX]; MangSo a = {1, 2, 3}, b; b = a; // Sai for (int i = 0; i < 3; i++) b[i] = a[i]; 15 Chương 7 - Phần 1 Ví dụ •1.Nhập mảng #include có n phần tử kiểu nguyên, in ra các phần 2. #define MAX 1000 3.tử void main() của mảng 4. { 5. int ary[MAX]; 6. int i,n; 7. printf(“Nhap n = ”); 8. scanf(“%d”,&n); 9. for(i=0; i Ví dụ 1. #include • Nhập 2 mảng có n phần tử kiểu nguyên, tính và in ra 2. #define MAX 1000 3. void main() 4.mảng tổng { 5. int ary1[MAX], ary2[MAX], sum[MAX]; 6. int i,n; 7. printf(“Nhap n = ”);scanf(“%d”,&n); 8. for(i=0; i Mảng hai chiều • Khái niệm • Khai báo • Truy xuất dữ liệu 18 Ma Trận 0 1 … n-1 0 … n-1 0 0 … … Am,n An m-1 n-1 19 Ma Trận 0 … n-1 0 … n-1 0 … n-1 0 0 0 … … … An n-1 n-1 n-1 dòng = cột dòng > cột dòng < cột 0 … n-1 0 … n-1 0 … n-1 0 0 0 … … … An n-1 n-1 ...

Tài liệu được xem nhiều: