Có nhất thiết phải tìm được thuật toán trước khi viết chương trình để giải bài toán đó không?
Trong các bài trước em đã học cách thiết kế thuật toán cho một số bài toán như bài toán tìm kiếm, bài toán sắp xếp và thiết lập chương trình thực hiện thuật toán đó. Một bài toán có nhiều thuật toán khác nhau và do đó có thể có nhiều chương trình khác nhau cùng giải quyết một bài toán. Hãy thảo luận và trả lời các câu hỏi sau:
Làm thế nào để biết trong các thuật toán giải cùng một bài toán thì thuật toán nào là tốt nhất?
Có những tiêu chí nào để đánh giá tính “tối ưu” của một thuật toán?
THAM KHẢO!
Dựa vào hai yếu tố là thời gian thực hiện thuật toán (còn gọi là độ phức tạp thuật toán) và dung lượng bộ nhớ cần thiết để lưu trữ dữ liệu.
Thuật toán tối ưu là sử dụng ít thời gian, ít bộ nhớ, ít phép toán, giải bài toán trên máy tính thường được tiến hành qua 5 bước xác định bài toán, lựa chọn hoặc thiết kế thuật toán, viết chương trình, hiệu chỉnh và viết tài liệu.
Dựa vào hai yếu tố là thời gian thực hiện thuật toán (còn gọi là độ phức tạp thuật toán) và dung lượng bộ nhớ cần thiết để lưu trữ dữ liệu.
Thuật toán tối ưu là sử dụng ít thời gian, ít bộ nhớ, ít phép toán, giải bài toán trên máy tính thường được tiến hành qua 5 bước xác định bài toán, lựa chọn hoặc thiết kế thuật toán, viết chương trình, hiệu chỉnh và viết tài liệu.
Phát biểu nào sau đây là sai?
A.Với mọi bài toán ta có thể viết được ngay chương trình mà không nhất thiết phải thực hiện theo ba bước: Xác định thuật toán; Mô tả thuật toán; Viết chương trình.
B.Trong tin học ta có thể hiểu bài toán là một công việc hay một nhiệm vụ nào đó mà ta muốn máy tính thực hiện.
C.Xác định bài toán là chỉ rõ các điều kiện cho trước và kết quả cần thu được.
D.Một dãy hữu hạn các thao tác nếu thực hiện rất nhiều lần nhưng không thu được kết quả cần thiết từ những điều kiện cho trước thì không được xem là một thuật toán.
Dựa vào dãy số gồm n số em hãy chỉ ra KẾT QUẢ CẦN ĐẠT ĐƯỢC của bài toán : Tính tổng của các phần tử lớn hơn 0 trong dãy n số cho trước
A.Số thứ tự của các số trong dãy gồm n số
B.Vị trí của số thứ n
C.Dãy gồm n số
D.Tổng các phần tử lớn hơn 0
Quá trình giải bài toán trên máy tính gồm các bước nào? *
Xác định bài toán, xây dựng thuật toán, viết chương trình.
Xác định giả thiết kết luận của bài toán, tìm lời giải.
Tìm hiểu bài toán, xây dựng thuật toán, viết chương trình.
Xây dựng thuật toán, xác định bài toán, viết chương trình.
tìm hiểu bài,xây dựng thuật toán,viết chương chình
Thiết lập chương trình cho công việc thường làm vào cuối giờ bán hàng: Cho trước số K (một doanh số giả định), cần tìm ra mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất. Bài toán này có thể sử dụng thuật toán tìm kiếm nào để giải?
Để thiết lập tour du lịch tối ưu cho khách hàng dựa trên đánh giá của họ, công ty du lịch có thể sử dụng thuật toán tối ưu hóa hoặc các phương pháp lập lịch và quyết định dựa trên thông tin đánh giá của khách hàng. Dưới đây là một số ý tưởng và phương pháp có thể được áp dụng:
-Thuật toán tối ưu hóa: Công ty du lịch có thể sử dụng các thuật toán tối ưu hóa để tìm kiếm lộ trình du lịch tối ưu dựa trên các yếu tố như thời gian, khoảng cách, ngân sách và các đánh giá của khách hàng. Các thuật toán như thuật toán di truyền, thuật toán tìm kiếm cục bộ, thuật toán quy hoạch động, ... có thể được sử dụng để giúp tối ưu hoá lộ trình du lịch dựa trên các ràng buộc và đánh giá từ khách hàng.
-Phân tích đánh giá khách hàng: Công ty du lịch có thể phân tích các đánh giá của khách hàng để hiểu các yêu cầu và mong muốn của khách hàng. Các đánh giá này có thể bao gồm các yêu cầu về địa điểm tham quan, hoạt động, dịch vụ, chất lượng và dịch vụ khác. Dựa trên phân tích này, công ty du lịch có thể tạo ra các tour du lịch đáp ứng các yêu cầu và mong muốn của khách hàng.
-Tư vấn và đề xuất: Công ty du lịch có thể sử dụng dữ liệu đánh giá của khách hàng để đề xuất và tư vấn cho khách hàng về các tour du lịch phù hợp dựa trên sở thích và đánh giá của họ
THAM KHẢO!
Em đã biết thiết kế một số thuật toán và chương trình: tìm kiếm tuần tự, tìm kiếm nhị phân, sắp xếp chèn, sắp xếp chọn, sắp xếp nổi bọt. Tất cả các thiết kế chương trình đó có điểm nào chung?
Theo em, để thiết kế một thuật toán đúng giải một bái toàn cho trước cần trải qua các bước như thế nào? Nêu quan điểm của riêng em và trao đổi với các bạn.
- Các thuật toán và chương trình mà em đã biết đều là các thuật toán cơ bản trong lập trình và giải quyết các vấn đề thông thường. Các điểm chung của chúng bao gồm: Tính đơn giản, độ phức tạp thấp.
- Theo em, để thiết kế một thuật toán đúng giải một bái toàn cho trước cần trải qua các bước:
1. Xác định bài toán
2. Tìm cấu trúc dữ liệu biểu diễn thuật toán.
3. Tìm Thuật Toán.
4. Lập Trình (Programming)
5. Kiểm thử chương trình (Testing program)
6. Tối ưu chương trình (optimization program)
Giả sử cần viết chương trình nhập vào hai số nguyên, in ra màn hình số lớn hơn.
a). Hãy mô tả các bước của thuật toán để giải quyết bài toán trên.
b). Viết chương trình Pascal để thực hiện thuật toán đó.
Quá trình giải bài toán trên máy tính gồm các bước nào? *
A Xây dựng thuật toán, xác định bài toán, viết chương trình
B Xác định bài toán, xây dựng thuật toán, viết chương trình.
C Tìm hiểu bài toán, xây dựng thuật toán, viết chương trình.
D Xác định giả thiết kết luận của bài toán, tìm lời giải.
Để giải bài toán trên máy tính, người ta thực hiện thực hiện các công việc sau
a). Lựa chọn hoặc thiết kế thuật toán
b) Xác định bài toán c) Viết tài liệu
d) Viết chương trình e) Hiệu chỉnh
Hy chọn cách sắp xếp đúng nhất về thứ tự thực hiện các công việc nêu trên
A. b →a →d →c →e
B. b →a →d →e →c
C. a →b →d →e
D. d →a →b →e →c
Thực hiện thiết kế thuật toán và chương trình bằng phương pháp làm mịn dần theo các bài toán sau. Trao đổi, thảo luận với bạn bè để thiết lập được lời giải tốt hơn.
tham khảo!
def nghichdao(A):
n = len(A)
count = 0
for i in range(n-1):
for j in range(i+1, n):
if A[i] > A[j]:
count = count + 1
return count
xác định bài toán, mô tả thuật toán, viết chương trình tính diện tích hình chữ nhật với chiều dài a và chiều rộng b được nhập từ bàn phím.
- Xác định bài toán
* Điều kiện cho trước:
* Kết quả thu được:
- Mô tả thuật toán
- Viết chương trình
c:
#include <bits/stdc++.h>
using namespace std;
double a,b;
int main()
{
cin>>a>>b;
cout<<a*b;
return 0;
}