Nhằm giúp làm sôi động thêm diễn đàn và góp phần giúp các bạn nâng cao kỹ năng lập trình cho các thành viên Câu lạc bộ VB, đặc biệt là VB.NET, mình quyết định mở một loạt các chủ đề về lập trình để các thành viên có thể thi đấu với nhau.
Mục đích: Giúp thành viên vận dụng kiến thức lập trình của mình để giải quyết những vấn đề thực tế do đề bài đưa ra, từ đó nâng cao kĩ năng.
Đối tượng: Tất cả thành viên diễn đàn, trừ BQT (Admin, SMOD, MOD). Advance Member được quyền tham gia. Tuy nhiên, Admin, SMOD, MOD vẫn có thể gửi đáp án để làm cơ sở nhận xét. Advance Member được tham gia, nhưng nếu có kết quả hòa giữa Advance Member và thành viên thường thì sẽ ưu tiên cho thành viên.
Quy định:
- Các bài giải sẽ được gửi cho MOD vo_minhdat2007 bằng chức năng nhắn tin của diễn đàn hoặc email vo_minhdat2007@yahoo.com.vn . Mục đích là để các bạn tự suy nghĩ ra cách giải tốt nhất đối với mình.
- Sau vài ngày, MOD sẽ đưa các bài giải của các bạn lên và nhận xét, chấm điểm và xếp hạng. Các bạn sẽ tiếp tục thảo luận nếu có giải pháp hay hơn, hoặc đưa ra các nhận xét. Vài ngày sau thì bắt đầu kì mới.
- Chú ý: Trong phần tính điểm có tính cả điểm xử lí tình huống lỗi, kể cả lỗi dữ liệu đầu vào!
Đáp án:
Mỗi đề bài đưa ra sẽ bao gồm yêu cầu, kèm theo 1 form mẫu (ở đây dùng VS2008, các bạn dùng bản cũ hơn thì xem cách downgrade ở box Thắc mắc VB.NET & C#) nếu các bạn không muốn thiết kế lại form. Khi gửi đáp án các bạn có 2 cách:
- Gửi cả project qua email hoặc chức năng nhắn tin (đã ghi ở mục trên).
- Chỉ gửi code bằng chức năng nhắn tin của diễn đàn, code được cho vào thẻ code tương ứng, và phải chạy được khi mình copy vào form mẫu đã post.
Giải thưởng:
Sau vài kì, mình sẽ tổng kết một lần, và có một phần quà nhỏ khuyến khích các bạn tham gia. Ngoài ra, các bạn sẽ được thể hiện và học hỏi kĩ năng thông qua cuộc thi, và BQT sẽ chú ý xem xét đưa các bạn giỏi vào các nhóm như Support, Advanced Member.
KÌ 5: TAM GIÁC CHO THẦY TOÁN
Tình huống:
Thầy chủ nhiệm của mình dạy môn Toán, đặc biệt thầy dạy Hình học rất hay


Yêu cầu:
Chương trình có giao diện như hình (các bạn tải project mẫu về hoặc tự thiết kế lại).

Người dùng sẽ nhập vào các ô TextBox 3 yếu tố của tam giác, trong đó có ít nhất 1 yếu tố về cạnh (dữ liệu vào bảo đảm là kiểu số tối đa 2 chữ số thập phân, các dữ liệu chưa biết được chừa trống). Sau đó, nhấn nút Tính. Chương trình sẽ đưa ra 3 yếu tố còn lại của tam giác và vẽ tam giác ấy ra.

Các ô nhập và nút Tính sẽ bị mờ, khi người dùng nhấn Reset, ô nhập mới sáng trở lại, đồng thời xóa hết dữ liệu 6 ô TextBox.

Gợi ý:
Sử dụng định lí cos và sin trong tam giác thường để xác định 3 yếu tố:

Lưu ý:
- Dữ liệu cuối cùng làm tròn 2 chữ số thập phân.
- Sử dụng lớp Graphic để vẽ: viewtopic.php?f=23&t=3840 .
- Tam giác cần đúng tỉ lệ các cạnh (tỉ lệ tùy thích, có thể khác nhau cho từng tam giác, miễn các cạnh tam giác đúng tỉ lệ).
Ghi chú:
Có trường hợp nếu cho góc không xen giữa 2 cạnh đã biết là 90 độ (Pi/2) thì khi tính toán sẽ khiến Overflow khi tính hàm Cos và Delta, do đó các test sẽ không có trường hợp này, các bạn không cần tách riêng cho trường hợp này.
ĐÁP ÁN
Không biết do đề lần này khó hay dài mà mình không nhận được bài dự thi nào. Thực ra so với các đề trước, đề này dễ hơn, không yêu cầu cao về thuật toán, chỉ cần dùng hình học phổ thông để giải.
Hi vọng các bạn tham gia tích cực hơn ở kì sau.