Danh mục

Bài giảng Lập trình C nâng cao‎: Chương 1 - Trần Minh Thái

Số trang: 25      Loại file: pptx      Dung lượng: 151.24 KB      Lượt xem: 16      Lượt tải: 0    
10.10.2023

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 1 của bài giảng Lập trình C nâng cao‎ cung cấp cho người học những kiến thức về mảng một chiều. Chương này trình bày những nội dung sau: Khái quát các kỹ thuật cơ bản xử lý mảng, xoá phần tử trong mảng, chèn phần tử vào mả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 Lập trình C nâng cao‎: Chương 1 - Trần Minh TháiChương 1. Mảng một chiều (nc)TRẦNMINHTHÁIEmail:minhthai@itc.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: 05 tháng 01 năm 2015 Nội dung#2 • Khái quát các kỹ thuật cơ bản xử lý mảng • Xoá phần tử trong mảng • Chèn phần tử vào mảng • Bài tập Khái niệm mảng một chiều#3 • Tập các phần tử có cùng kiểu dữ liệu (KDL) được lưu trữ liên tiếp nhau • Các phần tử có chỉ số • Chỉ số của phần tử đầu tiên của mảng là 0 • Khai báo tên mảng [số phần tử tối đa]; VD: mảng số nguyên a có tối đa 100 phần tử int a[100]; Khái niệm mảng một chiều#4 • Khởi tạo mảng tên mảng [] = {giá trị 1, giá trị 2, …}; hoặc tên mảng [số lượng] = {giá trị}; • VD1: Khởi tạo mảng gồm 5 giá trị riêng biệt int a[] = {10, 12, 20, 15, 34}; • VD2: Khởi tạo mảng gồm 10 phần đều có giá trị 30 int a[10] = {30}; Khái niệm mảng một chiều#5 • Truy xuất mảng thông qua chỉ số tên mảng[chỉ số] • VD int a[] = {10, 12, 20, 15, 34}; int x = a[2]; // Giá trị x = 20 a[0] = 32; // Cập nhật phần tử tại vị trí 0 bằng 32 Các thao tác trên mảng#6 • Nhập/ xuất • Xuất có điều kiện • Tìm kiếm • Tìm min/ max • Đếm số lượng thoả điều kiện • Tính tổng/ giá trị trung bình theo điều kiện cho trước • Sắp xếp • Chèn và xoá phần tử Các thao tác trên mảng#7 • Sử dụng vòng lặp để thực hiện các thao tác trên mảng • Cấu trúc lặp phổ biến: for(int i=0; i Các thao tác trên mảng#8 • VD: Xuất các phần tử có giá trị lẻ trong mảng số nguyên for(int i=0; i Chèn phần tử vào mảng#9• Chomảngsau: 12 5 7 9 21 38 0 1 2 3 4 5• Hãytrìnhbàytừngbướcchèn111vàovịtrí3củamảng 111 12 5 7 9 21 38 0 1 2 3 4 5 9 Chèn phần tử vào mảng #10 12 5 7 9 21 38 Chèn111vàovịtrí3củamảng 0 1 2 3 4 5 61.Dichuyểna[5]sanga[6]:a[6]=a[5] 12 5 7 9 21 38 0 1 2 3 4 5 62.Dichuyểna[4]sanga[5]:a[5]=a[4] 12 5 7 9 21 38 0 1 2 3 4 5 63.Dichuyểna[3]sanga[4]:a[4]=a[3] 12 5 7 9 21 38 0 1 2 3 4 5 6 4.Gána[3]=111 12 5 7 111 9 21 38 0 1 2 3 4 5 6 Chèn phần tử vào mảng#11 Gọi k là vị trí cần chèn, n là kích thước mảng, x là giá trị cần chèn • a[6] = a[5] i=n1 • a[5] = a[4] • a[4] = a[3] a[i+1]=a[i] i=k • a[3] = 111 a[k]=x Chèn phần tử vào mảng#12 BT: Hãy viết hàm chèn phần tử có giá trị x vào vị trí k cho trước trong mảng a kích thướcntheomẫusau: voidChenX(inta[],int&n,intx,intk); 12 Chèn phần tử vào mảng#13 void ChenX(int a[], int &n, int x, int k) { for(int i=n-1; i>=k; i--) { a[i+1]=a[i]; } a[k]=x; n++; } Bài tập áp dụng#14 Hãy viết hàm chèn phần tử có giá trị x vào sau phần tử có giá trị nhỏ nhất có trong mảng a, kích thước n (giả sử mảng không có giá trị trùng nhau) Gợi ý: 1. Viết hàm tìm vị trí phần tử có giá trị nhỏ nhất (min) 2. Viết hàm chèn x vào sau min (sử dụng hàm ChenX) 14 Bài tập áp dụng#15 int TimVTMin(int a[], int n) { int vtmin=0; for(int i=1; i Bài tập áp dụng#16 void ChenXSauMin(int a[], int &n, int x) { int vtmin=TimVTMin(a, n); ChenX(a, n, x, vtmin+1); } Xóa phần tử khỏi mảng#17 • Chomảngsau: 12 5 7 9 21 38 0 1 2 3 4 5 • Hãytrìnhbàytừngbướcxóaphầntửtạivịtrí3 trongmảng 12 5 7 9 21 38 0 1 2 3 4 5 17 Xoá phần tử khỏi mảng#18 12 5 7 9 21 38 Xoáphầntửtạivịtrí3 0 ...

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