Nội dung chính tin học 11 theo định hướng khoa học máy tính cánh diều Chủ đề F(CS) Bài 11+ 12: Thực hành thiết kế và lập trình theo mô đun

Hệ thống kiến thức trọng tâm Chủ đề F(CS) Bài 11+ 12: Thực hành thiết kế và lập trình theo mô đun sách tin học 11 theo định hướng khoa học máy tính cánh diều. Với các ý rõ ràng, nội dung mạch lạc, đi thẳng vào vấn đề hi vọng người đọc sẽ nắm trọn kiến thức trong thời gian rất ngắn. Nội dung chính được tóm tắt ngắn gọn sẽ giúp thầy cô ôn tập củng cố kiến thức cho học sinh. Bộ tài liệu có file tải về. Mời thầy cô kéo xuống tham khảo

BÀI 11, 12. THỰC HÀNH THIẾT KẾ VÀ LẬP TRÌNH THEO MÔ ĐUN

1. THỰC HÀNH BÀI 11

Nhiệm vụ 2. Tham khảo đoạn chương trình sau:

def nhapTuTep():

    fi = open("../bangDiem.txt", encoding ='utf-8')

    dong = fi.readline().split()  # đọc dòng thứ nhất

    n = int (dong[0])

    m = int (dong[1])

    dong = fi.readline().split()  #đọc dòng thứ hai có các tên môn học

    for i in range(1,m+1):

        tenMon.append(dong[i])

    for i in range(n):              #đọc n dòng tiếp theo

        dong = fi.readline().split()

        ten = dong.pop(0)           # lấy tên HS

        tenHS.append(ten)           # đưa vào danh sách tenHS

        diem = [float(d) for d in dong]

        a.append(diem)              # nối phần còn lại là điểm của HS  

                                    # thành một hàng của a

fi.close()

return (n,m)

Nhiệm vụ 3. Tham khảo đoạn chương trình sau:

def tachMon(ds,chiso):  # ds: mảng hai chiều các điểm môn học

    ten = tenMon[chiso] # chiso: môn học thứ k

    kq1, kq2 = [], []   # kq1: danh sách điểm môn học

                        # kq2: danh sách các cặp (tên HS, điểm)

    for i in range(soHS):

        kq1.append(ds[i][chiso])        # nối thêm điểm của HS thứ i

        kq2.append([tenHS[i],ds[i][chiso]])  # nối thêm tên của HS

                                            # thứ i và điểm tương ứng

    return (ten, kq1, kq2)

Nhiệm vụ 4.

Đáp án 1. Kế thừa từ Bài 9

def phandoanLomuto_tuple_down(a, lo, hi):

    i = (lo-1)

    pivot = a[hi][1]            # thành phần 1 là điểm môn học

    for i in range(lo, hi):

        if a[j][1] >= pivot:    # giảm dần theo điểm môn học

            i = i+1

            a[i], a[j] = a[j], a[i]

    a[i+1], a[hi] = a[hi], a[i+1]

    return (i+1)

def quickSort_tuple_down(a, lo, hi):

    if len(a) == 1:

        return a

    if lo < hi:

        p = phandoanLomuto_tuple_down(a, lo, hi)

        quickSort_tuple_down(a,lo,p-1)

        quickSort_tuple_down(a,p+1,hi)

Đáp án 2: Cải biên thuật toán sắp xếp khác, ví dụ thuật toán sắp xếp chèn

def sxChen_tuple_down(a):       # chèn tuyến tính, a là danh sách các bộ

    n = len(a)

    for i in range(1,n):

        val = a[i][1]           # thành phần 1 là điểm môn học

        dsCon = a[i]

        j=i

        i=i+1

        # dịch dần từng bước, tìm vị trí để chèn

        while (j>0) and (a[j-1][1] > val):

            a[j] = a[j-1]

            j = j-1

        a[j] = dsCon

2. THỰC HÀNH BÀI 12

Nhiệm vụ 1:

- Chương trình 1:

# Các hằng xác định mức điểm

TOT, KHA, DAT = 8.5, 7.0, 5.0

