Làm thế nào để thấy đổi thứ tự thực hiện tuần tự các bước trong thuật toán

Home cách giải thuật toán trong tin học lớp 10

Nội dung bài học bài Bài toán và thuật toán dưới đây sẽ giúp các em tìm hiểu khái biệm bài toán trong Tin học, khái niệm thuật toán, cách biểu diễn thuật toán, hiểu được quan hệ giữa các khái niệm "Bài toán" – "Thuật toán" – "Ngôn ngữ lập trình", rèn cho các em kĩ năng biểu diễn các thuật toán tìm kiếm nhị phân, tìm kiếm tuần tự; thuật toán sắp xếp bằng cách tráo đổi;... Mời các em cùng theo dõi nội dung bài học.

Bạn đang xem: Cách giải thuật toán trong tin học lớp 10


1. Tóm tắt lý thuyết

1.1. Khái niệm bài toán

1.2. Khái niệm thuật toán

1.3. Một số ví dụ về thuật toán

2. Luyện tập Bài 4 Tin học 10

2.1. Trắc nghiệm

2.2. Bài tập SGK

3. Hỏi đápBài 4 Tin học 10


a. Khái niệmBài toán là một việc nào đó mà con người muốn máy tính thực hiệnCác yếu tố của một bài toán:Input: Thông tin đã biết, thông tin đưa vào máy tínhOutput: Thông tin cần tìm, thông tin lấy ra từ máy tínhb. Ví dụTìm USCLN của 2 số nguyên dươngTìm số lớn nhất trong 3 số nguyên dương a,b,cTìm nghiệm của phương trình bậc nhất: ax + b = 0 [a≠0]...
a. Khái niệm

Thuật toán để giải một bài toán là:

Một dãy hữu hạn các thao tác [tính dừng]Các thao tác được tiến hành theo một trình tự xác định [tính xác định]Sau khi thực hiện xong dãy các thao tác đó ta nhận được Output của bài toán [tính đúng đắn]b. Cách biểu diễn thuật toán

Có 2 cách để biểu diễn thuật toán:

Cách dùng phương pháp liệt kê: Nêu ra tuần tự các thao tác cần tiến hànhVí dụ: Cho bài toán Tìm nghiệm của phương trình bậc 2: ax2 + bx + c = 0 [a≠0]?Xác định bài toánInput: Các số thực a, b, cOutput: Các số thực x thỏa mãn ax2+ bx + c = 0 [a≠0]Thuật toán:Bước 1: Nhập a, b, c [a≠0]Bước 2: Tính Δ = b2 – 4acBước 3: Nếu Δ>0 thì phương trình có 2 nghiệm là\[x_{1}=\frac{-b+\sqrt{\triangle}}{2a}\] ; \[x_{2}=\frac{-b-\sqrt{\triangle}}{2a}\]rồi kết thúcBước 4: Nếu Δ = 0 thì phương trình có nghiệm kép \[x_{1,2}=\frac{-b}{2b}\]rồi kết thúc thuật toán.Nếu không chuyển sang bước tiếp theoBước 5: Kết luận phương trình vô nghiệm rồi kết thúcCách dùng sơ đồ khốiHình thoi

: thể hiện thao tác so sánh;Hình chữ nhật

: thể hiện các phép tính toán;Hình ô van

: thể hiện thao tác nhập, xuất dữ liệu;Các mũi tên

: qui định trình tự thực hiện các thao tác.

Xem thêm: Làm Thế Nào Để Tự Động Viết Hoa Chữ Cái Đầu Trong Word 2003 2007 2010 2013 2016


1.3.Một số ví dụ về thuật toán


Bài toán 1: Kiểm tra tính nguyên tố

1. Xác định bài toán

Input: N là một số nguyên dươngOutput:N là số nguyên tố hoặcN không là số nguyên tốĐịnh nghĩa: "Một số nguyên dương N là số nguyên tố nếu nó chỉ có đúng hai ước là 1 và N"Tính chất:Nếu N = 1 thì N không là số nguyên tốNếu 1

2. Ý tưởng

NN>=4: Tìm ước i đầu tiên > 1 của NNếu i Nếu i = N thì N là số nguyên tố

3. Xây dựng thuật toán

a] Cách liệt kê

Bước 1: Nhập số nguyên dương N;Bước 2: Nếu N=1 thì thông báo "N không là số nguyên tố", kết thúc;Bước 3: Nếu NBước 4:\[i \leftarrow2 ;\]Bước 5: Nếu i là ước của N thì đến bước 7Bước 6: \[i \leftarrow i +1\]rồi quay lại bước 5; [Tăng i lên 1 đơn vị]Bước 7: Nếu i = N thì thông báo "N là số nguyên tố", ngược lại thì thông báo "N không là số nguyên tố", kết thúc;

