intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cấu trúc dữ liệu: Chương 2, 3 - Trịnh Xuân

Chia sẻ: Tằng Túy | Ngày: | Loại File: PDF | Số trang:11

66
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương này trình bày các thuật toán tìm kiếm và các thuật toán sắp xếp. Những nội dung chính trong chương này gồm có: Tìm kiếm tuyến tính, tìm kiếm nhị phân, cài đặt thuật toán, sắp xếp chọn trực tiếp – Selection Sort, sắp xếp chèn trực tiếp – Insertion Sort, sắp xếp nổi bọt – Bubble Sort, sắp xếp phân hoạch – Quick Sort. Mời tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cấu trúc dữ liệu: Chương 2, 3 - Trịnh Xuân

  1. I. Định nghĩa: II. Các thuật toán cơ bản: CHƯƠNG II: ! Tìm kiếm là kỹ thuật tìm kiếm một phần ! Các thuật toán: CÁC THUẬT TOÁN tử x bất kỳ có mặt trong một dãy các phần – Tìm kiếm tuyến tính TÌM KIẾM tử đã có hay không? –  Tìm thấy trả lại vị trí – Tìm kiếm nhị phân –  Không tìm thấy trả lại giá trị -1 X=5 2 3 4 5 6 7 8 1 8/4/16 X=9 2 8/4/16 CTDL – CNTH – Viện ĐH Mở 4 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 1. Thuật toán tìm kiếm tuyến tính: b. Minh họa thuật toán c. Cài đặt thuật toán: a. Ý tưởng: !  Minh họa tìm x =9 !  Đ/n hàm LineSearch !  Lần lượt duyệt từ đầu mảng đến cuối mảng, 9 Chưa Đã tìm –  Input: hếttại thấy mỗi lần so sánh phần tử cần tìm x với phần 6 5 11 41 9 32 13 8 14 3 mảng vị trí 4 !  phần tử x tử tương ứng của mảng (a[i]) 0 1 2 3 4 5 6 7 8 9 !  mảng a có n phần tử. –  Output: !  Minh họa tìm x =27 !  vị trí đầu tiên tìm thấy phần tử x Chưa Đã hết 27 hết mảng mảng !  hoặc trả lại giá trị -1 nếu không tìm thấy. 6 6 5 11 41 9 32 13 8 14 3 0 1 2 3 4 5 6 7 8 9 5 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 6 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 7 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở d. Đánh giá thuật toán: 2. Thuật toán tìm kiếm nhị phân b. Minh họa thuật toán ! Độ phức tạp là: O(n) A.  Ý tưởng Minh họa tìm x = 41 !  Xét dãy đã có thứ tự (tăng hoặc giảm) x x x !  So sánh giá trị x với phần tử giữa của dãy tìm kiếm hiện hành. Dựa vào giá trị 3 14 16 19 22 41 46 51 63 71 1 2 3 4 5 6 7 8 9 10 này sẽ quyết định giới hạn dãy tìm kiếm ở bước kế tiếp là nửa trước hay nửa sau l m m Tìm thấyr x tại vị trí 6 của dãy hiện hành m 10 8 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 9 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 10 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở
  2. c. Mô tả thuật toán: * Các bước thực hiện thuật toán: Minh họa tìm x = 45 !  Input: ! Bước 1: Khởi đầu tìm kiếm trên tất cả các phần tử x – là giá trị cần tìm của dãy (left = 0 và right = n – 1) x x x x n – số phần tử mảng ! Bước 2: Tính middle = (left + right)/2. So sánh a[middle] với x. Có 3 khả năng: 3 14 16 19 22 41 46 51 63 71 a – mảng chứa các phần tử đã được sắp "  a[middle] = x ⇒ Tìm thấy => Dừng 1 2 3 4 5 6 7 8 9 10 xếp tăng dần "  a[middle] > x ⇒ right = middle – 1 (tìm trong nửa đầu) l m m r left, right – là chỉ số đầu và chỉ số cuối "  a[middle] < x ⇒ left = middle + 1 (tìm trong nửa cuối) l > r: Kết thúc của mảng thực hiện tìm ! Bước 3: Không tìm m thấy " Nếu left ≤ right ⇒ quay lại bước 2 để tìm kiếm tiếp !  Output: " Ngược lại ⇒ Dãy hiện hành hết phần tử (không tìm m vị trí chứa phần tử x (nếu có) thấy) và dừng thuật toán 11 11 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 12 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 13 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở d. Cài đặt thuật toán: e. Ví dụ minh họa: III. Bài tập áp dụng: !  Đ/n hàm BinarySearch ! Cho dãy số a: !  Tìm phần tử x=4 trong dãy sau: a=2 3 4 5 6 7 8 –  Input: 9 8 7 6 5 4 2 tìm xem phần tử x = 8 có trong dãy không? !  phần tử x Yêu cầu mô tả chạy từng bước theo thuật toán !  Tìm phần tử x = 2 trong dãy sau: !  mảng a có n phần tử. 1 4 6 8 9 10 Left Right Middle Trạng thái –  Output: Yêu cầu: !  vị trí đầu tiên tìm thấy phần tử x mô tả từng bước thuật toán tìm kiếm nhị phân !  hoặc trả lại giá trị -1 nếu không tìm thấy. 14 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 15 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 18 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở # Nhận xét: # Nhận xét: CHƯƠNG III: – Giải thuật tìm nhị phân dựa vào quan hệ giá – Khimuốn áp dụng giải thuật tìm nhị phân cần CÁC THUẬT TOÁN trị của các phần tử mảng để định hướng trong phải xét đến thời gian sắp xếp dãy số để thỏa SẮP XẾP quá trình tìm kiếm, do vậy chỉ áp dụng được điều kiện dãy số có thứ tự. Thời gian này cho những dãy đã có thứ tự. không nhỏ, và khi dãy số biến động cần phải – Giải thuật tìm nhị phân tiết kiệm thời gian tiến hành sắp xếp lại => khuyết điểm chính hơn rất nhiều so với giải thuật tìm tuần tự do cho giải thuật tìm nhị phân. Tnhị phân (n) = O(log 2 n) < Ttuần tự (n) = O(n). – Cần cân nhắc nhu cầu thực tế để chọn một trong hai giải thuật tìm kiếm trên sao cho có lợi nhất. 19 20 21 8/4/16
  3. I. Định nghĩa: II. Các thuật toán cơ bản 1. Sắp xếp chọn trực tiếp !  Cho các phần tử a1, a2, …, an bất kỳ ! Sắp xếp chọn trực tiếp – Selection Sort a. Ý tưởng: !  Sắp xếp là quá trình bố trị lại các phần tử theo ! Tại mỗi bước chọn ra phần tử nhỏ nhất hoặc ! Sắp xếp chèn trực tiếp – Insertion Sort một thứ tự thỏa mãn một tiêu chuẩn nào đó dựa lớn nhất trong số các phần tử chưa xét và trên nội dung thông tin lưu giữ tại mỗi phần tử. ! Sắp xếp nổi bọt – Bubble Sort đưa về vị trí thích hợp, cố định phần tử này ! Sắp xếp phân hoạch – Quick Sort không xét lại nữa. ! Sắp xếp đổi chỗ trực tiếp – Interchange Sort ! Sắp xếp với số bước giảm dần – Heap Sort ! Sắp xếp trộn – Meger Sort 22 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 23 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 24 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở b. Minh Họa Thuật Toán Chọn Trực Tiếp Vị trí nhỏ nhất trong đoạn(0,7) Hoandoi( a[0], a[4] ) Vị trí nhỏ nhất trong đoạn(1,7) Hoandoi(a[1], a[1]) Vị trí nhỏ nhất trong đoạn(2,7) Hoandoi(a[2], a[6]) min min min 12 2 8 5 1 6 4 15 1 2 8 5 12 6 4 15 1 2 8 5 12 6 4 15 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 i i i 25 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 26 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 27 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở Vị trí nhỏ nhất trong đoạn(3, 7) Hoandoi(a[3], a[3]) Vị trí nhỏ nhất trong đoạn (4, 7) Hoandoi (a[4], a[5]) Vị trí nhỏ nhất trong đoạn(6, 7) min min min 1 2 4 5 12 6 8 15 1 2 4 5 12 6 8 15 1 2 4 5 6 8 12 15 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 i i i 28 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 29 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 31 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở
  4. c. Mô tả thuật toán: d. Cài đặt thuật toán: void SelectionSort_Asc( int a[ ], int n ) ! Tổng quát sắp xếp tăng dần !  Định nghĩa hàm SelectionSort_Asc { ! Bước 1: i = vị trí đầu (i = 0) –  Input int min, i, j, tg; for( i=0 ; i
  5. Tìm vị trí chèn cho phần tử thứ a[4] Tìm vị trí chèn cho phần tử thứ a[7] Kết thúc 3 5 7 10 9 2 15 1 2 3 5 7 9 10 15 1 1 2 3 5 7 9 10 15 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 i=4 i=7 i=8 43 46 47 43 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 46 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 47 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở c. Mô tả thuật toán: d. Cài đặt thuật toán: ! Bước 1: i = 1 void InsertionSort( int a[ ], int n ) !  Định nghĩa hàm InsertionSort_Asc { ! Bước 2: –  x = a[i], –  Input int pos,i,x; for(i=1;i=0)&&(a[pos]>x)) sang phải một vị trí để được vị trí chèn a[i] vào !  Mảng đã sắp xếp (tăng dần). { Vừa tìm vị trí để chèn vừa a[pos+1] = a[pos]; dịch chuyển các phần tử ra ! Bước 4: chèn a[i] vào vị trí pos vừa tìm được bằng cuối dãy một vị trí pos--; (a[pos] = x) } ! Bước 5: i = i+1 a[pos+1] = x; //chèn x vào dãy } - Nếu i Lặp lại bước 2 } - Ngược lại => Dừng thuật toán 48 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 50 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 51 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở f. Ví dụ minh họa: Bài tập về nhà 3. Sắp xếp nổi bọt - BubbleSort ! Cho dãy số sau: ! Tự lấy bộ 7 phần tử ngẫu nhiên a. Ý tưởng a=5 3 2 7 4 1 ! T hực hiện sắp xếp bằng Selection và !  xuất phát từ đầu dãy (hoặc cuối dãy) và tiến hành đổi chỗ cặp phần tử kế cận nhau để đưa phần Mô tả tùng bước sắp xếp dãy tăng dần – giảm dần Insertion tăng dần và giảm dần tử nhỏ hơn hoặc lớn hơn về vị trí cao nhất hay bằng InsertionSort ! Mô phỏng từng bước $ lập bảng thấp nhất trong dãy. Sau khi đã chuyển vị trí này I Pos Dịch chuyển phải Kết quả không xét nữa I =1 I=2 I=3 I=4 I=5 53 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 54 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 57 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở
  6. i 10 0 i 1 0 1 0 5 1 10 1 i 2 1 7 2 5 2 10 2 3 3 7 3 5 3 9 4 3 4 7 4 2 5 9 5 3 5 15 6 2 6 9 6 j 1 7 j 15 7 j 15 7 66 67 68 66 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 67 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 68 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 1 0 1 0 1 0 2 1 2 1 2 1 i 3 2 3 2 3 2 10 3 i 5 3 5 3 5 4 10 4 i 7 4 7 5 7 5 10 5 9 6 9 6 9 6 j 15 7 j 15 7 j 15 7 69 70 71 69 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 70 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 71 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở c. Mô tả thuật toán: 1 0 1 0 ! Bước 1: i = 0 2 1 2 1 ! Bước 2: j = n - 1 Trong khi j>i thực hiện 3 2 3 2 Kết { 5 3 5 3 thúc nếu a[j] < a[j-1] thì hoán đổi hai phần tử 7 4 7 4 j=j–1 i 9 5 9 5 } 10 6 i 10 6 ! Bước 3: i = i + 1 j 15 7 15 7 Nếu i > n-2: dừng thuật toán 72 73 Ngược lại: lặp lại bước 2 72 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 73 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 74 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở
  7. d. Cài đặt thuật toán: f. Ví dụ minh họa: ! Chodãy số sau: !  Định nghĩa hàm BubbleSort_Asc void BubbleSort(int a[ ], int n) { a= 5 6 2 1 9 3 –  Input int i,j,tg; Mô tả từng bước thực hiện sắp xếp dãy tăng dần – giảm !  Mảng a gồm n phần tử (nguyên) for( i = 0 ; ii ; j-- ) –  Output if ( a[ j ] < a[ j-1] ) I J Hoán đổi Kết quả !  Mảng đã sắp xếp (tăng dần). { tg = a[ j ]; a[ j ] = a[ j-1]; a[ j-1 ] = tg; } } 76 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 77 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 79 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 4. Sắp xếp QuickSort b. Minh họa thuật toán Phân hoạch dãy Phân hoạch dãy a. Giới thiệu: X 5 X 5 ! QuickSort là phương pháp sắp xếp tốt nhất i j i j ! ý tưởng: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 – Chọn một phần tử ngẫu nhiên nào đó của dãy làm 12 2 8 5 1 6 4 15 4 2 8 5 1 6 12 15 “chốt”, – Các phần tử của dãy được so sánh với “chốt” và đổi left right left right chỗ cho nhau ! Mọi phần tử nhỏ hơn “chốt” được xếp vào vị trí trước STOP STOP STOP STOP ! Mọi phần tử lớn hơn “chốt” được xếp vào vị trí sau Không nhỏ hơn x Không lớn hơn x Không nhỏ hơn x Không lớn hơn x 82 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 83 84 Phân hoạch dãy X 6 j i i j j i 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 4 2 1 5 8 6 12 15 1 2 4 5 8 6 12 15 1 2 4 5 6 8 12 15 left right left right left right Sắp xếp đoạn 3 STOP STOP Sắp xếp đoạn 3 Không nhỏ hơn x Không lớn hơn x 85 86 87
  8. i = 0, j = 7 i = 3, j = 7 L x R L x R 0 1 2 3 4 5 6 7 10 5 7 3 9 2 15 1 1 2 3 7 9 5 15 10 1 2 4 5 6 8 12 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 5 i j i j L=0 R=7 L=3 Đoạn 1 Đoạn 2 R=7 L=0 Đoạn 1 Đoạn 2 L=0 L=3 R=2 R=7 R=2 L=3 L=4 R=3 R=7 Đoạn cần sắp xếp 90 Đoạn cần sắp xếp 91 88 90 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 91 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở x i = 4, j = 7 i = 5, j = 7 i = 5, j = 6 L x R L x R L R 1 2 3 5 9 7 15 10 1 2 3 5 7 9 15 10 1 2 3 5 7 9 10 15 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 L=4 i j L=5 i j L=5 i j R=7 R=7 R=6 L=3 L=3 L=3 R=3 R=3 R=3 L=0 Đoạn 2 L=0 Đoạn 1 L=0 R=2 L=5 R=2 L=5 R=2 R=7 R=6 Đoạn cần sắp xếp 92 Đoạn cần sắp xếp 93 Đoạn cần sắp xếp 94 92 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 93 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 94 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở x i=3, j=3 i=0, j=2 L L x R 1 2 3 5 7 9 10 15 1 2 3 5 7 9 10 15 1 2 3 5 7 9 10 15 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 i j R L=3 Không còn đoạn R=3 nào cần sắp xếp! L=0 L=0 R=2 R=2 Kết thúc Đoạn cần sắp xếp 95 Đoạn cần sắp xếp 96 Đoạn cần sắp xếp 97 95 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 96 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 97 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở
  9. c. Mô tả thuật toán Phân hoạch bài toán: d. Cài đặt thuật toán: !  Được thực hiện gồm hai phần: ! Bước 1: chọn tùy ý phần tử chốt x = a[k] trong dãy aL, a2,…,aR. !  Định nghĩa hàm QuickSort_Asc (k = (L+R)/2 ) – Phân hoạch bài toán i = L; j = R; –  Input – Sắp xếp trên từng phân hoạch ! Bước 2: phát hiện và điều chỉnh các phần tử a[i] và a[j] sai vị !  Mảng a gồm n phần tử (nguyên) trí: a. Trong khi a[i]x thì j-- –  Output c.  Nếu i
  10. Tạo cây Heap: 35, 20, 52, 101, 9, 28, 56, 64 ! Ví dụ: cho dãy gồm: 35, 20, 52, 101, 9, 28. Thực hiện sắp xếp dãy bằng HeapSort – Giảm dần – Tăng dần 126 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 127 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 128 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 7. Sắp xếp Mergesort Bài tập về nhà ! Ý tưởng: ! Sắp xếp danh sách L gồm 8 phần tử 7, 4, 8, 9, 3, 1, ! Khai báo cấu trúc SV gồm: mã SV, Họ tên, Tuổi, Điểm trung bình ! Viết các CTC thực hiện: – Tìm cách phân hoạch dãy ban đầu thành các dãy con. 6, 2 7, 4, 8, 9, 3, 1, 6, 2 – Nhập vào một mảng các sinh viên Sau khi phân hoạch xong, ta trộn từng cặp dãy con của 7, 4, 8, 9 3, 1, 6, 2 – In lại mảng các sinh viên đã nhập hai dãy phụ thành một dãy con của dãy ban đầu. – Lưu DSSV vào File ! Thuật toán: 7, 4 8, 9 3, 1 6, 2 – Đọc DSSV tư File – Tìm kiếm sinh viên có mã là x bằng tt tìm kiếm tuyến tính – Với dãy ban đầu có n phân tử, ta cứ phân hoạch thành n 7 4 8 9 3 1 6 2 – Tìm kiếm sinh viên có tên là x dãy con. Vì rằng mỗi dãy con chỉ có 1 phần tử nên nó là – SX dãy danh sách SV giảm dần theo ĐTB bằng một trong các TT dãy có thứ tự. 4, 7 8, 9 1, 3 2, 6 sắp xếp – Sau đó trộn các dãy con lại với nhau theo nguyên tắc sắp – SX dãy DSSV tăng dần theo Tuổi bằng một trong các TT SX xếp 4, 7, 8, 9 1, 2, 3, 6 ! Áp dụng: – Áp dụng lại các CTC trên 1, 2, 3, 4, 6, 7, 8, 9 131 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 132 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 134 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở Bài tập về nhà buổi 2 Bài tập về nhà buổi 3 ! Đọc và nghiên cứu trước giáo trình phần: ! Xem lại ngôn ngữ Lập trình C – Thuật toán sắp xếp (Bubble – Quick - Interchange) – Khai báo biến – Mỗi thuật toán xác định: – Các cấu trúc điều khiển cơ bản ! Ý tưởng ! Các bước thực hiện – Cấu trúc – struct ! Đánh giá độ phức tạp thuật toán – … ! Lấy ví dụ minh họa ! Bài tập lớn – viết ra giấy – Xác định đối tượng dữ liệu đầu vào cần quản lý (các thành phần và kiểu tương ứng) – Lấy bộ dữ liệu mẫu có ý nghĩa (tối thiêu 10 bộ) – Làm theo nhóm (ghi rõ họ tên + lớp) 135 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 136 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 137 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở
  11. ! Cài đặt bài tập lớn bằng mảng – Cách thức nộp bài: ! Yêu cầu: – Xây dựng cấu trúc đối tượng được quản lý ! Viết ra giấy: nộp cho GV đầu giờ học buổi – Cài đặt các thao tác với danh sách (mỗi thao tác tương ứng với 03/10/13 một CTC) ! Hoặc Viết code: gửi mail trước trước 21h - ngày ! Nhập 1 đối tượng - In 1 đối tượng 02/10/13 ! Nhập 1 mảng đối tượng - In lại 1 mảng đối tượng – email: trinhxuan@gmail.com ! Tìm kiếm một đối tượng nào đó theo mã, … – Subject: CTDL - ! In danh sách các đối tượng theo điều kiện nào đó – Attach: file chương trình (*.CPP) ! Sắp xếp các đối tượng theo tiêu chí nào đó ! Đếm các phần từ theo một điều kiện nào đó – Tên file là tên sinh viên kèm tên lớp ! … (tối thiểu 10 CTC khai thác) – (đầu file ghi rõ họ tên – lớp và đề bài tập lớn) – Chương trình chính (áp dụng các CTC đã cài đặt trên) 138 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở 139 8/4/16 CTDL – Khoa CNTH – Viện ĐH Mở
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1