Bài giảng Lập trình cơ bản: Ngôn ngữ lập trình C
lượt xem 17
download
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ự.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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 n-1 dòng + cột = n-1 dòng + cột > n-1 dòng + cột < n-1 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình căn bản: Chương 1 - ThS. Nguyễn Cao Trí
20 p | 149 | 12
-
Bài giảng Lập trình cơ bản: Bài 5 - TS. Ngô Quốc Việt
39 p | 62 | 6
-
Bài giảng Lập trình cơ bản: Bài 2 - TS. Ngô Quốc Việt
49 p | 75 | 6
-
Bài giảng Lập trình cơ bản: Giới thiệu - TS. Ngô Quốc Việt
15 p | 98 | 5
-
Bài giảng Lập trình cơ bản: Bài 3 - TS. Ngô Quốc Việt
37 p | 68 | 5
-
Bài giảng Lập trình cơ bản: Bài 4 - TS. Ngô Quốc Việt
38 p | 72 | 5
-
Bài giảng Lập trình cơ bản: Chương 4 - Giải thuật xử lý thông tin và ngôn ngữ lập trình
36 p | 103 | 5
-
Bài giảng Lập trình cơ bản: Bài 6 - TS. Ngô Quốc Việt
43 p | 80 | 5
-
Bài giảng Lập trình cơ bản: Bài 6 - Chu Thị Hường
38 p | 10 | 5
-
Bài giảng Lập trình cơ bản: Bài 4 - Chu Thị Hường
46 p | 11 | 5
-
Bài giảng Lập trình cơ bản: Bài 8 - Chu Thị Hường
28 p | 11 | 4
-
Bài giảng Lập trình cơ bản: Bài 5 - Chu Thị Hường
27 p | 13 | 4
-
Bài giảng Lập trình cơ bản: Bài 3 - Chu Thị Hường
34 p | 12 | 4
-
Tập bài giảng Lập trình cơ bản
208 p | 30 | 4
-
Bài giảng Lập trình cơ bản: Bài 7 - TS. Ngô Quốc Việt
16 p | 75 | 4
-
Bài giảng Lập trình cơ bản: Bài 1 - Chu Thị Hường
32 p | 7 | 3
-
Bài giảng Lập trình cơ bản: Bài 7 - Chu Thị Hường
25 p | 5 | 3
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