![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
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
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 ...
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ìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình cơ bản Lập trình cơ bản Ngôn ngữ lập trình C Xâu ký tự Mảng một chiều Mảng nhiều chiềuTài liệu liên quan:
-
101 trang 205 1 0
-
Giới thiệu : Lập trình mã nguồn mở
14 trang 169 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 151 0 0 -
Giáo trình nhập môn lập trình - Phần 22
48 trang 140 0 0 -
161 trang 134 1 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 125 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 115 0 0 -
Đồ án vi xử lý đề tài : nghiên cứu thiết kế mạch đo khoảng cách sử dụng vi điều khiển Pic 16F887
45 trang 101 1 0 -
Đề thi HK lần 2 môn Lập trình cơ bản năm 2016 - CĐ Kỹ Thuật Cao Thắng - Đề 2
6 trang 92 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 2 - Quách Tuấn Ngọc
210 trang 91 0 0