b] Sơ đồ khối

Hình 1.Sơ đồ khối thuật toán kiểm tra tính nguyên tố của một số nguyên dương N

Lưu ý:Nếu N >= 4 và không có ước trong phạm vi từ 2 đến phần nguyên căn bậc 2 của N thì N là số nguyên tố

Bài toán 2: Sắp xếp bằng cách tráo đổi

1. Xác định bài toán

Input: Dãy A gồm N số nguyên a1, a2,…,anVí dụ : Dãy A gồm các số nguyên: 2 4 8 7 1 5Output: Dãy A được sắp xếp thành dãy không giảmDãy A sau khi sắp xếp: 1 2 4 5 7 8

2. Ý tưởng

Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước > số sau ta đổi chỗ chúng cho nhau. [Các số lớn sẽ được đẩy dần về vị trí xác định cuối dãy]Việc này lặp lại nhiều lượt, mỗi lượt tiến hành nhiều lần so sánh cho đến khi không có sự đổi chỗ nào xảy ra nữa

3. Xây dựng thuật toán

Bước 1. Nhập N, các số hạng a1, a2,…,an;Bước2. Đầu tiên gọi M là số số hạng cầnso sánh, vậy M sẽ chứa giá trịcủa N:\[M \leftarrow N\];Bước3. Nếu số số hạng cần so sánh Bước4. M chứa giá trị mới là số phép so sánhcần thực hiện trong lượt:\[M \leftarrow M-1\]. Gọi i là số thứ tự của mỗi lần so sánh, đầu tiên i 0;Bước5. Để thực hiện lần so sánh mới,i tăng lên 1 [lần so sánh thứ i]Bước6. Nếu lần so sánh thứ i> số phép so sánh M:đã hoàn tất M số phép so sánh của lượt này.Lặp lại bước 3, bắt đầu lượt kế [với số sốhạng cần so sánh mới chính là M đã giảm 1ở bước 4];Bước7. So sánh 2 phần tử ở lần thứ i là ai và ai+1.Nếu ai > ai+1 thì tráo đổi 2 phần tử này;Bước8. Quay lại bước 5

a] Đối chiếu, hình thành các bước liệt kê

Bước 1: Nhập N, các số hạng a1, a2,…,an;Bước 2:\[M \leftarrow N ;\]Bước 3: Nếu M Bước 4:\[M \leftarrow M-1 ; i \leftarrow 0 ;\]Bước 5:\[ i \leftarrow i - 1 ;\]Bước 6: Nếu i > M thì quay lại bước 3;Bước 7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau;Bước 8: Quay lại bước 5;

b] Sơ đồ khối

Hình 2. Sơ đồ khối thuật toánsắp xếp bằng cách tráo đổi

Bài toán 3: Tìm kiếm tuần tự

1. Xác định bài toán

Input : Dãy A gồm N số nguyên khác nhau a1, a2,…,an và một số nguyên k [khóa]Ví dụ : Dãy A gồm các số nguyên:5 7 1 4 2 9 8 11 25 51 . Và k = 2 [k = 6]Output: Vị trí i mà ai = k hoặc thông báo không tìm thấy k trong dãy. Vị trí của 2 trong dãy là 5 [không tìm thấy 6]

2. Ý tưởng

Tìm kiếm tuần tự được thực hiện một cách tự nhiên: Lần lượt đi từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khóa cho đến khi gặp một số hạng bằng khóa hoặc dãy đã được xét hết mà không tìm thấy giá trị của khóa trên dãy.

3. Xây dựng thuật toán

a] Cách liệt kê

Bước 1: Nhập N, các số hạng a1, a2,…, aN và giá trị khoá k;Bước 2:\[i \leftarrow 1;\]Bước 3: Nếu ai = k thì thông báo chỉ số i, rồi kết thúc;Bước 4:\[i \leftarrow i + 1;\]Bước 5: Nếu i > N thì thông báo dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc;Bước 6: Quay lại bước 3;

b] Sơ đồ khối

Hình 3. Sơ đồ khối thuật toán tìm kiếm tuần tự

Bài toán 4: Tìm kiếm nhị phân

1. Xác định bài toán

Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2,…,an và một số nguyên k.Ví dụ: Dãy A gồm các số nguyên:2 4 5 6 9 21 22 30 31 33.Và k = 21 [k = 25]Output : Vị trí i mà ai = k hoặc thông báo không tìm thấy k trong dãy.Vị trí của 21 trong dãy là 6[không tìm thấy 25]

