Trang chủ
Bài viết mới
Diễn đàn
Bài mới trên hồ sơ
Hoạt động mới nhất
VIDEO
Mùa Tết
Văn Học Trẻ
Văn Học News
Media
New media
New comments
Search media
Đại Học
Đại cương
Chuyên ngành
Triết học
Kinh tế
KHXH & NV
Công nghệ thông tin
Khoa học kĩ thuật
Luận văn, tiểu luận
Phổ Thông
Lớp 12
Ngữ văn 12
Lớp 11
Ngữ văn 11
Lớp 10
Ngữ văn 10
LỚP 9
Ngữ văn 9
Lớp 8
Ngữ văn 8
Lớp 7
Ngữ văn 7
Lớp 6
Ngữ văn 6
Tiểu học
Thành viên
Thành viên trực tuyến
Bài mới trên hồ sơ
Tìm trong hồ sơ cá nhân
Credits
Transactions
Xu: 0
Đăng nhập
Đăng ký
Có gì mới?
Tìm kiếm
Tìm kiếm
Chỉ tìm trong tiêu đề
Bởi:
Hoạt động mới nhất
Đăng ký
Menu
Đăng nhập
Đăng ký
Install the app
Cài đặt
Chào mừng Bạn tham gia Diễn Đàn VNKienThuc.com -
Định hướng Forum
Kiến Thức
- HÃY TẠO CHỦ ĐỀ KIẾN THỨC HỮU ÍCH VÀ CÙNG NHAU THẢO LUẬN Kết nối:
VNK X
-
VNK groups
| Nhà Tài Trợ:
BhnongFood X
-
Bhnong groups
-
Đặt mua Bánh Bhnong
KIẾN THỨC PHỔ THÔNG
Trung Học Phổ Thông
TIN HỌC THPT
Tin học 10
Bài toán và thuật toán - Bài 4
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Trả lời chủ đề
Nội dung
<blockquote data-quote="Đỗ Thị Lan Hương" data-source="post: 193013" data-attributes="member: 317476"><p>Bài toán trong Tin học là gì? Làm thế nào để giải một bài toán trên máy tính? Để trả lời câu hỏi này cùng tìm hiểu qua bài 4: Bài toán và thuật toán nhé!</p><p></p><p style="text-align: center"><strong><span style="font-size: 18px">Bài 4: Bài toán và thuật toán</span></strong></p><p><strong>Câu 1:</strong> Hãy phát biểu một bài toán và chỉ rõ Input và Output của bài toán đó.</p><p></p><p><strong>Lời giải chi tiết</strong></p><p>Ví dụ bài toán tính diện tích tam giác.</p><p>Phát biểu bài toán: Cho ba cạnh của tam giác ABC là: x, y, z. Hãy tính diện tích tam giác ABC.</p><p>- Input: Ba cạnh tam giác x, y, z.</p><p>- Output: Diện tích tam giác.</p><p></p><p><strong>Câu 2:</strong> Dãy các thao tác sau:</p><p>Bước 1. Xoá bảng;</p><p>Bước 2. Vẽ đường tròn;</p><p>Bước 3. Quay lại bước 1;</p><p>Có phải là thuật toán không? Tại sao?</p><p></p><p><strong>Lời giải chi tiết</strong></p><p>Dãy các thao tác :</p><p>Bước 1. Xoá bảng;</p><p>Bước 2. Vẽ đường tròn;</p><p>Bước 3. Quay lại bước 1;</p><p>Đây không phải là thuật toán, vì không thoả mãn tính chất dừng: đến bước 3 lại quay lại bước 1, nó tạo thành vòng lặp vô hạn không có điều kiện kết thúc.</p><p></p><p><strong>Câu 3:</strong> Hãy chỉ ra tính dừng của thuật toán tìm kiếm tuần tự.</p><p></p><p><strong>Lời giải chi tiết</strong></p><p></p><p>- Thuật toán tìm kiếm tuần tự:</p><p>Bước 1. Nhập N, các số hạng a,...a2,...aN và khoá k</p><p>Bước 2. i</p><p>Bước 3. Nếu ai= k thì thông báo chỉ số i, rồi kết thúc;</p><p>Bước 4. i</p><p>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ị nào bằng k, rồi kết thúc;</p><p>Bước 6. Quay lại bước 3.</p><p>- Tính dừng của thuật toán tìm kiếm tuần tự (nghĩa là thuật toán phải kết thúc sau một số hữu hạn lần bước tính) xảy ra khi thỏa mãn một trong hai trường hợp:</p><p>+ Nếu tìm thấy giá trị cần tìm trong dãy A (ai= k) thì thông báo chỉ số i (vị trí tìm thấy khoá k trong dãy A), rồi kết thúc.</p><p>+ Nếu không tìm thấy giá trị cần tìm trong dãy A, vì bước 4 thực hiện việc tăng giá trị của i lớn hơn 1, nên sau N lần thì i > N, thông báo dãy A không có giá trị nào bằng k, rồi kết thúc.</p><p><strong></strong></p><p><strong>Câu 4:</strong> Cho N và dãy số a1....aN, hãy tìm giá trị nhỏ nhất (Min) của dãy đó.</p><p></p><p><strong>Lời giải chi tiết</strong></p><p>• Xác định bài toán:</p><p>Input: Số N và dãy N số a1, a2, ...,aN.</p><p>Output: Giá trị nhỏ nhất (Min) của dãy số.</p><p></p><p>• Ý tưởng:</p><p>- Khởi tạo giá trị Min = a1.</p><p>- Lần lượt nhận giá trị /i từ 2 đến N, so sánh giá trị số hạng a1 với giá trị Min, nếu ai < Min thì Min nhận giá trị mới ai</p><p></p><p>• Thuật toán:</p><p></p><p>Mô tả thuật toán theo cách liệt kê:</p><p>Bước 1. Nhập N và dãy a1,....aN;</p><p>Bước 2. Mini, i</p><p>Bước 3. Nếu i > N thì đưa ra giá trị Min rồi kết thúc;</p><p>Bước 4.</p><p>Bước 4.1: Nếu ai < Min thì Mini</p><p>Bước 4.2: i</p><p></p><p><img src="https://img.loigiaihay.com/picture/2017/0110/c4.jpg" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p><strong></strong></p><p><strong>Câu 5:</strong> Mô tả thuật toán tìm nghiệm của phương trình bậc hai tổng quát bằng cách liệt kê hoặc bằng sơ đồ khối.</p><p></p><p><strong>Lời giải chi tiết</strong></p><p>• Xác định bài toán:</p><p>- Input: Các số thực a, h, c (a≠0).</p><p>- Output: Các số thực X thoả mãn ax2 + bx + c = 0.</p><p></p><p>• Ý tưởng:</p><p>- Tính d = b2 - 4ac.</p><p>- Lần lượt xét ba trường hợp cho giá trị d:</p><p>+ nếu d < 0 thì kết luận phương trình vô nghiệm ;</p><p>+ nếu d = 0 thì kết luận phương trình có một nghiệm x =-b/2a;</p><p>+ nếu d > 0 thì kết luận phương trình có hai nghiệm phân biệt là: x = (-b ± √d) / 2a.</p><p></p><p>• Thuật toán:</p><p>Mô tả thuật toán bằng cách liệt kê:</p><p>Bước I. Nhập ba số a, b, c;</p><p>Bước 2. d ← (b*b - 4*a*c);</p><p>Bước 3.</p><p>nếu d < 0 thì đưa ra thông báo phương trình vô nghiệm rồi kết thúc;</p><p>nếu d = 0 thì đưa ra thông báo phương trình có một nghiệm và tính nghiệm</p><p>x = -b/(2*a), rồi kết thúc;</p><p>nếu d> 0 thì đưa ra thông báo phương trình có hai nghiệm phân biệt, tính nghiệm x1= (-b + -√d) / (2*a) và x2 = (-b - √ d ) / (2*a), rồi kết thúc;</p><p>Mô tả thuật toán theo sơ đồ khối: </p><p></p><p><img src="https://img.loigiaihay.com/picture/2017/0110/c5.jpg" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p><strong>Câu 6: </strong>Cho N và dãy số a1... aN, hãy sắp xếp dãy số đó thành dãy số không tăng (số hạng trước lớn hơn hay bằng số hạng sau).</p><p></p><p><strong>Lời giải chi tiết</strong></p><p>• Xác định bài toán</p><p>- Input: Dãy A gồm N số nguyên a1, a2..., aN.</p><p>- Output: Dãy A được sắp xếp lại thành dãy không tăng:</p><p></p><p>• Ý tưởng: Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước nhỏ hơn số sau ta đổi chỗ chúng cho nhau. Việc đó được lặp lại, cho đến khi không có sự đổi chỗ nào xảy ra nữa.</p><p></p><p>• Thuật toán theo cách liệt kê:</p><p>Bước 1. Nhập N, các số hạng a, a2, .., aN;</p><p>Bước 2: M </p><p>Bước 3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp rồi kết thúc;</p><p>Bước 4: M</p><p>Bước 5: i</p><p>Bước 6: Nếu i > M thì quay lại bước 3</p><p>Bước 7: Nếu ai < ai+1 thì tráo đổi ai và ai+1 cho nhau</p><p>Bước 8: Quay lại bước 5</p><p></p><p>• Sơ đồ khối:</p><p></p><p><img src="https://img.loigiaihay.com/picture/2017/0110/c6.jpg" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p><strong></strong></p><p><strong>Câu 7: </strong>Cho N và dãy số a1, a2, ..., aN hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0.</p><p></p><p><strong>Lời giải chi tiết</strong></p><p>• Xác định bài toán</p><p>- Input: Dãy A gồm N số nguyên a1, a2, ..., aN ;</p><p>- Output: Số số hạng trong dãy A có giá trị bằng 0.</p><p></p><p>• Ý tưởng: Tìm kiếm tuần tự được thực hiện một cách tự nhiên. Ta dùng biến đếm k để đếm số số hạng trong dãy A có giá trị bằng 0. Bắt đầu từ i = 7 và mỗi lần tăng i lên 1, ta lần lượt so sánh ai = 0, nếu ai = 0 thì tăng k lên 1, tiếp tục quá trình cho đến khi i > N thì đưa ra kết quả k và kết thúc.</p><p></p><p>• Thuật toán theo cách liệt kê</p><p></p><p>Bước 1. Nhập N, các số hạng a1, a2..., aN</p><p>Bước 2. i</p><p>Bước 3. Nếu ai = 0 thì k</p><p>Bước 4. i</p><p>Bước 5: Nếu i > N thì đưa ra giá trị k, rồi kết thúc;</p><p>Bước 6. Quay lại bước 3. </p><p></p><p>• Sơ đồ khối: </p><p></p><p><img src="https://img.loigiaihay.com/picture/2020/0423/l10-h8.JPG" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Tổng kết: Các bạn vừa tham khảo các bước để thực hiện thuật toán và một số câu hỏi liên quan đến bài 4: Bài toán và thuật toán</p><p style="text-align: center">_Chúc các bạn học tốt!_</p></blockquote><p></p>
[QUOTE="Đỗ Thị Lan Hương, post: 193013, member: 317476"] Bài toán trong Tin học là gì? Làm thế nào để giải một bài toán trên máy tính? Để trả lời câu hỏi này cùng tìm hiểu qua bài 4: Bài toán và thuật toán nhé! [CENTER][B][SIZE=5]Bài 4: Bài toán và thuật toán[/SIZE][/B][/CENTER] [B]Câu 1:[/B] Hãy phát biểu một bài toán và chỉ rõ Input và Output của bài toán đó. [B]Lời giải chi tiết[/B] Ví dụ bài toán tính diện tích tam giác. Phát biểu bài toán: Cho ba cạnh của tam giác ABC là: x, y, z. Hãy tính diện tích tam giác ABC. - Input: Ba cạnh tam giác x, y, z. - Output: Diện tích tam giác. [B]Câu 2:[/B] Dãy các thao tác sau: Bước 1. Xoá bảng; Bước 2. Vẽ đường tròn; Bước 3. Quay lại bước 1; Có phải là thuật toán không? Tại sao? [B]Lời giải chi tiết[/B] Dãy các thao tác : Bước 1. Xoá bảng; Bước 2. Vẽ đường tròn; Bước 3. Quay lại bước 1; Đây không phải là thuật toán, vì không thoả mãn tính chất dừng: đến bước 3 lại quay lại bước 1, nó tạo thành vòng lặp vô hạn không có điều kiện kết thúc. [B]Câu 3:[/B] Hãy chỉ ra tính dừng của thuật toán tìm kiếm tuần tự. [B]Lời giải chi tiết[/B] - Thuật toán tìm kiếm tuần tự: Bước 1. Nhập N, các số hạng a,...a2,...aN và khoá k Bước 2. i 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 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ị nào bằng k, rồi kết thúc; Bước 6. Quay lại bước 3. - Tính dừng của thuật toán tìm kiếm tuần tự (nghĩa là thuật toán phải kết thúc sau một số hữu hạn lần bước tính) xảy ra khi thỏa mãn một trong hai trường hợp: + Nếu tìm thấy giá trị cần tìm trong dãy A (ai= k) thì thông báo chỉ số i (vị trí tìm thấy khoá k trong dãy A), rồi kết thúc. + Nếu không tìm thấy giá trị cần tìm trong dãy A, vì bước 4 thực hiện việc tăng giá trị của i lớn hơn 1, nên sau N lần thì i > N, thông báo dãy A không có giá trị nào bằng k, rồi kết thúc. [B] Câu 4:[/B] Cho N và dãy số a1....aN, hãy tìm giá trị nhỏ nhất (Min) của dãy đó. [B]Lời giải chi tiết[/B] • Xác định bài toán: Input: Số N và dãy N số a1, a2, ...,aN. Output: Giá trị nhỏ nhất (Min) của dãy số. • Ý tưởng: - Khởi tạo giá trị Min = a1. - Lần lượt nhận giá trị /i từ 2 đến N, so sánh giá trị số hạng a1 với giá trị Min, nếu ai < Min thì Min nhận giá trị mới ai • Thuật toán: Mô tả thuật toán theo cách liệt kê: Bước 1. Nhập N và dãy a1,....aN; Bước 2. Mini, i Bước 3. Nếu i > N thì đưa ra giá trị Min rồi kết thúc; Bước 4. Bước 4.1: Nếu ai < Min thì Mini Bước 4.2: i [IMG]https://img.loigiaihay.com/picture/2017/0110/c4.jpg[/IMG] [B] Câu 5:[/B] Mô tả thuật toán tìm nghiệm của phương trình bậc hai tổng quát bằng cách liệt kê hoặc bằng sơ đồ khối. [B]Lời giải chi tiết[/B] • Xác định bài toán: - Input: Các số thực a, h, c (a≠0). - Output: Các số thực X thoả mãn ax2 + bx + c = 0. • Ý tưởng: - Tính d = b2 - 4ac. - Lần lượt xét ba trường hợp cho giá trị d: + nếu d < 0 thì kết luận phương trình vô nghiệm ; + nếu d = 0 thì kết luận phương trình có một nghiệm x =-b/2a; + nếu d > 0 thì kết luận phương trình có hai nghiệm phân biệt là: x = (-b ± √d) / 2a. • Thuật toán: Mô tả thuật toán bằng cách liệt kê: Bước I. Nhập ba số a, b, c; Bước 2. d ← (b*b - 4*a*c); Bước 3. nếu d < 0 thì đưa ra thông báo phương trình vô nghiệm rồi kết thúc; nếu d = 0 thì đưa ra thông báo phương trình có một nghiệm và tính nghiệm x = -b/(2*a), rồi kết thúc; nếu d> 0 thì đưa ra thông báo phương trình có hai nghiệm phân biệt, tính nghiệm x1= (-b + -√d) / (2*a) và x2 = (-b - √ d ) / (2*a), rồi kết thúc; Mô tả thuật toán theo sơ đồ khối: [IMG]https://img.loigiaihay.com/picture/2017/0110/c5.jpg[/IMG] [B]Câu 6: [/B]Cho N và dãy số a1... aN, hãy sắp xếp dãy số đó thành dãy số không tăng (số hạng trước lớn hơn hay bằng số hạng sau). [B]Lời giải chi tiết[/B] • Xác định bài toán - Input: Dãy A gồm N số nguyên a1, a2..., aN. - Output: Dãy A được sắp xếp lại thành dãy không tăng: • Ý tưởng: Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước nhỏ hơn số sau ta đổi chỗ chúng cho nhau. Việc đó được lặp lại, cho đến khi không có sự đổi chỗ nào xảy ra nữa. • Thuật toán theo cách liệt kê: Bước 1. Nhập N, các số hạng a, a2, .., aN; Bước 2: M Bước 3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp rồi kết thúc; Bước 4: M Bước 5: i 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 • Sơ đồ khối: [IMG]https://img.loigiaihay.com/picture/2017/0110/c6.jpg[/IMG] [B] Câu 7: [/B]Cho N và dãy số a1, a2, ..., aN hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0. [B]Lời giải chi tiết[/B] • Xác định bài toán - Input: Dãy A gồm N số nguyên a1, a2, ..., aN ; - Output: Số số hạng trong dãy A có giá trị bằng 0. • Ý tưởng: Tìm kiếm tuần tự được thực hiện một cách tự nhiên. Ta dùng biến đếm k để đếm số số hạng trong dãy A có giá trị bằng 0. Bắt đầu từ i = 7 và mỗi lần tăng i lên 1, ta lần lượt so sánh ai = 0, nếu ai = 0 thì tăng k lên 1, tiếp tục quá trình cho đến khi i > N thì đưa ra kết quả k và kết thúc. • Thuật toán theo cách liệt kê Bước 1. Nhập N, các số hạng a1, a2..., aN Bước 2. i Bước 3. Nếu ai = 0 thì k Bước 4. i Bước 5: Nếu i > N thì đưa ra giá trị k, rồi kết thúc; Bước 6. Quay lại bước 3. • Sơ đồ khối: [IMG]https://img.loigiaihay.com/picture/2020/0423/l10-h8.JPG[/IMG] Tổng kết: Các bạn vừa tham khảo các bước để thực hiện thuật toán và một số câu hỏi liên quan đến bài 4: Bài toán và thuật toán [CENTER]_Chúc các bạn học tốt!_[/CENTER] [/QUOTE]
Tên
Mã xác nhận
Gửi trả lời
KIẾN THỨC PHỔ THÔNG
Trung Học Phổ Thông
TIN HỌC THPT
Tin học 10
Bài toán và thuật toán - Bài 4
Top