Giáo án ppt KHMT 11 kết nối: Bài 22 Thực hành bài toán sắp xếp

Giáo án điện tử Tin học khoa học máy tính 11 kết nối tri thức: Bài 22 Thực hành bài toán sắp xếp. Bài giảng được thiết kế hiện đại, sáng tạo, sinh động với đầy đủ nội dung, hình ảnh,… giúp học sinh có hứng thú học tập tiếp thu hiệu quả hơn. Giáo viên tải về có thể sử dụng luôn để giảng dạy.

Nội dung chi tiết

... Còn nữa ...

CHAgrave;O MỪNG CAacute;C EM ĐẾN VỚI BAgrave;I HỌC MỚI!

KHỞI ĐỘNG

Trong bagrave;i 21, em đatilde; được học caacute;ch triển khai thuật toaacute;n sắp xếp để sắp xếp caacute;c phần tử trong danh saacute;ch theo thứ tự tăng dần. Nếu cần sắp xếp theo thứ tự ngược lại thigrave; cacirc;u lệnh so saacute;nh tương ứng trong vograve;ng lặp sẽ cần thay đổi như thế nagrave;o?

BAgrave;I 22: THỰC HAgrave;NH BAgrave;I TOAacute;N SẮP XẾP

NHIỆM VỤ 1

Cho danh saacute;ch số lượng mỗi mặt hagrave;ng trong kho của một cửa hagrave;ng. Người quản liacute; kho cần xem caacute;c mặt hagrave;ng theo thứ tự số lượng tăng dần.

Em hatilde;y viết chương trigrave;nh sắp xếp caacute;c mặt hagrave;ng trong kho theo thứ tự số lượng tăng dần, sử dụng thuật toaacute;n sắp xếp chegrave;n, sau đoacute; in ra magrave;n higrave;nh datilde;y số vừa sắp xếp. Danh saacute;ch số lượng caacute;c mặt hagrave;ng được đọc từ tệp văn bản kho.inp, mỗi dograve;ng bao gồm số lượng một mặt hagrave;ng.

Yecirc;u cầu: Thực hagrave;nh theo caacute;c nhoacute;m từ 2 - 4 HS

Gợi yacute;:

Chuacute;ng ta coacute; thể sử dụng thuật toaacute;n sắp xếp chegrave;n đatilde; học ở bagrave;i trước để sắp xếp caacute;c phần tử trong danh saacute;ch số lượng mặt hagrave;ng theo thứ tự tăng dần.

Chương trigrave;nh tham khảo:

1 inputshy;_file = open("kho.inp", encoding="UTF-8")

2 soluong_ds = []

3 for line in input_shy;file.readlines():

4 soluong_ds.append(int(line))

5 n = len(soluong_ds)

6 for i in range(1,n):

7 value = soluong_ds [i]

8 j = i ndash; 1

9 while j >= 0 and so luong_ds[j] > value:

10 soluong_ds[j+1] = soluong_ds[j] > value:

11 j = j ndash; 1

12 soluong_ds [j+1] = value

13 print('Số lượng caacute;c mặt hagrave;ng trong kho theo thứ tự tăng dần lagrave;:')

14 for i in range(0,len(soluong_ds)):

15 print(soluong_ds[i])

NHIỆM VỤ 2

Cho danh saacute;ch điểm trung bigrave;nh mocirc;n Tin học của caacute;c học sinh. Em hatilde;y sử dụng thuật toaacute;n sắp xếp chọn để sắp xếp danh saacute;ch nagrave;y theo thứ tự điểm trung bigrave;nh giảm dần, sau đoacute; in danh saacute;ch đatilde; sắp xếp ra magrave;n higrave;nh. Danh saacute;ch điểm trung bigrave;nh được đọc ra từ tệp văn bản diem.inp, mỗi dograve;ng bao gồm điểm trung bigrave;nh của một học sinh.

Gợi yacute;: Coacute; thể sử dụng thuật toaacute;n sắp xếp chọn đatilde; học ở bagrave;i trước để sắp xếp danh saacute;ch điểm số như sau:

1 inputshy;_file = open("diem.inp", encoding="UTF-8")

2 diem_ds = []

3 for line in input_shy;file.readlines():

4 diem_ds.append(float(line))

5 n = len(diem_ds)

6 for i in range(n-1):

7 iMax = i

8 for j in range(i+1,n):

9 if diem_ds[j] > diem_ds[iMax]:

10 iMax = j

11 diem_ds[i], diem_ds[iMax] = diem_ds[iMax], diem_ds[i]

12 print('Danh saacute;ch điểm theo thứ tự giảm dần lagrave;:')

13 for i in range(0,len(diem_ds)):

14 print(diem_ds[i])

LUYỆN TẬP

Bagrave;i 1

Sử dụng thuật toaacute;n sắp xếp chọn viết lại chương trigrave;nh trong Nhiệm vụ 1.

Bagrave;i 2

Sử dụng thuật toaacute;n sắp xếp nổi bọt viết lại chương trigrave;nh trong Nhiệm vụ 2.

Bagrave;i 1: Chương trigrave;nh tham khảo:

1 def SelectionSort(A):

2 n = len(A)

3 for i in range(i+1,n):

4 iMin = i

5 for j in range(i+1,n):

6 if A[j] < A[iMin]:

7 iMin = j

8 A[i],A[iMin] = A[iMin],A[i]

9 input_file = open("kho.inp", encoding="UTF-8")

10 soluong_ds = []

11 for line in input_file.readlines():

12 soluong_ds.append(int(line))

13 SelectionSort(soluong_ds)

14 print('Số lượng caacute;c mặt hagrave;ng trong kho theo thứ tự tăng dần lagrave;:')

15 for i in range(0,len(soluong_ds)):

16 print(soluong_ds[i])

Bagrave;i 2: Chương trigrave;nh tham khảo:

1 def BubbleSort(A):

2 n = len(A)

3 for i in range(n-1):

4 for j in range(n-1-i):

5 if A[j] < A[j+1]:

6 A[j],A[j+1] = A[j+1],A[j]

7 input_file = open("kho.inp", encoding="UTF-8")

8 soluong_ds = []

9 for line in input_file.readlines():

10 soluong_ds.append(int(line))

11 BubbleSort(soluong_ds)

12 print('Số lượng caacute;c mặt hagrave;ng trong kho theo thứ tự tăng dần lagrave;:')

13 for i in range(0,len(soluong_ds)):

14 print(soluong_ds[i])

VẬN DỤNG

Một người đi mua hagrave;ng với danh saacute;ch caacute;c mặt hagrave;ng cần mua, đơn giản từng mặt hagrave;ng vagrave; số lượng hagrave;ng cần mua được lưu trong tệp văn bản muahang.inp.

Hatilde;y sử dụng thuật toaacute;n nổi bọt để sắp xếp caacute;c mặt hagrave;ng theo thứ tự thagrave;nh tiền của caacute;c mặt hagrave;ng tăng dần rồi in ra tecirc;n caacute;c mặt hagrave;ng vagrave; thagrave;nh tiền tương ứng.

Chương trigrave;nh tham khảo:

DẶN DOgrave; VỀ NHAgrave;

Ghi nhớ kiến thức trong bagrave;i

Lagrave;m caacute;c bagrave;i tập trong SBT

Đọc trước Bagrave;i 23: Kiểm thử vagrave; đaacute;nh giaacute; chương trigrave;nh

TẠM BIỆT CAacute;C EM VAgrave; HẸN GẶP LẠI!