Câu hỏi:
22/07/2024 93
Một nhóm các bạn tình nguyện tham gia làm đồ chơi cho các bạn nhỏ vùng cao bằng cách ghép các thanh gỗ nhỏ để tạo thành một tam giác. Nhóm tình nguyện kêu gọi các bạn đóng góp các thanh gỗ nhỏ, tổng số thu được n thanh gỗ, đánh số từ 0 đến n − 1 và có độ dài tương ứng là A[0], A[1], ..., A[n – 1] Em hãy viết chương trình cho biết từ các thanh gỗ đó có thể tạo được bao nhiêu tam giác, chú ý các tam giác tạo thành từ một bộ 3 thanh được tính là may tam giác.
Dữ liệu được cho trong tập văn bản Thanhgo.inp chứa n số tự nhiên lớn hơn Kết quả đưa ra tập Tamgiac.out chỉ chứa một số tự nhiên là số tam giác có thể
tạo được từ dữ liệu ban đầu.
Một nhóm các bạn tình nguyện tham gia làm đồ chơi cho các bạn nhỏ vùng cao bằng cách ghép các thanh gỗ nhỏ để tạo thành một tam giác. Nhóm tình nguyện kêu gọi các bạn đóng góp các thanh gỗ nhỏ, tổng số thu được n thanh gỗ, đánh số từ 0 đến n − 1 và có độ dài tương ứng là A[0], A[1], ..., A[n – 1] Em hãy viết chương trình cho biết từ các thanh gỗ đó có thể tạo được bao nhiêu tam giác, chú ý các tam giác tạo thành từ một bộ 3 thanh được tính là may tam giác.
Dữ liệu được cho trong tập văn bản Thanhgo.inp chứa n số tự nhiên lớn hơn Kết quả đưa ra tập Tamgiac.out chỉ chứa một số tự nhiên là số tam giác có thể
tạo được từ dữ liệu ban đầu.
Trả lời:
Chương trình sẽ có bốn mô đun/hàm sau:
1) NhapDL(). Hàm nhập dữ liệu đầu vào, hàm sẽ trả lại dãy độ dài của các thanh gỗ.
2) istamgiac(a,b,c). Hàm kiểm tra xem bộ ba số a, b, c có tạo thành một tam giác hay không.
3) tamgiac(). Hàm tính và đếm số các tam giác có thể tạo được từ dãy độ dài các thanh gỗ.
4) GhiDL(). Hàm ghi kết quả ra tệp.
Chương trình hoàn chỉnh như sau:
Chương trình sẽ có bốn mô đun/hàm sau:
1) NhapDL(). Hàm nhập dữ liệu đầu vào, hàm sẽ trả lại dãy độ dài của các thanh gỗ.
2) istamgiac(a,b,c). Hàm kiểm tra xem bộ ba số a, b, c có tạo thành một tam giác hay không.
3) tamgiac(). Hàm tính và đếm số các tam giác có thể tạo được từ dãy độ dài các thanh gỗ.
4) GhiDL(). Hàm ghi kết quả ra tệp.
Chương trình hoàn chỉnh như sau:
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Viết chương trình nhập từ bàn phím một dãy số nguyên, sau đó sắp xếp dãy này theo thứ tự tăng dần và in dãy đã sắp xếp ra màn hình, trên một hàng ngang.
Viết chương trình nhập từ bàn phím một dãy số nguyên, sau đó sắp xếp dãy này theo thứ tự tăng dần và in dãy đã sắp xếp ra màn hình, trên một hàng ngang.
Câu 2:
Chúng ta đã biết phương thức count() sẽ tính số lần lặp không chồng lấn của một xâu con trong xâu mẹ (nếu không có thì trả về 0). Ví dụ: xâu con “aba” sẽ lặp không chồng lấn trong xâu “abababacdaba” 3 lần.
>>> Str = "abababacdaba"
>>> sub = "aba"
>>> Str.count(sub)
3
Nhưng nếu tính theo cách có chồng lấn thì xâu con sub sẽ lặp 4 lần trong xâu mę Str.
Bài toán: Dữ liệu đầu vào được cho trong tệp văn bản String.inp có dạng sau: – Dòng đầu tiên ghi xâu con sub.
− n dòng tiếp theo, mỗi dòng là một xâu kí tự bất kì.
Kết quả được lưu trong tệp String.out bao gồm n dòng, mỗi dòng tương ứng là kết quả số lần lặp không chồng lấn của xâu con sub trong xâu tại dòng tương ứng.
Chúng ta đã biết phương thức count() sẽ tính số lần lặp không chồng lấn của một xâu con trong xâu mẹ (nếu không có thì trả về 0). Ví dụ: xâu con “aba” sẽ lặp không chồng lấn trong xâu “abababacdaba” 3 lần.
>>> Str = "abababacdaba"
>>> sub = "aba"
>>> Str.count(sub)
3
Nhưng nếu tính theo cách có chồng lấn thì xâu con sub sẽ lặp 4 lần trong xâu mę Str.
Bài toán: Dữ liệu đầu vào được cho trong tệp văn bản String.inp có dạng sau: – Dòng đầu tiên ghi xâu con sub.
− n dòng tiếp theo, mỗi dòng là một xâu kí tự bất kì.
Kết quả được lưu trong tệp String.out bao gồm n dòng, mỗi dòng tương ứng là kết quả số lần lặp không chồng lấn của xâu con sub trong xâu tại dòng tương ứng.
Câu 3:
Một công trình xây dựng đến giai đoạn lát sàn nhà cho các căn hộ theo yêu cầu của khách hàng. Do yêu cầu của người dùng đa dạng nên chủ đầu tư phải thu thập yêu cầu của khách hàng và tập hợp, đưa vào các tập dữ liệu đả chuyển cho bộ phận tính chi phí. Dữ liệu đầu vào được cho trọng tập có tên Data.inp bao gồm nhiều dòng, mỗi dòng là một yêu cầu của một khách hàng, dữ liệu trên một dòng có dạng như sau:
– Hai thông số đầu tiên là chiều ngang và chiều dài của căn phòng cần hoàn thiện. Dữ liệu là số thập phân theo đơn vị đo là mét.
– Giá trị tiếp theo là đơn giá lát mỗi mét vuông, giá trị là số thập phân. Dữ liệu tính toán được đưa ra tệp văn bản có tên Data out với định dạng mỗi
dòng như sau:
– Phần đầu của dữ liệu được đưa ra giống với dữ liệu đầu vào, đó là thông tin của từng căn hộ với chiều ngang, chiều dài, đơn giá và bên cạnh là chi phí lát
sàn cho căn hộ này.
– Dòng cuối của tập dữ liệu ra có ghi tổng toàn bộ chi phí lát sàn nhà của cả công trình.
Em hãy thiết lập chương trình giải bài toán trên theo phương pháp thiết kế theo mô đun.
Câu 4:
Cho trước n điểm trên mặt phẳng. Cần tìm ra hai điểm có khoảng cách ngắn nhất. Các điểm được đánh số từ 0 đến n – 1 và được cho trong tệp văn bản Points.inp có dạng như sau: Mỗi điểm được cho bởi một cặp toạ độ trên một dòng, các toạ độ này là số nguyên. Kết quả đưa ra màn hình ghi 2 chỉ số của 2 điểm có khoảng cách ngắn nhất.
Cho trước n điểm trên mặt phẳng. Cần tìm ra hai điểm có khoảng cách ngắn nhất. Các điểm được đánh số từ 0 đến n – 1 và được cho trong tệp văn bản Points.inp có dạng như sau: Mỗi điểm được cho bởi một cặp toạ độ trên một dòng, các toạ độ này là số nguyên. Kết quả đưa ra màn hình ghi 2 chỉ số của 2 điểm có khoảng cách ngắn nhất.
Câu 5:
Viết chương trình bầu lớp trưởng với cách bầu như sau: Mỗi bạn sẽ đưa ra lựa chọn của mình, được phép đề cử từ 1 đến 3 ứng viên. Sau đó, ban kiểm phiếu sẽ tổng hợp kết quả, ứng viên nào được đề cử nhiều nhất sẽ được chọn làm lớp trưởng. Dữ liệu đầu vào là tệp văn bản Phieu.inp bao gồm nhiều dòng, mỗi dòng ứng với đề cử của một học sinh. Vậy, mỗi dòng sẽ ghi từ 1 đến 3 tên, cách nhau bởi dấu cách. Chương trình sẽ đưa ra kết quả là tên bạn được bầu làm lớp trưởng.
Viết chương trình bầu lớp trưởng với cách bầu như sau: Mỗi bạn sẽ đưa ra lựa chọn của mình, được phép đề cử từ 1 đến 3 ứng viên. Sau đó, ban kiểm phiếu sẽ tổng hợp kết quả, ứng viên nào được đề cử nhiều nhất sẽ được chọn làm lớp trưởng. Dữ liệu đầu vào là tệp văn bản Phieu.inp bao gồm nhiều dòng, mỗi dòng ứng với đề cử của một học sinh. Vậy, mỗi dòng sẽ ghi từ 1 đến 3 tên, cách nhau bởi dấu cách. Chương trình sẽ đưa ra kết quả là tên bạn được bầu làm lớp trưởng.
Câu 6:
Viết chương trình giải bài toán: Cho trước ma trận số A vuông bậc n. Tính giá trị trung bình của tất cả các phần tử của A.
Ma trận số A được cho
trong tệp văn bản Matran.inp có cấu trúc như sau:
– Hàng đầu tiên là số tự nhiên n.
− n hàng tiếp theo, mỗi hàng là một dãy n số (nguyên hoặc thực), cách nhau bởi dấu cách.
Chương trình sẽ đưa kết quả ra màn hình.
Viết chương trình giải bài toán: Cho trước ma trận số A vuông bậc n. Tính giá trị trung bình của tất cả các phần tử của A.
Ma trận số A được cho
trong tệp văn bản Matran.inp có cấu trúc như sau:
– Hàng đầu tiên là số tự nhiên n.
− n hàng tiếp theo, mỗi hàng là một dãy n số (nguyên hoặc thực), cách nhau bởi dấu cách.
Chương trình sẽ đưa kết quả ra màn hình.