logo
ADVERTISEMENT

Tin học 11 Kết nối tri thức Bài 26 trang 118, 122

1. Với Bài toán 1, có thể tách các dòng lệnh từ 4 đến 9 thành một hàm con độc lập được không? 2. Trong thiết kế bài toán tìm các cặp phần tử nghịch đảo, các bước sau đã thực hiện những thay đồi quan trọng nào so với bước trước đó?

Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình


1. Phát biểu sau đúng hay sai?

Khi thiết kế chương trình thì việc đầu tiên là tìm hiểu yêu cầu chung của bài toán, xác định đầu vào, đầu ra của bài toán, sau đó mới đi cụ thể vào chi tiết.

Trả lời:

Đúng. Vì, trước khi bắt đầu thiết kế chương trình, việc tìm hiểu yêu cầu chung của bài toán, xác định đầu vào và đầu ra của bài toán là rất quan trọng để đảm bảo rằng chương trình được thiết kế đáp ứng đúng yêu cầu và hoạt động đúng cách. Sau đó, người thiết kế mới tiếp cận vào các chi tiết cụ thể của chương trình.


2. Sử dụng thiết kế của Bài toán 2, tìm tất cả các cặp nghịch đảo của dãy: 3, 2, 1, 5, 4.

Trả lời:

Bài toán và ý tưởng tìm số đảo ngược:

Nếu số nguyên dương n nhỏ hơn hoặc bằng giá trị tối đa của kiểu int hoặc long long trong C/C++, ta có thể tính toán trên kiểu dữ liệu số này. Trường hợp số n có nhiều chữ số, ta cần sử dụng mảng ký tự trong C hoặc kiểu string của C++ để xử lý.

- Để tìm số đảo ngược của một số, có thể sử dụng cách sau đây:

+ Lấy từng chữ số ở hàng đơn vị và in ra luôn, sử dụng toán tử chia nguyên (/) và chia dư (%) trong C/C++.

Ví dụ:

#include <iostream>
using namespace std;

int main() {
   int n, tmp;
   cin >> n;
   bool first = true;
   while(n > 0) {
       tmp = n % 10;
       if(first == true) {
           if(tmp != 0) {
               cout << tmp;
               first = false;
           }
       } else {
           cout << tmp;
       }
       n = n / 10;
   }
   return 0;
}

Ở đây biến first có tác dụng đánh dấu có phải ta đang tìm số đầu tiên hay không. Nếu đang tìm số đầu tiên, ta chỉ in khi tmp khác giá trị 0. In được giá trị đầu tiên rồi thì gán first = false;. Trường hợp còn lại in ra bình thường.


3. Sử dụng phương pháp làm mịn dần để giải bài toán sau: Cho trước số tự nhiên không âm n, viết chương trình kiểm tra xem số n có phải là số nguyên tố hay không? Chương trình cần thông báo "CÓ" nếu n là số nguyên tế, ngược lại thông báo "KHÔNG".

Trả lời:

function ktnt(x:int64):boolean;
var i:int64;
begin
    if x<2 then exit(false);
    if (x=2)or(x=3) then exit(true);
    if (x mod 2=0)or(x mod 3=0) then exit(false);
    i:=5;
    while i<=trunc(sqrt(x)) do
    begin
       if  (x mod i=0)or(x mod (i+2)=0) then exit(false);
       inc(i,6);
    end;
    exit(true);
end;


4. Với thuật toán sắp xếp chèn, chứng minh rằng nếu thay toàn bộ phần Chèn A[i] vào vị trị đúng của dãy con A[@), A[l], ..., A[i - 1]> bằng các lệnh sau thì chương trình vẫn đứng:

Với thuật toán sắp xếp chèn, chứng minh rằng nếu thay toàn bộ phần Chèn A[i] vào vị trị đúng của dãy con A[@), A[l], ..., A[i - 1]> bằng các lệnh sau thì chương trình vẫn đứng:

 

Trả lời:

- Thay toàn bộ phần Chèn A[i] vào vị trị đúng của dãy con A[@), A[l], ..., A[i - 1] và xem kết quả đưa ra nhận xét

>>> 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 Trả lời câu hỏi Tin học 11 Kết nối tri thức Bài 26 trang 118, 122: Phương pháp làm mịn dần trong thiết kế chương trình 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!

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

ADVERTISEMENT