2. Ý tưởng

Sử dụng tính chất dãy A đã sắp xếp tăng, ta tìm cách thu hẹp nhanh vùng tìm kiếm bằng cách so sánh k với số hạng ở giữa phạm vi tìm kiếm [agiữa], khi đó chỉ xảy ra một trong ba trường hợp:Nếu agiữa= k thìtìm được chỉ số, kết thúc;Nếu agiữa > k thì việc tìm kiếm thu hẹp chỉ xét từ ađầu [phạm vi] \[\rightarrow\]agiữa - 1;Nếu agiữa giữa + 1 \[\rightarrow\]acuối [phạm vi].Quá trình trên được lặp lại cho đến khi tìm thấy khóa k trên dãy A hoặc phạm vi tìm kiếm bằng rỗng.

3. Xây dựng thuật toán

a] Cách liệt kê

Bước 1: Nhập N, các số hạnga1, a2,…, aN và giá trị khoá k;Bước 2: Đầu \[\leftarrow\]1; Cuối \[\leftarrow\]N;Bước 3: Giữa ;Bước 4: Nếu aGiữa = k thì thông báochỉ số Giữa, rồi kết thúc;Bước 5: Nếu aGiữa > k thì đặt Cuối = Giữa - 1rồi chuyển sang bước 7;Bước 6: Đầu \[\leftarrow\]Giữa + 1;Bước 7: Nếu Đầu > Cuối thì thông báo không tìm thấy khóa k trên dãy, rồi kết thúc;Bước 8: Quay lại bước 3.

b] Sơ đồ khối

JavaScript isn't enabled in your browser, so this file can't be opened. Enable and reload.

  • Tải app VietJack. Xem lời giải nhanh hơn!

  • Lý thuyết Bài 4: Bài toán và thuật toán [hay, chi tiết]

Câu 1:

A. Thể hiện thao tác tính toán

B. Thể hiện thao tác so sánh

C. Quy định trình tự thực hiện các thao tác

D. Thể hiện các thao tác nhập, xuất dữ liệu

Hiển thị đáp án

Đáp án : A

Giải thích :

Khi biểu diễn thuật toán bằng lưu đồ [sơ đồ khối]:

+ Hình chữ nhật có ý nghĩa là thể hiện thao tác tính toán.

+ Hình thoi thể hiện thao tác so sánh.

+ Các mũi tên thể hiện quy định trình tự thực hiện các thao tác.

+ Hình ô van thể hiện các thao tác nhập, xuất dữ liệu.

Câu 2: Thuật toán có tính:

A. Tính xác định, tính liên kết, tính đúng đắn

B. Tính dừng, tính liên kết, tính xác định

C. Tính dừng, tính xác định, tính đúng đắn

D. Tính tuần tự: Từ input cho ra output

Hiển thị đáp án

Đáp án : C

Giải thích :

+ Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện cac thao tác→ tính dừng.

+ Sau khi thực hiện một thao tác thì hoạc là thuật toán kết thúc hoặc có đúng 1 thao tác xác định để thực hiện tiếp theo→ tính xác định.

+ Sau khi thuật toán kết thúc, ta phải nhận được Output của cần tìm→Tính đúng đắn.

Câu 3: Trong tin học sơ đồ khối là:

A. Ngôn ngữ lập trình bậc cao

B. Sơ đồ mô tả thuật toán

C. Sơ đồ về cấu trúc máy tính

D. Sơ đồ thiết kế vi điện tử

Hiển thị đáp án

Đáp án : B

Giải thích :

Trong tin học sơ đồ khối là sơ đồ mô tả dãy các thao tác thể hiện thuật toán bởi một số khối và đường mũi tên.

Câu 4: Chọn phát biểu đúng khi nói về Bài toán và thuật toán:

A. Trong phạm vi Tin học, ta có thể quan niệm bài toán là việc nào đó mà ta muốn máy tính thực hiện

B. Thuật toán [giải thuật] để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác đó, từ Input của bài toán này, ta nhận được Output cần tìm

C. Sơ đồ khối là sơ đồ mô tả thuật toán

D. Cả ba câu trên đều đúng

Hiển thị đáp án

Đáp án : D

Giải thích :

+ Bài toán là việc nào đó mà ta muốn máy tính thực hiện.

+ Thuật toán [giải thuật] để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác đó, từ Input của bài toán này, ta nhận được Output cần tìm.

+ Sơ đồ khối là sơ đồ mô tả thuật toán.

