Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Minh Thái, Phạm Đức Thành
lượt xem 5
download
Bài giảng "Kỹ thuật lập trình - Chương 2: Kỹ thuật xử lý dữ liệu" có cấu trúc cung cấp cho người học các kiến thức: Giới thiệu, kỹ thuật xử lý và tổ chức dữ liệu biểu diễn danh sách, kỹ thuật xử lý mảng, thuật toán xử lý chuỗi, phương pháp biểu diễn đồ thị và thuật toán cơ bản, tổ chức dữ liệu biểu diễn cấu trúc cây. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Minh Thái, Phạm Đức Thành
- KỸ THUẬT LẬP TRÌNH Chương 2 Kỹ thuật xử lý dữ liệu có cấu trúc (12 tiết) TRẦN MINH THÁI – minhthai@huflit.edu.vn, www.minhthai.edu.vn PHẠM ĐỨC THÀNH – phamducthanh@huflit.edu.vn, www.phamthao.com 9/17/16 Trần Minh Thái - Phạm Đức Thành 1
- Nội dung v 2.1. Giới thiệu v 2.2. Kỹ thuật xử lý và tổ chức dữ liệu biểu diễn danh sách v 2.3. Kỹ thuật xử lý mảng v 2.4. Thuật toán xử lý chuỗi v 2.5. Phương pháp biểu diễn đồ thị và thuật toán cơ bản v 2.6. Tổ chức dữ liệu biểu diễn cấu trúc cây v 2.7. Tóm tắt chương 9/17/16 Trần Minh Thái - Phạm Đức Thành 2
- [2.1] Giới thiệu v Tìm hiểu về các kỹ thuật xử lý trên kiểu dữ diệu người dùng tự định nghĩa như: danh sách (list), mảng (array), chuỗi (string), cây (tree).. v C# hỗ trợ rất tốt về dữ liệu có cấu trúc và các thao tác trên đó thông qua: Ø Namespace System.Collections. Ø Namespace System.Collections.Generic. 9/17/16 Trần Minh Thái - Phạm Đức Thành 3
- [2.2] Kỹ thuật xử lý và tổ chức dữ liệu biểu diễn danh sách v Khái niệm. v Tổ chức dữ liệu bằng danh sách (list). v Kỹ thuật xử lý danh sách. 9/17/16 Trần Minh Thái - Phạm Đức Thành 4
- Khái niệm danh sách v Một tập sắp theo thứ tự các phần tử có cùng kiểu. v Cấu trúc dữ liệu tuyến tính, trong đó các phần tử dữ liệu được sắp theo một thứ tự xác định. 9/17/16 Trần Minh Thái - Phạm Đức Thành 5
- Khái niệm danh sách v Một số thao tác: Ø Kiểm tra danh sách có rỗng không. Ø Đếm số phần tử theo tiêu chí xác định trước. Ø Tìm một phần tử trong danh sách. Ø Chèn một phần tử vào danh sách. Ø Xóa một phần tử khỏi danh sách. Ø Sắp xếp theo tiêu chí nào đó... v Các phép toán trên danh sách không phụ thuộc vào kiểu dữ liệu của phần tử trong danh sách.Trần Minh Thái - Phạm Đức Thành 9/17/16 6
- Khái niệm danh sách v Ví dụ: Ø Danh sách sinh viên. Ø Danh sách diện thoại (danh bạ điện thoại). Ø Danh sách môn học. Ø Danh sách nhân viên. Ø Danh sách hàng hóa (danh mục hàng hóa). 9/17/16 Trần Minh Thái - Phạm Đức Thành 7
- Tổ chức dữ liệu bằng danh sách v Cú pháp: Danh sách List list = new List(); v Ví dụ, khai báo danh sách số nguyên List list = new List(); 9/17/16 Trần Minh Thái - Phạm Đức Thành 8
- Tổ chức dữ liệu bằng danh sách v Ví dụ, khai báo danh sách có tên list là danh sách chứa các sinh viên. struct sinhVien { public string maSV, hoTen; public DateTime ngaySinh; public string diaChi, maLop; } List list = new List(); 9/17/16 Trần Minh Thái - Phạm Đức Thành 9
- Tổ chức dữ liệu bằng danh sách v Danh sách liên kết: class Node { int key; Node next; } LinkedList linkList = new LinkedList(); 9/17/16 Trần Minh Thái - Phạm Đức Thành 10
- Kỹ thuật xử lý danh sách v Kiểm tra danh sách rỗng: if (list.Count == 0) Console.WriteLine("Danh sách rỗng"); else Console.WriteLine("Danh sách không rỗng"); 9/17/16 Trần Minh Thái - Phạm Đức Thành 11
- Kỹ thuật xử lý danh sách v Thêm một phần tử vào danh sách: list.Add(100); v Thêm nhiều phần tử vào danh sách: list.AddRange(new int[] { 33, 44, 55 }); 9/17/16 Trần Minh Thái - Phạm Đức Thành 12
- Kỹ thuật xử lý danh sách v Chèn phần tử vào cuối danh sách: list.Insert(list.Count, 9999); v Truy xuất đến các phần tử trong danh sách: foreach (int x in list) Console.WriteLine(x); 9/17/16 Trần Minh Thái - Phạm Đức Thành 13
- Kỹ thuật xử lý danh sách v Đếm số phần tử bằng giá trị X cho trước: int X = 5, dem = 0; foreach (int ai in list) if (ai == X) dem++; Console.WriteLine("Co {0} phan tu bang {1}", dem, X); 9/17/16 Trần Minh Thái - Phạm Đức Thành 14
- Kỹ thuật xử lý danh sách v Tìm một phần tử có giá trị X cho trước: int index=list.IndexOf(X); if (index == -1) Console.WriteLine("Tim khong thay"); else Console.WriteLine("Tim thay"); 9/17/16 Trần Minh Thái - Phạm Đức Thành 15
- Kỹ thuật xử lý danh sách v Chèn một phần tử vào danh sách: list.Insert(3, 5); v Xóa một phần tử khỏi danh sách tại vị trí xác định: list.RemoveAt(4); v Sắp xếp danh sách: list.Sort(); 9/17/16 Trần Minh Thái - Phạm Đức Thành 16
- Bài tập ví dụ Cho danh sách các mặt hàng, mỗi mặt hàng gồm các thông tin: mã hàng, tên hàng, số lượng, đơn giá, ngày nhập hàng. Hãy viết các hàm: v Nhập danh sách các mặt hàng v In danh sách các mặt hàng được nhập vào cách đây ít nhất 10 ngày v Sắp xếp danh sách các mặt hàng theo thứ tự tăng dần của tên hàng 9/17/16 Trần Minh Thái - Phạm Đức Thành 17
- Bài tập ví dụ Khai báo cấu trúc mặt hàng struct MatHang { public string maHang; public string tenHang; public DateTime ngayNhap; public int soLuong; public int donGia; } 9/17/16 Trần Minh Thái - Phạm Đức Thành 18
- Bài tập ví dụ Nhập thông tin của một mặt hàng static void NhapMatHang(out MatHang x) { Console.Write("- Nhap ma hang: "); x.maHang = Console.ReadLine(); Console.Write("- Nhap ten hang: "); x.tenHang = Console.ReadLine(); Console.Write("- Nhap so luong: "); x.soLuong = int.Parse(Console.ReadLine()); Console.Write("- Nhap don gia: "); x.donGia = int.Parse(Console.ReadLine()); Console.Write("- Nhap vao ngay nhap hang (dd/mm/yyyy): "); string ngay = Console.ReadLine(); x.ngayNhap = DateTime.Parse(ngay); } 9/17/16 Trần Minh Thái - Phạm Đức Thành 19
- Bài tập ví dụ Nhập danh sách mặt hàng static void NhapDanhSach(List dshang) { MatHang x; char nhap; do { NhapMatHang(out x); dshang.Add(x); Console.Write("Nhap tiep mat hang (Y/N)?: "); nhap = char.Parse(Console.ReadLine()); } while (nhap == 'Y' || nhap == 'y'); } 9/17/16 Trần Minh Thái - Phạm Đức Thành 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 5 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 9 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 12 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 1) - ThS. Đặng Bình Phương
26 p | 0 | 0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật thao tác trên bit - ThS. Đặng Bình Phương
29 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Tập tin - ThS. Đặng Bình Phương
48 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Kỹ thuật lập trình đệ quy - ThS. Đặng Bình Phương
44 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu cấu trúc - ThS. Đặng Bình Phương
33 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - ThS. Đặng Bình Phương
20 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuyển đổi kiểu dữ liệu và cấp phát bộ nhớ động - ThS. Đặng Bình Phương
28 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Nâng cao) - ThS. Đặng Bình Phương
48 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương
30 p | 0 | 0
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