def ptDiem(ds): # ds là dãy số thực

    n = len(ds)

    tong, tot, kha, dat, chuadat = 0, 0, 0, 0, 0

    i, i_max, i_min = 0, 0, 0

   

    while i < n:

        if ds[i] > ds[im_max]:

            i_max  = i

        if ds[i] < ds[i_min]:

            i_min = i

        tong = tong + ds[i]

        if ds[i] >= TOT: # TOT là hằng xác định mức điểm tốt

            tot += 1

        elif ds[i] >= KHA: # KHA là hằng xác định mức điểm khá

            kha += 1

        elif ds[i] >= DAT: # DAT là hằng xác định mức điểm đạt

            dat += 1

        i += 1

    return (ds[i_max], ds[i_min], tong, tot, kha, dat, chuadat)

- Chương trình 2:

def tuPhanVi(day): # dãy đã sắp xếp theo thứ tự tăng dần

    n = len(day)

    if n<3: return

    if n==3: return day

    kq = []

    for i in [1,2,3]:

        k = i*(n+1)//4

        if 4*k == i*(n+1):

            kq.append(a[k-1])

        else:

            kq.append((a[k-1]+a[k])/2)

    return kq

Nhiệm vụ 2:

def ptHocSinh(ds, chiso): # ds: dãy điểm của HS[chiso]

    n = len(ds)

    kq = ptDiem(ds)

    chamDiem = kq[3] - kq[5]

    if (chamDiem > 0): # xét khen thưởng

        tenKhenThuong.append([tenHS[chiso], chamDiem])

    diemTBC.append(kq[2]/n)

    print (tenHS[chiso],kq[0],kq[1],kq[2],kq[3],kq[4],kq[5],kq[6])

Nhiệm vụ 3:

def ptMonHoc(ds_1,ds_2): # ds_1: dãy số thực là các điểm môn học

                         # ds_2: danh sách các cặp (tên HS, điểm)

    kq = ptDiem(ds_1)

    print('max = ', "{:.2f}".format(kq[0]),\

          'min = ', "{:.2f}".format(kq[1]),\

          'trung bình = ', "{:.2f}".format(kq[2]/soHS),\

          'tot = ', kq[3], 'kha = ',kq[4],\

          'dat = ', kq[5], 'chua dat = ',kq[6])

quickSort_tuple_down(ds_2, 0, soHS - 1)

print('Sắp xếp theo điểm giảm dần :')

print(ds_2)

Nhiệm vụ 4:

...

n_m nhapTuTep ()

SoHS = n_m[0]

soMon = n_m[1]

out_1 = open("phanTich-theoHS.txt", "w", encoding ='utf-8')

out_2 = open("phanTich-theoMon.txt", "w", encoding ='utf-8')

out 3 = open ("xet Khen Thuong.txt", "w", encoding ='utf-8')

sys.stdout = out_1              # output ra file

for i in range(soHS):

    ptHocSinh (a[i], i)

sys.stdout = out 2              # output ra file

for k in range (soMon):         # soMon: số cột của mảng hai chiều

    kq tachMon (a, k)

   

    print('____', kq[0],'____: ')

    ptMonHoc (kq[1], kq[2]) # kq[1]: dãy điểm số

                            # kq[2]: danh sách các cặp (tên HS, điểm)

sys.stdout = out_3          # output ra file

for item in tenKhenThuong:

    print (item)

# đóng các tệp đầu ra

out_1.close()

out_2.close()

out 3.close()

=> Giáo án Khoa học máy tính 11 cánh diều Chủ đề F(CS) Bài 11, 12: Thực hành thiết kế và lập trình theo mô đun

Thông tin tải tài liệu:

Phía trên chỉ là 1 phần, tài liệu khi tải về là file word, có nhiều hơn + đầy đủ đáp án. Xem và tải: Kiến thức trọng tâm tin học 11 theo định hướng khoa học máy tính cánh diều - Tại đây

Tài liệu khác

Tài liệu của bạn

Tài liệu môn khác

Tài liệu mới cập nhật

Chat hỗ trợ
Chat ngay