logo

Soạn Tin học 11 Kết nối tri thức Bài 29: Thực hành thiết kế chương trình theo Mô đun (trang 132, 136)

Hướng dẫn Soạn Tin học 11 Kết nối tri thức Bài 29: Thực hành thiết kế chương trình theo Mô đun trang 132, 136 ngắn gọn, hay nhất theo chương trình Sách mới.

Bài 29: Thực hành thiết kế chương trình theo Mô đun


1. Hãy chỉnh sửa lại chương trình trên nêu bổ sung thêm điều kiện sau vào nhiệm vụ:

Trong tệp kết quả đầu ra, thứ tự các vận động viên được ghi theo thứ tự giảm dần của điểm đánh giá.

Trả lời:

int main(){

    int a[100];

    int n;

    printf("\nNhap so luong phan tu n = ");

    do{

        scanf("%d", &n);

        if(n <= 0){

            printf("\nNhap lai n = ");

        }

    }while(n <= 0);

    

    for(int i = 0; i < n; i++){

        printf("\nNhap a[%d] = ",i);

        scanf("%d", &a[i]);

    }

    // Sap xep dung thuat toan sap xep chon

    int tg;

    for(int i = 0; i < n - 1; i++){

        for(int j = i + 1; j < n; j++){

            if(a[i] < a[j]){

                // Hoan vi 2 so a[i] va a[j]

                tg = a[i];

                a[i] = a[j];

                a[j] = tg;        

            }

        }

    }

    printf("\nMang da sap xep la: ");

    for(int i = 0; i < n; i++){

        printf("%5d", a[i]);

    } 

}


2. Trong nhiệm vụ trên, nếu công thức tính điểm tổng hợp của Sea Games thay đổi thì chúng ta có phải sửa lại toàn bộ chương trình hay không? Nếu cần thì chỉ phải sửa mo đun nào? Hàm nào?

Trả lời:

- Không cần phải sửa lại toàn bộ chương trình. Chỉ cần sửa module có công thức.


3. Thiết lập chương trình thiết kế theo mô đun cho các bài toán sau:

a. Cho trước số tự nhiên n, cần in ra trên màn hình dãy n số nguyên tố đầu tiên. Ví dụ nếu n = 5 thì dãy cần in ra sẽ là 2, 3, 5, 7, 11.

Trả lời:

Để giải quyết bài toán in ra dãy n số nguyên tố đầu tiên, chúng ta có thể sử dụng mô đun để phân chia chương trình thành các phần nhỏ hơn để quản lý và sử dụng lại ở những chương trình khác.

Một mô đun có thể được viết như sau:

def is_prime(n):
   """
   Kiểm tra n có phải là số nguyên tố hay không
   """
   if n <= 1:
       return False
   for i in range(2, int(n ** 0.5) + 1):
       if n % i == 0:
           return False
   return True

def get_first_n_primes(n):
   """
   Trả về danh sách chứa n số nguyên tố đầu tiên
   """
   primes = []
   i = 2
   while len(primes) < n:
       if is_prime(i):
           primes.append(i)
       i += 1
   return primes

Trong đó, hàm is_prime được sử dụng để kiểm tra xem một số n có phải là số nguyên tố hay không. Hàm get_first_n_primes sẽ sử dụng hàm is_prime để lấy ra n số nguyên tố đầu tiên.

Để sử dụng mô đun này, chúng ta có thể import vào chương trình của mình bằng cách sử dụng lệnh import. Ví dụ:

import primes

n = 5
first_n_primes = primes.get_first_n_primes(n)
print(first_n_primes)

Đoạn mã trên sẽ in ra dãy 5 số nguyên tố đầu tiên: `[2, 3, 5, 7, 11]`.

b. Trong một kì thi Tin học trẻ, mỗi học sinh sẽ phải làm 3 bài thi. Với mỗi bài, nêu học sinh làm sẽ được ban giám khảo chấm và cho điểm, nếu không làm thì sẽ không tính điểm. Sau khi thi, dữ liệu điểm thi của học sinh sẽ được lưu trong một tệp văn bản và gửi về ban tổ chức. Mẫu một tệp điểm thi có dạng sau:

Trong một kì thi Tin học trẻ, mỗi học sinh sẽ phải làm 3 bài thi.

Quy định ghi trong tệp trên như sau:

- Mỗi dòng sẽ bắt đầu bằng số báo danh của thí sinh, tiếp theo là ba giá trị điểm tương ứng với ba bài thì.

- Điểm thi sẽ là một số tự nhiên từ 0 đến 20.

- Nếu học sinh không làm thì bài đó ghi -1.

Em có nhiệm vụ tính toán tổng só điểm thi của các bạn học sinh và đưa dữ liệu ra tệp ketqua.out là danh sách ba bạn có tổng điểm cao nhất được sắp xếp giảm dần từ trên xuống đưới. Khuôn dạng dữ liệu đưa ra bao gồm: số báo danh, các điểm thi từng bài và cuối cùng là tổng điểm cả ba bài.

Ví dụ với dữ liệu trên thì kết quả như sau:

Trong một kì thi Tin học trẻ, mỗi học sinh sẽ phải làm 3 bài thi.

Trả lời:

int main(int argc, char *argv[]) 

  float x; 
  float y; 
  float z; 
  float trungbinh; 
  cout<<"Nhap ba diem (diem kiem tra, diem giua ky va diem cuoi ky) tuong ung la:"; 
  cin>>x>>y>>z; 
  trungbinh=(x+y+z)/3;         
  if(trungbinh>=9.0)cout<<"Hang A"; 
  else if((trungbinh>=7.0) && (trungbinh<90)) cout<<"Hang B"; 
  else if((trungbinh>=5.0) && (trungbinh<70))cout<<"Hang C"; 
  else if(trungbinh<5.0) cout<<"Hang F"; 
  else cout<<"Khong hop le";    
  cout<<"\n";    
  return 0; 
}

>>> Xem toàn bộ: Soạn Tin 11 Kết nối tri thức

-------------------------------------

Trên đây Toploigiai đã cùng các bạn Soạn Tin học 11 Kết nối tri thức Bài 29 trang 132, 136: Thực hành thiết kế chương trình theo Mô đun trong bộ SGK Kết nối tri thức theo chương trình sách mới. Chúng tôi hi vọng các bạn đã có kiến thức hữu ích khi đọc bài viết này. Click vào trang chủ Toploigiai để tham khảo và chuẩn bị bài cho năm học mới nhé. Chúc các bạn học tốt!

icon-date
Xuất bản : 25/02/2023 - Cập nhật : 19/07/2023

Tham khảo các bài học khác