Câu 5: Thuật toán sắp xếp bằng đổi chỗ cho dãy số A theo trật tự tăng dần dừng lại khi nào?

A. Khi M =1 và không còn sự đổi chỗ

B. Khi số lớn nhất trôi về cuối dãy

C. Khi ai > ai + 1

D. Tất cả các phương án

Hiển thị đáp án

Đáp án : A

Giải thích :

Thuật toán sắp xếp bằng đổi chỗ cho dãy số A theo trật tự tăng dần dừng lại khi:

+ M =1 thì trong dãy có một số hạng nên không cần đổi chỗ và thuật toán kết thúc

+ Không còn sự đổi chỗ vì với mỗi cặp số hạng liền kề trong dãy, nếu số trước lớn hơn sau ta đổi chỗ chúng cho nhau và lặp đi lặp lại, cho đến khi còn số hạng nào đổi chỗ nữa thì dừng.

Câu 6: Cho thuật toán tìm giá trị nhỏ nhất trong một dãy số nguyên sử dụng phương pháp liệt kê dưới đây:

Bước 1: Nhập N, các số hạng a1, a2,…., aN;

Bước 2: Min ← ai, i ← 2;

Bước 3: Nếu i < N thì đưa đưa ra giá trị Min rồi kết thúc;

Bước 4:

Bước 4.1: Nếu ai > Min thì Min ← ai;

Bước 4.2: i ← i+1, quay lại bước 3.

Hãy chọn những bước sai trong thuật toán trên:

A. Bước 2

B. Bước 3

C. Bước 4.1

D. Bước 4.2

Hiển thị đáp án

Đáp án : C

Giải thích :

Bước 4.1: Nếu ai> Min thì Min ← ai là sai vì nếu ai> Min. vậy sẽ có 1 số hạng ai lớn hơn Min. Vậy Min là nhỏ nhất nên không thể gán ai cho Min. Cần sửa là Nếu ai Min.

Câu 7: Thuật toán tốt là thuật toán:

A. Thời gian chạy nhanh

B. Tốn ít bộ nhớ

C. Cả A và B đều đúng

D. Tất cả các phương án đều sai

Hiển thị đáp án

Đáp án : C

Giải thích :

Thuật toán tốt là thuật toán tốn ít bộ nhớ và thời gian giúp máy tính hiểu và giải quyết một bài toán nhanh, chính xác.

Câu 8: Input của bài toán: "Hoán đổi giá trị của hai biến số thực A và C dùng biến trung gian B" là:

A. Hai số thực A, C

B. Hai số thực A, B

C. Hai số thực B, C

D. Ba số thực A, B, C

Hiển thị đáp án

Đáp án : A

Giải thích :

Input của bài toán là các thông tin đã cho vì vậy Input của bài toán: "Hoán đổi giá trị của hai biến số thực A và C dùng biến trung gian B" là hai số thực A, C.

Câu 9: Cho bài toán kiểm tra tính nguyên tố của một số nguyên dương N. Hãy xác đinh Output của bài toán này?

A. N là số nguyên tố

B. N không là số nguyên tố

C. N là số nguyên tố hoặc N không là số nguyên tố

D. Tất cả các ý trên đều sai

Hiển thị đáp án

Đáp án : C

Giải thích :

Output là các thông tin cần tìm vì vậy bài toán kiểm tra tính nguyên tố của một số nguyên dương N, Output của bài toán này là N là số nguyên tố hoặc N không là số nguyên tố.

Câu 10: "…[1] là một dãy hữu hạn các …[2] được sắp xếp theo một trình tự xác định sao cho khi thực hiện dãy các thao tác ấy, từ …[3] của bài toán, ta nhận được …[4] cần tìm". Các cụm từ còn thiếu lần lượt là?

A. Input – Output - thuật toán – thao tác

B. Thuật toán – thao tác – Input – Output

C. Thuật toán – thao tác – Output – Input

D. Thao tác - Thuật toán– Input – Output

Hiển thị đáp án

Đáp án : C

Giải thích :

Thuật toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho khi thực hiện dãy các thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm.

Xem thêm các bài Lý thuyết và Câu hỏi trắc nghiệm Tin học lớp 10 chọn lọc, có đáp án hay khác:

Giới thiệu kênh Youtube VietJack

  • Hỏi bài tập trên ứng dụng, thầy cô VietJack trả lời miễn phí!

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Nhóm học tập facebook miễn phí cho teen 2k6: fb.com/groups/hoctap2k6/

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.

bai-4-bai-toan-va-thuat-toan.jsp

Video liên quan

Chủ Đề