Danh mục bài soạn

Giải tin học ứng dụng 11 sách cánh diều bài 7 Lập trình giải bài toán tìm kiếm

Hướng dẫn học môn Tin học ứng dụng 11 sách mới Cánh diều. Dưới đây là lời giải chi tiết bài 7 Lập trình giải bài toán tìm kiếm. Từng bài tập được giải chi tiết, rõ ràng, dễ hiểu. Hi vọng, hocthoi.net sẽ hỗ trợ các em trong quá trình học tập, giúp các em ngày càng tiến bộ hơn.

KHỞI ĐỘNG

Câu hỏi. Khi tạo mới một tài khoản người dùng, em được yêu cầu nhập tên người dùng “user name”. Có trường hợp em phải nhập lại tên khác vì tên vừa nhập đã có người sử dụng rồi. Theo em, máy tính làm gì ngay sau khi nhận được yêu cầu tạo mới một tài khoản? Hãy phát biểu thành một bài toán.

Lời giải:

Khi tạo mới một tài khoản người dùng, em được yêu cầu nhập tên người dùng “user name”. Có trường hợp em phải nhập lại tên khác vì tên vừa nhập đã có người sử dụng rồi. Theo em, máy tính phải bắt đầu tìm kiếm dữ liệu và tiến hành xử lí thông tin ngay sau khi nhận.

VẬN DỤNG

Câu hỏi. Viết chương trình tìm kiếm vị trí tên của một người trong mỗi danh sách sau đây:

a) Danh sách học sinh của lớp em.

b) Danh sách tên các chủ tài khoản ngân hàng (kí tự không dấu) và đã sắp thứ tự theo bang chữ cái.

Lời giải:

a) Gợi ý

Gán i = 0

Gán j = 0

Nếu A[j] > A[j + 1] thì đối chỗ A[j] và A[j + 1]

Nếu j < n – i – 1:

Đúng thì j = j + 1 và quay lại bước 3

Sai thì sang bước 5

Nếu i < n – 1:

Đúng thì i = i + 1 và quay lại bước 2

Sai thì dừng lại

b) Gợi ý:

#include<stdio.h>

#include<string.h>

int main() {

   char s[4][20];

   char t[20];

   int i, j;

   int size = 4;

   printf("\nNhap 4 chuoi bat ky: \n");

   for (i = 0; i < size; i++) {

      scanf("%s", s[i]);

   }

   // sap xep chuoi

   for (i = 1; i < size; i++) {

      for (j = 1; j < size; j++) {

         if (strcmp(s[j - 1], s[j]) > 0) {

            strcpy(t, s[j - 1]);

            strcpy(s[j - 1], s[j]);

            strcpy(s[j], t);

         }

      }

   }

   printf("\nSap xep thu tu cua cac chuoi:");

   for (i = 0; i < size; i++) {

      printf("\n%s", s[i]);

   }

   return(0);

}

CÂU HỎI TỰ KIỂM TRA

Câu 1. Em hãy nêu ra một vài ví dụ về bài toàn tìm kiếm trong thực tế.

Lời giải:

- Tìm kiếm sản phẩm trong cơ sở dữ liệu của một trang thương mại điện tử.

- Tìm kiếm thông tin liên hệ của một người trong danh sách khách hàng của một doanh nghiệp.

- Tìm kiếm một file hoặc thư mục trong hệ thống tệp của máy tính.

- Tìm kiếm các bản ghi trong cơ sở dữ liệu y tế để tìm kiếm bệnh nhân cần điều trị.

- Tìm kiếm các bản ghi trong cơ sở dữ liệu của một trang tuyển dụng để tìm kiếm ứng viên phù hợp.

Câu 2. Theo em, với dãy đã sắp thứ tự và cho một số x cụ thể

a) Trường hợp nào tìm kiếm tuần tự nhanh hơn tìm kiếm nhị phân?

b) Về trung bình thuật toán tìm kiếm tuần tự hay thuật toán tìm kiếm nhị phân tốt hơn?

Lời giải:

a. Ví dụ một bài toán tìm kiếm trong thực tế: Giáo viên muốn tìm tên bạn Chung trong danh sách lớp sau:

 

Theo em với dãy đã sắp thứ tự và cho một số x cụ thể

Các bước thực hiện thuật toán tìm kiếm nhị phân cho bài toán trên:

- Bước 1: Xét vị trí ở giữa dãy, đó là vị trí số 5

Theo em với dãy đã sắp thứ tự và cho một số x cụ thể

 

- Vì sau bước 2 đã tìm thấy tên học sinh nên thuật toán kết thúc.

b) Thuật toán tìm kiếm nhị phân

- Thuật toán tìm kiếm nhị phân thu hẹp được phạm vi tìm kiếm chỉ còn tối đa là một nửa sau mỗi lần lặp. Thuật toán chia bài toán thành những bài toán nhỏ hơn giúp tăng hiệu quả tìm kiếm.

Thuật toán tuần tự

- Mô tả thuật toán phải cụ thể, rõ ràng, đầy đủ, đầu vào là gì, đầu ra là gì và chỉ rõ sự kết thúc thuật toán.

- Cần mô tả thuật toán cho tốt thì người máy hay máy tính mới hiểu đúng và thực hiện được.

- Nếu không, kết quả thực hiện thuật toán có thể không như mong đợi.

Từ khóa tìm kiếm google:

Giải tin học 11 cánh diều bài 7 Lập trình giải bài toán tìm kiếm, Giải tin học 11 cánh diều bài 7 Lập trình giải bài toán tìm kiếm, Giải tin học KNTT bài 7 Lập trình giải bài toán tìm kiếm
Phần trên, hocthoi.net đã soạn đầy đủ lý thuyết và bài tập của bài học: Giải tin học ứng dụng 11 sách cánh diều bài 7 Lập trình giải bài toán tìm kiếm . Bài học nằm trong chuyên mục: Giải tin học ứng dụng 11 cánh diều. Phần trình bày do Thanh Tuyền CTV tổng hợp và thực hiện giải bài. Nếu có chỗ nào chưa rõ, có phần nào muốn hiểu rộng thêm, bạn đọc vui lòng comment bên dưới. Ban biên tập sẽ giải đáp giúp các bạn trong thời gian sớm nhất.

Bài soạn các môn khác

Bình luận