Don Xin Xac Nhan Chưa Nhap Khau Cho Con

Mẫu Đưn Xin Xác Nhận Chưa Nhập Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mẫu Xin Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Đơn Xác Nhận Chưa Nhập Khẩu, Đơn Xin Xác Nhận Chưa Nhập Khẩu, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Ca Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Chưa Xác Nhận Nhập Khẩu Cho Con, Mâu Đơn Xac Nhan Con Chua Nhap Ho Khâu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Khẩu, Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Xin Xac Nhan Chua Nhap Ho Khau, Don Xac Nhan Chua Nhap Ho Khau, Don Xac Nhan Chua Nhap Ho Khau Cho Con, Don Xin Xac Nhan Chưa Nhap Khau Cho Con, Mau Don Xac Nhan Chua Nhap Khau Cho Con, Xác Nhận Chưa Nhập Khẩu Cho Con, Xac Nhan Chua Nhap Ho Khau Cho Con, Xac Nhan Chua Nhap Ho Khau, Xac N Nhan Chua Nhap Khau, Mau Don Xin Xac Nhan Chua Nhap Khau Cho Con, Đơn Xác Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Xin Xác Nhận Con Chưa Nhập Hộ Khẩu, Mẫu Đơn Xác Nhận Chưa Nhập Khẩu , Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mau Xac Nhan Chua Nhap Ho Khau Cho Con, Xac Nhan Chua Nhap Khau, Mau Xac Nhan Chua Nhap Khau Cho Con, Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Giấy Xác Nhận Chưa Nhập Khẩu, Giấy Xác Nhận Chưa Nhập Khẩu Cho Con, Giấy Xác Nhận Chưa Nhập Khẩu, Giấy Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mau Don Xin Xac Nhan Chua Nhap Ho Khau Chon Con, Mẫu Đơn Đề Nghị Xác Nhận Chưa Nhập Hộ Khẩu, Don Xinxac Nhan Chua Nhap Khau, Mẫu Đơn Cam Kết Chua Nhap Khau Cho Con, Mẫu Đơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu, Mau Don Chua Nhap Ho Khau, Mau Don Chua Nhap Khau Cho Con, Cam Kết Chưa Nhập Hộ Khẩu, Chưa Nhập Khâu Cho Con, Thủ Tục Ly Hôn Khi Chưa Nhập Khẩu, Mẫu Don Chưa Xác Nhập Khẩu Cho Con, Đơn Cam Kết Chưa Nhập Khẩu Cho Con, Mẫu Đơn Xin Cam Kết Chưa Nhập Khẩu Cho Con Gái, Đơn Can Kết Chưa Nhập Hộ Khẩu Cho Con, ơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Mau Don Xin Cam Ket Chua Nhap Khau Cho Con O Bat Ki Noi Nao, Mẫu Cam Kết Chua Nhập Hộ Khẩu Cho Con, Mau Cam Ket Chua Nhap Ho Khau, Đơn Cam Kết Chưa Nhập Hộ Khẩu , Chưa Nhập Khẩu, Đơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Bản Cam Kết Chưa Nhập Khẩu Nơi Khác, Đơn Xác Minh Chưa Nhập Hộ Khẩu Cho Con, Giay Cam Ket Chua Nhap Khau, Mẫu Đơn Cam Kết Chưa Nhập Khẩu Tại Nơi Khác, Giay Cam Ket Chua Nhap Khau Cho Con, Mẫu Đơn Cam Kết Chưa Nhập Hộ Khẩu Nơi Khác, Mau Don Cam Ket Viet Tay Chua Nhap Ho Khau Cho Con, Đơn Chưa Nhập Hộ Khẩu Nơi Khác, Giấy Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Giấy Cam Kết Chưa Nhập Hộ Khẩu, Giấy Cam Kết Chưa Nhập Khẩu Cho Con Nơi Khác, Giaycam Kết Chưa Nhập Khẩu Cho Con Nơi Khác, Giấy Cam Kết Chưa Nhập Khẩu Con Nơi Khác, Giấy Cam Kết Chưa Nhập Khẩu Cho Con ở Nơi Khác, Giấy Cam Kết Chưa Nhập Hộ Khẩu Tại Địa Phương Khác, Mẫu Đơn Xin Xác Nhận Chưa Đăng Ký Hộ Khẩu, Màu Đơn Xin Xác Nhận Chưa Nhập Khá Cho Con, Đơn Xin Xác Nhận Chữ Nhập Hộ Khẩu, Nhập Nhân Khẩu, Giấy Xác Nhận Đạt Yêu Cầu Nhập Khẩu, Mẫu Hóa Đơn Khấu Trừ Thuế Thu Nhập Cá Nhân, Quy Trình Giao Nhận Nhập Khẩu, Mẫu Tờ Khai Khấu Trừ Thuế Thu Nhập Cá Nhân, Mẫu Chứng Nhận Hàng Hóa Xuất Nhập Khẩu, Quy Trình Giao Nhận Hàng Hóa Nhập Khẩu, Báo Cáo Thực Tập Giao Nhận Hàng Nhập Khẩu, Giấy Xác Nhận Khai Báo Hóa Chất Nhập Khẩu, Đơn Xin Xác Nhận Không Nợ Thuế Xuất Nhập Khẩu, Báo Cáo Thực Tập Giao Nhận Xuất Nhập Khẩu, Quy Trình Giao Nhận Hàng Nhập Khẩu Fcl, Mẫu Tờ Khai Khấu Trừ Thuế Thu Nhập Cá Nhân Mới Nhất, Luận Văn Giao Nhận Hàng Hóa Xuất Nhập Khẩu, Bản Mô Tả Công Việc Nhân Viên Xuất Nhập Khẩu, Báo Cáo Thực Tập Quy Trình Giao Nhận Hàng Hóa Nhập Khẩu Bằng Đường Biển, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Được Miễn Thuế, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Theo Giấy Phép, Đề án Đổi Mới Mô Hình Kiểm Tra Chất Lượng Hàng Hóa Xuất Khẩu Nhập Khẩu, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Việt Nam 2014, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Việt Nam, Thủ Tục Nhập Khẩu Khẩu Trang, Thủ Tục Nhập Khẩu Khẩu Trang Y Tế, Hướng Dẫn Thi Hành Thuế Xuất Khẩu Thuế Nhập Khẩu,

Mẫu Đưn Xin Xác Nhận Chưa Nhập Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mẫu Xin Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Đơn Xác Nhận Chưa Nhập Khẩu, Đơn Xin Xác Nhận Chưa Nhập Khẩu, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Ca Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Chưa Xác Nhận Nhập Khẩu Cho Con, Mâu Đơn Xac Nhan Con Chua Nhap Ho Khâu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Khẩu, Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Xin Xac Nhan Chua Nhap Ho Khau, Don Xac Nhan Chua Nhap Ho Khau, Don Xac Nhan Chua Nhap Ho Khau Cho Con, Don Xin Xac Nhan Chưa Nhap Khau Cho Con, Mau Don Xac Nhan Chua Nhap Khau Cho Con, Xác Nhận Chưa Nhập Khẩu Cho Con, Xac Nhan Chua Nhap Ho Khau Cho Con, Xac Nhan Chua Nhap Ho Khau, Xac N Nhan Chua Nhap Khau, Mau Don Xin Xac Nhan Chua Nhap Khau Cho Con, Đơn Xác Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Xin Xác Nhận Con Chưa Nhập Hộ Khẩu, Mẫu Đơn Xác Nhận Chưa Nhập Khẩu , Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mau Xac Nhan Chua Nhap Ho Khau Cho Con, Xac Nhan Chua Nhap Khau, Mau Xac Nhan Chua Nhap Khau Cho Con, Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Giấy Xác Nhận Chưa Nhập Khẩu, Giấy Xác Nhận Chưa Nhập Khẩu Cho Con, Giấy Xác Nhận Chưa Nhập Khẩu, Giấy Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mau Don Xin Xac Nhan Chua Nhap Ho Khau Chon Con, Mẫu Đơn Đề Nghị Xác Nhận Chưa Nhập Hộ Khẩu, Don Xinxac Nhan Chua Nhap Khau, Mẫu Đơn Cam Kết Chua Nhap Khau Cho Con, Mẫu Đơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu, Mau Don Chua Nhap Ho Khau, Mau Don Chua Nhap Khau Cho Con, Cam Kết Chưa Nhập Hộ Khẩu, Chưa Nhập Khâu Cho Con, Thủ Tục Ly Hôn Khi Chưa Nhập Khẩu, Mẫu Don Chưa Xác Nhập Khẩu Cho Con, Đơn Cam Kết Chưa Nhập Khẩu Cho Con, Mẫu Đơn Xin Cam Kết Chưa Nhập Khẩu Cho Con Gái,

Mau Don Xin Xac Nhan Chua Nhap Khau Cho Con

Don Xin Xac Nhan Chưa Nhap Khau Cho Con, Xác Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mẫu Đơn Xin Ca Nhận Chưa Nhập Khẩu Cho Con, Xac Nhan Chua Nhap Ho Khau, Đơn Xác Nhận Chưa Nhập Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Đơn Xác Nhận Chưa Nhập Khẩu Cho Con, Mau Don Xin Xac Nhan Chua Nhap Khau Cho Con, Don Xac Nhan Chua Nhap Ho Khau Cho Con, Mau Xac Nhan Chua Nhap Khau Cho Con, Don Xac Nhan Chua Nhap Ho Khau, Mâu Đơn Xac Nhan Con Chua Nhap Ho Khâu, Mẫu Đơn Xác Nhận Chưa Nhập Khẩu , Mẫu Xin Xác Nhận Chưa Nhập Hộ Khẩu, Mau Xac Nhan Chua Nhap Ho Khau Cho Con, Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Xac Nhan Chua Nhap Ho Khau Cho Con, Mau Don Xac Nhan Chua Nhap Khau Cho Con, Đơn Xin Xác Nhận Chưa Nhập Khẩu, Xac N Nhan Chua Nhap Khau, Mẫu Đưn Xin Xác Nhận Chưa Nhập Khẩu, Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Khẩu, Xac Nhan Chua Nhap Khau, Mẫu Đơn Xin Xác Nhận Con Chưa Nhập Hộ Khẩu, Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Xin Xac Nhan Chua Nhap Ho Khau, Mẫu Đơn Chưa Xác Nhận Nhập Khẩu Cho Con, Mau Don Xin Xac Nhan Chua Nhap Ho Khau Chon Con, Don Xinxac Nhan Chua Nhap Khau, Giấy Xác Nhận Chưa Nhập Khẩu, Giấy Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Giấy Xác Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Đề Nghị Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Giấy Xác Nhận Chưa Nhập Khẩu, Đơn Can Kết Chưa Nhập Hộ Khẩu Cho Con, ơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Mẫu Đơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Cam Kết Chưa Nhập Hộ Khẩu, Thủ Tục Ly Hôn Khi Chưa Nhập Khẩu, Đơn Cam Kết Chưa Nhập Khẩu Cho Con, Mẫu Đơn Cam Kết Chua Nhap Khau Cho Con, Đơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Cam Kết Chưa Nhập Khẩu Cho Con Gái, Mau Don Xin Cam Ket Chua Nhap Khau Cho Con O Bat Ki Noi Nao, Mau Don Chua Nhap Khau Cho Con, Chưa Nhập Khẩu, Chưa Nhập Khâu Cho Con, Mẫu Cam Kết Chua Nhập Hộ Khẩu Cho Con, Đơn Cam Kết Chưa Nhập Hộ Khẩu , Mau Cam Ket Chua Nhap Ho Khau, Mẫu Don Chưa Xác Nhập Khẩu Cho Con, Mau Don Chua Nhap Ho Khau, Đơn Xác Minh Chưa Nhập Hộ Khẩu Cho Con, Mẫu Đơn Cam Kết Chưa Nhập Khẩu Tại Nơi Khác, Giấy Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Mẫu Đơn Cam Kết Chưa Nhập Hộ Khẩu Nơi Khác, Bản Cam Kết Chưa Nhập Khẩu Nơi Khác, Mau Don Cam Ket Viet Tay Chua Nhap Ho Khau Cho Con, Giấy Cam Kết Chưa Nhập Hộ Khẩu, Đơn Chưa Nhập Hộ Khẩu Nơi Khác, Giay Cam Ket Chua Nhap Khau, Giay Cam Ket Chua Nhap Khau Cho Con, Giaycam Kết Chưa Nhập Khẩu Cho Con Nơi Khác, Giấy Cam Kết Chưa Nhập Khẩu Cho Con Nơi Khác, Giấy Cam Kết Chưa Nhập Khẩu Cho Con ở Nơi Khác, Giấy Cam Kết Chưa Nhập Khẩu Con Nơi Khác, Giấy Cam Kết Chưa Nhập Hộ Khẩu Tại Địa Phương Khác, Mẫu Đơn Xin Xác Nhận Chưa Đăng Ký Hộ Khẩu, Màu Đơn Xin Xác Nhận Chưa Nhập Khá Cho Con, Nhập Nhân Khẩu, Đơn Xin Xác Nhận Chữ Nhập Hộ Khẩu, Giấy Xác Nhận Đạt Yêu Cầu Nhập Khẩu, Mẫu Hóa Đơn Khấu Trừ Thuế Thu Nhập Cá Nhân, Mẫu Tờ Khai Khấu Trừ Thuế Thu Nhập Cá Nhân, Quy Trình Giao Nhận Nhập Khẩu, Báo Cáo Thực Tập Giao Nhận Xuất Nhập Khẩu, Giấy Xác Nhận Khai Báo Hóa Chất Nhập Khẩu, Báo Cáo Thực Tập Giao Nhận Hàng Nhập Khẩu, Đơn Xin Xác Nhận Không Nợ Thuế Xuất Nhập Khẩu, Mẫu Tờ Khai Khấu Trừ Thuế Thu Nhập Cá Nhân Mới Nhất, Mẫu Chứng Nhận Hàng Hóa Xuất Nhập Khẩu, Quy Trình Giao Nhận Hàng Hóa Nhập Khẩu, Quy Trình Giao Nhận Hàng Nhập Khẩu Fcl, Bản Mô Tả Công Việc Nhân Viên Xuất Nhập Khẩu, Luận Văn Giao Nhận Hàng Hóa Xuất Nhập Khẩu, Báo Cáo Thực Tập Quy Trình Giao Nhận Hàng Hóa Nhập Khẩu Bằng Đường Biển, Đề án Đổi Mới Mô Hình Kiểm Tra Chất Lượng Hàng Hóa Xuất Khẩu Nhập Khẩu, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Được Miễn Thuế, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Theo Giấy Phép, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Việt Nam 2014, Danh Mục Hàng Hoá Xuất Khẩu Nhập Khẩu Việt Nam, Thủ Tục Nhập Khẩu Khẩu Trang, Thủ Tục Nhập Khẩu Khẩu Trang Y Tế, Hướng Dẫn Thi Hành Thuế Xuất Khẩu Thuế Nhập Khẩu,

Don Xin Xac Nhan Chưa Nhap Khau Cho Con, Xác Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Mẫu Đơn Xin Ca Nhận Chưa Nhập Khẩu Cho Con, Xac Nhan Chua Nhap Ho Khau, Đơn Xác Nhận Chưa Nhập Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Đơn Xác Nhận Chưa Nhập Khẩu Cho Con, Mau Don Xin Xac Nhan Chua Nhap Khau Cho Con, Don Xac Nhan Chua Nhap Ho Khau Cho Con, Mau Xac Nhan Chua Nhap Khau Cho Con, Don Xac Nhan Chua Nhap Ho Khau, Mâu Đơn Xac Nhan Con Chua Nhap Ho Khâu, Mẫu Đơn Xác Nhận Chưa Nhập Khẩu , Mẫu Xin Xác Nhận Chưa Nhập Hộ Khẩu, Mau Xac Nhan Chua Nhap Ho Khau Cho Con, Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu, Xac Nhan Chua Nhap Ho Khau Cho Con, Mau Don Xac Nhan Chua Nhap Khau Cho Con, Đơn Xin Xác Nhận Chưa Nhập Khẩu, Xac N Nhan Chua Nhap Khau, Mẫu Đưn Xin Xác Nhận Chưa Nhập Khẩu, Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Xác Nhận Chưa Nhập Khẩu, Xac Nhan Chua Nhap Khau, Mẫu Đơn Xin Xác Nhận Con Chưa Nhập Hộ Khẩu, Mẫu Đơn Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Đơn Xin Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Xin Xac Nhan Chua Nhap Ho Khau, Mẫu Đơn Chưa Xác Nhận Nhập Khẩu Cho Con, Mau Don Xin Xac Nhan Chua Nhap Ho Khau Chon Con, Don Xinxac Nhan Chua Nhap Khau, Giấy Xác Nhận Chưa Nhập Khẩu, Giấy Xác Nhận Chưa Nhập Hộ Khẩu Cho Con, Giấy Xác Nhận Chưa Nhập Khẩu Cho Con, Mẫu Đơn Đề Nghị Xác Nhận Chưa Nhập Hộ Khẩu, Mẫu Giấy Xác Nhận Chưa Nhập Khẩu, Đơn Can Kết Chưa Nhập Hộ Khẩu Cho Con, ơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Mẫu Đơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Cam Kết Chưa Nhập Hộ Khẩu, Thủ Tục Ly Hôn Khi Chưa Nhập Khẩu, Đơn Cam Kết Chưa Nhập Khẩu Cho Con, Mẫu Đơn Cam Kết Chua Nhap Khau Cho Con, Đơn Cam Kết Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu Cho Con, Chưa Nhập Hộ Khẩu, Mẫu Đơn Xin Cam Kết Chưa Nhập Khẩu Cho Con Gái, Mau Don Xin Cam Ket Chua Nhap Khau Cho Con O Bat Ki Noi Nao,

Bai Giang Dien Tu Bai 7 Thu Tuc Vao Ra

GV Hoa Oải HươngNhiệt liệt chào mừng các quý thầy cô về dự giờ thăm lớp

GV Hoa Oải Hương

KIỂM TRA BÀI CŨ Câu 1: Hàm cho giá trị bằng bình phương của x là :A. abs(x);

B. Sqr(x);

C. Sqrt(x);

D. Exp(x);GV Hoa Oải Hương

KIỂM TRA BÀI CŨCâu 2: Biểu thức số học nào sau đây là hợp lệ trong pascal ? X*y(x+y); B. {a + b}*c; 5a + 7b + 8c; 5*a + 7*b + 8*c;GV Hoa Oải Hương

KIỂM TRA BÀI CŨCâu 3: Để thực hiện gán giá trị 10 cho biến X. Phép gán nào sau đây là đúng ? A. X =: 10; B. X := 10; C. X = 10; D. X : = 10;GV Hoa Oải Hương

KIỂM TRA BÀI CŨCâu 4: Hãy chọn phương án ghép đúng. Biểu thức : 25 div 3 + 5 / 2 * 3 có giá trị là :

A. 15.5; 8.5; C. 8.0; D. 15.0;GV Hoa Oải Hương 4. Tổ chức vào ra đơn giản 3. Phép toán, biểu thức, câu lệnh gán 1. Cấu trúc chương trình2. Một số kiểu dữ liệu đơn giản và khai báo biến 5. Soạn thảo, dịch, thực hiện chương trìnhCHỦ ĐỀ 2: CHƯƠNG TRÌNH ĐƠN GIẢNGV Hoa Oải HươngBài toán đặt vấn đề?Viết chương trình tính chu vi (CV) và diện tích (S) của hình chữ nhật, biết chiều dài a = 12, chiều rộng b = 8.Bài toánHãy khai báo các biến cần dùng trong chương trình? Var a,b,CV,S : byte;Viết lệnh gán tính chu vi, diện tích hình chữ nhật? a:=12; b:=8; CV:=(a+b)*2; S:=a*b;GV Hoa Oải HươngNhập a,bXuất S, CV S:=a*b;CV:=2*(a+b);Xác định bài toán:– Input: a, b.– Output: S, CVViết chương trình tính và in ra màn hình chu vi (CV) và diện tích (S) của hình chữ nhật, với chiều dài a và chiều rộng b bất kì ?

Xác định Input, Output của bài toán trên?Để giải quyết bài toán trên các ngôn ngữ lập trình cung cấp các thủ tục chuẩn vào ra đơn giản.* Khi giải quyết một bài toán, ta phải đưa dữ liệu vào máy tính xử lí. – Việc đưa dữ liệu bằng lệnh gán sẽ làm cho chương trình chỉ có tác dụng với một dữ liệu cố định. Để chương trình giải quyết được bài toán tổng quát hơn, ta phải sử dụng thủ tục nhập, xuất dữ liệu. GV Hoa Oải HươngReadlnReadWritelnWriteGV Hoa Oải Hương 4. Tổ chức vào ra đơn giản 3. Phép toán, biểu thức, câu lệnh gán 1. Cấu trúc chương trình2. Một số kiểu dữ liệu đơn giản và khai báo biến 5. Soạn thảo, dịch, thực hiện chương trìnhCHỦ ĐỀ 2: CHƯƠNG TRÌNH ĐƠN GIẢNGV Hoa Oải Hương1.Nhập dữ liệu vào từ bàn phím1. Nhập dữ liệu vào từ bàn phímCú pháp:Cú pháp:Read(); Readln(); Ý nghĩa:Ý nghĩa:Cho phép nhập dữ liệu vào từ bàn phím.Danh sách biến vào: là một hay nhiều biến đơn, trường hợp nhiều biến đơn phải viết cách nhau bởi dấu phẩy ‘,’.Ví dụ 1: Hãy nhập vào bán kính R của đường tròn? Read (R); 100 Readln(R); Ví dụ 2: Nhập dữ liệu từ bàn phím để giải phương trình ax+b=0? Read (a,b); 10 20 Readln(a,b);TỔ CHỨC VÀO RA ĐƠN GIẢNGV Hoa Oải Hương1.Nhập dữ liệu vào từ bàn phím1. Nhập dữ liệu vào từ bàn phímCú pháp:Cú pháp:Read(); Hoặc Readln(); Ý nghĩa:Ý nghĩa:Cho phép nhập dữ liệu vào từ bàn phím.Danh sách biến vào: là một hay nhiều biến đơn, trường hợp nhiều biến đơn phải viết cách nhau bởi dấu phẩy ‘,’.Khi nhập giá trị cho nhiều biến thì những giá trị này gõ cách nhau 1 dấu cách (Space) hoặc 1 lần nhấn Enter và nhập xong ta nhấn Enter để kết thúc nhập.TỔ CHỨC VÀO RA ĐƠN GIẢNGV Hoa Oải HươngReadln(a); Ví dụ 3: Viết thủ tục nhập vào chiều dài a, chiều rộng b của HCN?Readln(b);Write(‘Nhap chieu dai a:’); Write(‘Nhap chieu rong b:’); Readln(a,b);Cách 1:Write(‘nhap chieu dai, chieu rong a, b:’); Cách 2:4Nhap chieu dai a:4Nhap chieu rong b:Hoặc1.Nhập dữ liệu vào từ bàn phím__Readln(a); Readln(b);* Để việc nhập dữ liệu cho biến được dễ dàng hơn ta sử dụng thêm thủ tục:Write(‘thong bao’);GV Hoa Oải HươngRead(a); Read(a,b);Read(a=b); Readln(a-b);Readln(a,b); Em hãy chỉ ra các câu lệnh bị lỗiABCDECDGV Hoa Oải Hương1. Nhập dữ liệu vào từ bàn phímCú pháp:Ý nghĩa:TỔ CHỨC VÀO RA ĐƠN GIẢN2. Đưa dữ liệu ra màn hình2. Đưa dữ liệu ra màn hìnhCú pháp:Cú pháp:Write(); Hoặc Writeln();Ý nghĩa: Ý nghĩa: Cho phép xuất dữ liệu ra màn hình.Danh sách kết quả có thể là tên biến, biểu thức, hàm chuẩn hoặc hằng số, (Các hằng xâu thường được dùng để đưa ra chú thích hoặc để tách các kết quả).Các thành phần trong kết quả được viết cách nhau bởi dấu phẩy.GV Hoa Oải Hương1. Nhập dữ liệu vào từ bàn phímCú pháp:Ý nghĩa:TỔ CHỨC VÀO RA ĐƠN GIẢN2. Đưa dữ liệu ra màn hình2. Đưa dữ liệu ra màn hìnhCú pháp:Ý nghĩa: Write(‘Chieu dai, rong va dien tich HCN la : ‘, a, b, a*b);Ví dụ 4:HằngBiếnBiểu thứcEm hãy chỉ ra tên biến, biểu thức, hằng trong câu lệnh trên?Chieu dai, rong va dien tich HCN la : 8 6 48 GV Hoa Oải HươngTheo em sự khác nhau giữa thủ tục Write và Writeln này là gì?GV Hoa Oải HươngThủ tục write: sau khi đưa kết quả ra màn hình thì con trỏ không xuống dòng.Thủ tục writeln: sau khi đưa kết quả ra màn hình thì con trỏ xuống đầu dòng tiếp theo.Thủ tục writeln không có tham số dùng để xuống dòng.Write(‘Lop 11A8’);Write(‘hoc tot’);Lop 11A8 hoc totWriteln(‘Lop 11A8’);Writeln(‘hoc tot’);Lop 11A8 hoc tot__Write(‘Lop 11A8’);writeln;Write(‘hoc tot’);Lop 11A8hoc tot_Ví dụ 5:GV Hoa Oải HươngVí dụ 6: Gán a: = 8; b: = 16; x : = 22.2222;Write( a:5 , b:4 , a+b:3);Write( a:7:2 );Write( x:8:3 );Write( ‘Hello’:6 );Trong thủ tục Write hoặc Writeln sau mỗi kết quả ra (biến, hằng, biểu thức) có thể có thêm quy cách ra. Quy cách ra có dạng: + Kết quả thực : : + Kết quả khác : _ _ _ _8 _ _ 16 _ 24

_ _ _8.00

_ _22.222

HelloGV Hoa Oải Hương*** Một số ví dụProgram VD_1;Var N: Byte;BEGINWrite(‘ Lop ban co bao nhieu nguoi: ‘);Readln(N);Writeln(‘ That the a! Vay la ban co ‘,N-1,’ nguoi ban trong lop ‘);Writeln(‘ Go Enter de ket thuc chuong trinh.’);Readln;END. Phần khai báoPhần thân chương trìnhThủ tục nhập dữ liệu từ bàn phímThủ tục in kết quả ra màn hìnhVí dụ 1: Hãy nêu tên các thành phần và các thủ tục trong chương trình sau:GV Hoa Oải Hương1. Nhập dữ liệu vào từ bàn phímCú pháp:Ý nghĩa:TỔ CHỨC VÀO RA ĐƠN GIẢN2. Đưa dữ liệu ra màn hìnhCú pháp:Ý nghĩa: Hãy nhớ!1. Thủ tục nhập từ bàn phím.Read();Readln();2. Thủ tục đưa ra màn hìnhWrite();Writeln();GV Hoa Oải HươngBài 1: Viết chương trình hiển thị ra màn hình kết quả sau?a. b. 1 * 121 ***12321 *****a. Begin Writeln(‘1’:3); Writeln(‘121’:4); Writeln(‘12321’:5); Readln;End.b.Begin Writeln(‘*’:3); Writeln(‘***’:4); Writeln(‘*****’:5); Readln;End.Bài tập :GV Hoa Oải HươngBài 2: Lập chương trình tính diện tích của hình chữ nhật có độ dài 2 cạnh a,b nhập vào từ bàn phímGợi ý:Cần khai báo những biến nào?Nhập vào từ bàn phím cái gì?Viết ra màn hình cái gì?GV Hoa Oải Hương Tiết học đến đây là kết thúc Xin chân thành cảm ơn quý thầy cô và các em học sinh !!!

.:: Trang Tin Tuc Vovinam Viet Vo Dao

Hội Việt Võ Đạo Thành phố Hồ Chí Minh ban hành điều lệ khóa thi thăng cấp khóa 39 như sau:

Điều 1. Thời gian và địa điểm thi: Khóa thi được tổ chức vào lúc 07g30 Chủ nhật ngày 09/12/2012 tại Nhà thi đấu TDTT Quận 8, số 302 Phạm Hùng, Phường 5, Quận 8, chúng tôi

Điều 2. Chương trình và nội dung thi : Khóa thi lên cấp Huyền đai; Hoàng đai 1, 2 và 3 cấp, áp dụng theo chương trình thi hiện hành của Môn phái Vovinam Việt Võ Đạo với các nội dung thi: – Võ thuật: Đòn căn bản, đơn luyện, song luyện, giao đấu – Thi vấn đáp võ đạo: Chương trình lý thuyết võ đạo Môn phái theo từng cấp và kiến thức Việt Võ Đạo.

Dành cho các môn sinh đã học hết chương trình, có đủ sức khỏe, đủ niên hạn và chuyên môn theo quy định, không vi phạm đạo đức tác phong, quy chế võ vật chúng tôi đang theo tập và sinh hoạt Vovinam Việt Võ Đạo tại các Câu lạc bộ thuộc quận huyện, ban ngành trong và ngoài thành phố, phải được sự đồng ý và giới thiệu của HLV Trưởng và đơn vị chủ quản, nộp đầy đủ hồ sơ dự thi. Khi dự thi, các môn sinh phải chấp hành nghiêm chỉnh nội quy khóa thi. * Hồ sơ thi lên Hoàng đai (tên gọi cũ là Huyền đai), các đơn vị phải nộp biên bản tổ chức, quyết định kết quả khóa thi, đóng lệ phí thi cấp cơ sở, có xác nhận của Hội Việt Võ Đạo chúng tôi và đơn vị chủ quản.

* Hồ sơ dự thi gồm có: – Bảng tổng hợp danh sách thí sinh dự thi của đơn vị. – Đơn xin thi thăng cấp theo mẫu, có xác nhận của đơn vị, kèm thẻ đẳng cấp hiện nay (bản chính). – Bản sao giấy khai sinh hoặc CMND có thị thực.– Kèm 02 ảnh 3×4 (ảnh mới chụp, đẹp, rõ ràng). – Giấy chứng nhận hoặc quyết định đẳng cấp hiện nay (nếu có). – Nộp lệ phí thi: 250.000 đồng (đã bao gồm phí làm thẻ chuyên môn của Liên đoàn Vovinam Việt Nam). – Các hồ sơ kèm theo (đối với thí sinh dự thi lên Hoàng đai).

* Hạn chót nộp hồ sơ: từ 08g00 đến 09g00 Thứ Bảy ngày 01/12/2012 tại Sở Văn hóa, Thể thao và Du lịch thành phố (số 3 Phan Văn Đạt, Quận 1).* Họp lãnh đội, duyệt hồ sơ thi: 09g30 Thứ Bảy ngày 01/12/2012 tại Sở Văn hóa, Thể thao và Du lịch thành phố (số 3 Phan Văn Đạt, Quận 1).

– Lưu ý: Ban tổ chức không nhận hồ sơ không đúng thủ tục và trễ hạn.

Để đảm bảo cho khóa thi được tổ chức thành công, đề nghị các Chi hội, bộ môn Vovinam Việt Võ Đạo quận huyện, ban ngành chuẩn bị tốt chương trình thi với chất lượng chuyên môn cao và triển khai tốt tinh thần điều lệ này.

How To Write Doc Comments For The Javadoc Tool

Javadoc Home Page

For reference material on Javadoc tags, see the Javadoc reference pages.

Contents

Introduction

Principles

Writing API Specifications

The Java Platform API Specification is a contract between callers and implementations.

Unless otherwise noted, the Java API Specification assertions need to be implementation-independent. Exceptions must be set apart and prominently marked as such.

We have guidelines for how to prominently document implementation differences.

The Java API Specification should contain assertions sufficient to enable Software Quality Assurance to write complete Java Compatibility Kit (JCK) tests.

Writing Programming Guide Documentation

Who Owns and Edits the Doc Comments

Terminology

API documentation (API docs) or API specifications (API specs)

On-line or hardcopy descriptions of the API, intended primarily for programmers writing in Java. These can be generated using the Javadoc tool or created some other way. An API specification is a particular kind of API document, as described above. An example of an API specification is the on-line Java Platform, Standard Edition 7 API Specification.

javadoc

Source Files

The Javadoc tool can generate output originating from four different types of “source” files:

Miscellaneous unprocessed files – these include images, sample source code, class files, applets, HTML files, and whatever else you might want to reference from the previous files.

For more details, see: Source Files.

Writing Doc Comments

Format of a Doc Comment

/** * Returns an Image object that can then be painted on the screen. * The url argument must specify an absolute {@link URL}. The name * argument is a specifier that is relative to the url argument. * This method always returns immediately, whether or not the * image exists. When this applet attempts to draw the image on * the screen, the data will be loaded. The graphics primitives * that draw the image will incrementally paint on the screen. * * @param url an absolute URL giving the base location of the image * @param name the location of the image, relative to the url argument * @return the image at the specified URL * @see Image */ public Image getImage(URL url, String name) { try { return getImage(new URL(url, name)); } catch (MalformedURLException e) { return null; } }

Notes:

The resulting HTML from running Javadoc is shown below

Starting with Javadoc 1.4, the leading asterisks are optional.

Write the first sentence as a short summary of the method, as Javadoc automatically places it in the method summary table (and index).

For more examples, see Simple Examples.

Here is what the previous example would look like after running the Javadoc tool:

getImage public Image getImage(URL url, String name)

Returns an Image object that can then be painted on the screen. The url argument must specify an absolute URL. The name argument is a specifier that is relative to the url argument.

This method always returns immediately, whether or not the image exists. When this applet attempts to draw the image on the screen, the data will be loaded. The graphics primitives that draw the image will incrementally paint on the screen.

Parameters:

url – an absolute URL giving the base location of the image.

name – the location of the image, relative to the url argument.

Returns:

the image at the specified URL.

See Also:

Image

Also see Troubleshooting Curly Quotes (Microsoft Word) at the end of this document.

Doc Comment Checking Tool

DocCheck is a Javadoc doclet, or “plug-in”, and so requires that the Javadoc tool be installed (as part of the Java 2 Standard Edition SDK).

Descriptions

First Sentence

This sentence ends at the first period that is followed by a blank, tab, or line terminator, or at the first tag (as defined below). For example, this first sentence ends at “Prof.”:

/** * This is a simulation of Prof. Knuth's MIX computer. */

However, you can work around this by typing an HTML meta-character such as “&” or “<” immediately after the period, such as:

/** * This is a simulation of Prof.&nbsp;Knuth's MIX computer. */

or

/** */

In particular, write summary sentences that distinguish overloaded methods from each other. For example:

/** * Class constructor. */ foo() { ... /** * Class constructor specifying number of objects to create. */ foo(int n) { ...

Implementation-Independence

Write the description to be implementation-independent, but specifying such dependencies where necessary. This helps engineers write code to be “write once, run anywhere.”

Define clearly what is required and what is allowed to vary across platforms/implementations.

Ideally, make it complete enough for conforming implementors. Realistically, include enough description so that someone reading the source code can write a substantial suite of conformance tests. Basically, the spec should be complete, including boundary conditions, parameter ranges and corner cases.

Where appropriate, mention what the specification leaves unspecified or allows to vary among implementations.

On Windows systems, the path search behavior of the loadLibrary method is identical to that of the Windows API’s LoadLibrary procedure.

The use of “On Windows” at the beginning of the sentence makes it clear up front that this is an implementation note.

When a method in a class overrides a method in a superclass

When a method in an interface overrides a method in a superinterface

When a method in a class implements a method in an interface

In the first two cases, if a method m() overrides another method, The Javadoc tool will generate a subheading “Overrides” in the documentation for m(), with a link to the method it is overriding.

In the third case, if a method m() in a given class implements a method in an interface, the Javadoc tool will generate a subheading “Specified by” in the documentation for m(), with a link to the method it is implementing.

A Style Guide

Java keywords

package names

class names

method names

interface names

field names

argument names

code examples

Use in-line links economically

You are encouraged to add links for API names (listed immediately above) using the

Omit parentheses for the general form of methods and constructors

When referring to a method or constructor that has multiple forms, and you mean to refer to a specific form, use parentheses and argument types. For example, ArrayList has two add methods: add(Object) and add(int, Object):

The add(int, Object) method adds an item at a specified position in this arraylist.

However, if referring to both forms of the method, omit the parentheses altogether. It is misleading to include empty parentheses, because that would imply a particular form of the method. The intent here is to distinguish the general method from any of its particular forms. Include the word “method” to distinguish it as a method and not a field.

The add method enables you to insert items. (preferred)

The add() method enables you to insert items. (avoid when you mean “all forms” of the add method)

OK to use phrases instead of complete sentences, in the interests of brevity. This holds especially in the initial summary and in @param tag descriptions.

Use 3rd person (descriptive) not 2nd person (prescriptive).

The description is in 3rd person declarative rather than 2nd person imperative.

Gets the label. (preferred)

Get the label. (avoid)

Method descriptions begin with a verb phrase.

A method implements an operation, so it usually starts with a verb phrase:

Gets the label of this button. (preferred)

This method gets the label of this button.

Class/interface/field descriptions can omit the subject and simply state the object.

These API often describe things rather than actions or behaviors:

A button label. (preferred)

This field is a button label. (avoid)

Use “this” instead of “the” when referring to an object created from the current class.

For example, the description of the getToolkit method should read as follows:

Gets the toolkit for this component. (preferred)

Gets the toolkit for the component. (avoid)

Add description beyond the API name.

Avoid – The description below says nothing beyond what you know from reading the method name. The words “set”, “tool”, “tip”, and “text” are simply repeated in a sentence.

/** * Sets the tool tip text. * * @param text the text of the tool tip */ public void setToolTipText(String text) {

Preferred – This description more completely defines what a tool tip is, in the larger context of registering and being displayed in response to the cursor.

/** * Registers the text to display in a tool tip. The text * displays when the cursor lingers over the component. * * @param text the string to display. If the text is null, * the tool tip is turned off for this component. */ public void setToolTipText(String text) {

Be clear when using the term “field”.

Be aware that the word “field” has two meanings:

static field, which is another term for “class variable”

text field, as in the TextField class. Note that this kind of field might be restricted to holding dates, numbers or any text. Alternate names might be “date field” or “number field”, as appropriate.

Avoid Latin

use “also known as” instead of “aka”, use “that is” or “to be specific” instead of “i.e.”, use “for example” instead of “e.g.”, and use “in other words” or “namely” instead of “viz.”

Tag Conventions

This section covers:

Most of the following tags are specified in the Java Language Specification, First Edition. Also see the Javadoc reference page.

Order of Tags

Include tags in the following order:

@author (classes and interfaces only, required)

@version (classes and interfaces only, required. See footnote 1)

@param (methods and constructors only)

@return (methods only)

@exception (@throws is a synonym added in Javadoc 1.2)

@see

@since

@serial (or @serialField or @serialData)

@deprecated (see How and When To Deprecate APIs)

Ordering Multiple Tags

Multiple @author tags should be listed in chronological order, with the creator of the class listed at the top.

Multiple @param tags should be listed in argument-declaration order. This makes it easier to visually match the list to the declaration.

Multiple @throws tags (also known as @exception) should be listed alphabetically by the exception names.  

Multiple @see tags should be ordered as follows, which is roughly the same order as their arguments are searched for by javadoc, basically from nearest to farthest access, from least-qualified to fully-qualified, The following list shows this progression. Notice the methods and constructors are in “telescoping” order, which means the “no arg” form first, then the “1 arg” form, then the “2 arg” form, and so forth. Where a second sorting key is needed, they could be listed either alphabetically or grouped logically.

@see #field @see #Constructor(Type, Type...) @see #Constructor(Type id, Type id...) @see #method(Type, Type,...) @see #method(Type id, Type, id...) @see Class @see Class#field @see Class#Constructor(Type, Type...) @see Class#Constructor(Type id, Type id) @see Class#method(Type, Type,...) @see Class#method(Type id, Type id,...) @see package.Class @see package.Class#field @see package.Class#Constructor(Type, Type...) @see package.Class#Constructor(Type id, Type id) @see package.Class#method(Type, Type,...) @see package.Class#method(Type id, Type, id) @see package

Required Tags

These principles expedite automated searches and automated processing. Frequently, too, the effort to avoid redundancy pays off in extra clarity.

Tag Comments

@author (reference page)

You can provide one @author tag, multiple @author tags, or no @author tags. In these days of the community process when development of new APIs is an open, joint effort, the JSR can be consider the author for new packages at the package level. For example, the new package chúng tôi has “@author JSR-51 Expert Group” at the package level. Then individual programmers can be assigned to @author at the class level. As this tag can only be applied at the overview, package and class level, the tag applies only to those who make significant contributions to the design or implementation, and so would not ordinarily include technical writers.

The @author tag is not critical, because it is not included when generating the API specification, and so it is seen only by those viewing the source code. (Version history can also be used for determining contributors for internal purposes.)

If someone felt strongly they need to add @author at the member level, they could do so by running javadoc using the new 1.4 -tag option:

-tag author:a:"Author:"

If the author is unknown, use “unascribed” as the argument to @author. Also see order of multiple @author tags.

@version (reference page)

The Java Software convention for the argument to the @version tag is the SCCS string “%I%, %G%”, which converts to something like ” 1.39, 02/28/97” (mm/dd/yy) when the file is checked out of SCCS.

@param (reference page)

The @param tag is followed by the name (not data type) of the parameter, followed by a description of the parameter. By convention, the first noun in the description is the data type of the parameter. (Articles like “a”, “an”, and “the” can precede the noun.) An exception is made for the primitive int, where the data type is usually omitted. Additional spaces can be inserted between the name and description so that the descriptions line up in a block. Dashes or other punctuation should not be inserted before the description, as the Javadoc tool inserts one dash.

Parameter names are lowercase by convention. The data type starts with a lowercase letter to indicate an object rather than a class. The description begins with a lowercase letter if it is a phrase (contains no verb), or an uppercase letter if it is a sentence. End the phrase with a period only if another phrase or sentence follows it.

Example:

* @param ch the character to be tested * @param observer the image observer to be notified

When writing a phrase, do not capitalize and do not end with a period:

@param x  the x-coordinate, measured in pixels

When writing a phrase followed by a sentence, do not capitalize the phrase, but end it with a period to distinguish it from the start of the next sentence:

@param x  the x-coordinate. Measured in pixels.

If you prefer starting with a sentence, capitalize it and end it with a period:

  @param x  Specifies the x-coordinate, measured in pixels.

When writing multiple sentences, follow normal sentence rules:

  @param x  Specifies the x-coordinate. Measured in pixels.

Also see order of multiple @param tags.

@return (reference page)

Omit @return for methods that return void and for constructors; include it for all other methods, even if its content is entirely redundant with the method description. Having an explicit @return tag makes it easier for someone to find the return value quickly. Whenever possible, supply return values for special cases (such as specifying the value returned when an out-of-bounds argument is supplied).

Use the same capitalization and punctuation as you used in @param.

@deprecated (reference page)

The @deprecated description in the first sentence should at least tell the user when the API was deprecated and what to use as a replacement. Only the first sentence will appear in the summary section and index. Subsequent sentences can also explain why it has been deprecated. When generating the description for a deprecated API, the Javadoc tool moves the @deprecated text ahead of the description, placing it in italics and preceding it with a bold warning: “Deprecated”. An @see tag (for Javadoc 1.1) or {@link} tag (for Javadoc 1.2 or later) should be included that points to the replacement method:

For Javadoc 1.2 and later, the standard format is to use @deprecated tag and the in-line {@link} tag. This creates the link in-line, where you want it. For example:

/** * @deprecated As of JDK 1.1, replaced by * {@link #setBounds(int,int,int,int)} */

For Javadoc 1.1, the standard format is to create a pair of @deprecated and @see tags. For example:

/** * @deprecated As of JDK 1.1, replaced by * setBounds * @see #setBounds(int,int,int,int) */

If the member has no replacement, the argument to @deprecated should be “No replacement”.

Do not add @deprecated tags without first checking with the appropriate engineer. Substantive modifications should likewise be checked first.

@since (reference page)

Specify the product version when the Java name was added to the API specification (if different from the implementation). For example, if a package, class, interface or member was added to the Java 2 Platform, Standard Edition, API Specification at version 1.2, use:

/** * @since 1.2 */

(The convention once was ” @since JDK1.2” but because this is a specification of the Java Platform, not particular to the Oracle JDK or SDK, we have dropped “JDK”.)

When a package is introduced, specify an @since tag in its package description and each of its classes. (Adding @since tags to each class is technically not needed, but is our convention, as enables greater visibility in the source code.) In the absence of overriding tags, the value of the @since tag applies to each of the package’s classes and members.

When a class (or interface) is introduced, specify one @since tag in its class description and no @since tags in the members. Add an @since tag only to members added in a later version than the class. This minimizes the number of @since tags.

If a member changes from protected to public in a later release, the @since tag would not change, even though it is now usable by any caller, not just subclassers.

@throws (@exception was the original tag) (reference page)

A @throws tag should be included for any checked exceptions (declared in the throws clause), as illustrated below, and also for any unchecked exceptions that the caller might reasonably want to catch, with the exception of NullPointerException. Errors should not be documented as they are unpredictable. For more details, please see Documenting Exceptions with the @throws Tag.

/** * @throws IOException If an input or output * exception occurred */ public void f() throws IOException { }

See the Exceptions chapter of the Java Language Specification, Second Edition for more on exceptions. Also see order of multiple @throws tags.

@see (reference page)

Also see order of multiple @see tags.

@serial

@serialField

@serialData  

(All added in Javadoc 1.2) (reference page)

For information about how to use these tags, along with an example, see “Documenting Serializable Fields and Data for a Class,” Section 1.6 of the Java Object Serialization Specification. Also see Oracle’s criteria for including classes in the serialized form specification.

{@link} (Added in Javadoc 1.2) (reference page)

For conventions, see Use In-Line Links Economically.

Custom Tags and Annotations

If annotations are new to you, when you need to markup your source code, it might not be immediately clear whether to use an annotation or a Javadoc custom tag. Here is a quick comparison of the two.

In general, if the markup is intended to affect or produce documentation, it should probably be a javadoc tag; otherwise, it should be an annotation.

Tag – Intended as a way of adding structure and content to the documentation. Allows multi-line text to be provided. (Use the -tag or -taglet Javadoc option to create custom tags.) Tags should never affect program semantics.

Annotation – Does not directly affect program semantics, but does affect the way programs are treated by tools and libraries, which can in turn affect the semantics of the running program. Annotations can be read from source files, class files, or reflectively at run time. Allows a single line of text to be provided.

Documenting Default Constructors

Section 8.8.7 of the Java Language Specification, Second Edition describes a default constructor: If a class contains no constructor declarations, then a default constructor that takes no parameters is automatically provided. It invokes the superclass constructor with no arguments. The constructor has the same access as its class.

/** * Sole constructor. (For invocation by subclass * constructors, typically implicit.) */ protected AbstractMap() { }

Documenting Exceptions with @throws Tag

NOTE – The tags @throws and @exception are synonyms.

Documenting Exceptions in API Specs

The API specification for methods is a contract between a caller and an implementor. Javadoc-generated API documentation contains two ways of specifying this contract for exceptions — the “throws” clause in the declaration, and the @throws Javadoc tag. These guidelines describe how to document exceptions with the @throws tag.

Throws Tag

The purpose of the @throws tag is to indicate which exceptions the programmer must catch (for checked exceptions) or might want to catch (for unchecked exceptions).

Guidelines – Which Exceptions to Document

Document the following exceptions with the @throws tag:

All checked exceptions. (These must be declared in the throws clause.)

Those unchecked exceptions that the caller might reasonably want to catch. (It is considered poor programming practice to include unchecked exceptions in the throws clause.) Documenting these in the @throws tag is up to the judgment of the API designer, as described below.

Documenting Unchecked Exceptions

It is generally desirable to document the unchecked exceptions that a method can throw: this allows (but does not require) the caller to handle these exceptions. For example, it allows the caller to “translate” an implementation-dependent unchecked exception to some other exception that is more appropriate to the caller’s exported abstraction.

Since there is no way to guarantee that a call has documented all of the unchecked exceptions that it may throw, the programmer must not depend on the presumption that a method cannot throw any unchecked exceptions other than those that it is documented to throw. In other words, you should always assume that a method can throw unchecked exceptions that are undocumented.

Note that it is always inappropriate to document that a method throws an unchecked exception that is tied to the current implementation of that method. In other words, document exceptions that are independent of the underlying implementation. For example, a method that takes an index and uses an array internally should not be documented to throw an ArrayIndexOutOfBoundsException, as another implementation could use a data structure other than an array internally. It is, however, generally appropriate to document that such a method throws an IndexOutOfBoundsException.

Keep in mind that if you do not document an unchecked exception, other implementations are free to not throw that exception. Documenting exceptions properly is an important part of write-once, run-anywhere.

Background on Checked and Unchecked Exceptions

The idea behind checking an exception is that the compiler checks at compile-time that the exception is properly being caught in a try-catch block.

You can identify checked and unchecked exceptions as follows.

Unchecked exceptions are the classes RuntimeException, Error and their subclasses.

All other exception subclasses are checked exceptions.

Note that whether an exception is checked or unchecked is not defined by whether it is included in a throws clause.

Background on the Throws Clause

Checked exceptions must be included in a throws clause of the method. This is necessary for the compiler to know which exceptions to check. For example (in java.lang.Class):

Copy

public static Class forName(String className) throws ClassNotFoundException

java.lang.Byte source code:

Copy

public static Byte valueOf(String s, int radix) throws NumberFormatException

Note that the Java Language Specification also shows unchecked exceptions in throws clauses (as follows). Using the throws clause for unchecked exceptions in the spec is merely a device meant to indicate this exception is part of the contract between the caller and implementor. The following is an example of this (where “final” and “synchronization” are removed to make the comparison simpler).

java.util.Vector source code:

public Object elementAt(int index)

java.util.Vector spec in the Java Language Specification, 1st Ed. (p. 656):

Copy

public Object elementAt(int index) throws IndexOutOfBoundsException Package-Level Comments

The Javadoc tool processes package.html by doing three things:

Processes any @see, @since or {@link} Javadoc tags that are present.

Copies the first sentence to the right-hand column of the Overview Summary .

Template for chúng tôi source file

Contents of chúng tôi source file

Make the first sentence a summary of the package. For example: “Provides classes and interfaces for handling text, dates, numbers and messages in a manner independent of natural languages.”

Describe what the package contains and state its purpose.

Package Specification

Include a description of or links to any package-wide specifications for this package that are not included in the rest of the javadoc-generated documentation. For example, the chúng tôi package might describe how the general behavior in that package is allowed to vary from one operating system to another (Windows, Solaris, Mac).

An assertion is a statement a conforming implementor would have to know in order to implement the Java platform.

On that basis, at Oracle, references in this section are critical to the Java Compatibility Kit (JCK). The Java Compatibility Kit includes a test to verify each assertion, to determine what passes as Java Compatible. The statement “Returns an int” is an assertion. An example is not an assertion.

Some “specifications” that engineers have written contain no assertions not already stated in the API specs (javadoc) — they just elaborate on the API specs. In this respect, such a document should not be referred to in this section, but rather should be referred to in the next section.

Include specific references. If only a section of a referenced document should be considered part of the API spec, then you should link or refer to only that section and refer to the rest of the document in the next section. The idea is to clearly delineate what is part of the API spec and what is not, so the JCK team can write tests with the proper breadth. This might even encourage some writers to break documents apart so specs are separate.

Related Documentation

Include references to any documents that do not contain specification assertions, such as overviews, tutorials, examples, demos, and guides.

Class and Interface Summary

[Omit this section until we implement @category tag]

Describe logical groupings of classes and interfaces

@see other packages, classes and interfaces

Documenting Anonymous Inner Classes

/** * The method used for creating the tree. Any structural * modifications to the display of the Jtree should be done * by overriding this method. * This method adds an anonymous TreeSelectionListener to * the returned JTree. Upon receiving TreeSelectionEvents, * this listener calls refresh with the selected node as a * parameter. */ public JTree makeTree(AreaInfo ai){ }

Including Images

NOTE: The bullet and heading images required with Javadoc version 1.0 and 1.1 are located in the images directory of the JDK download bundle: jdk1.1/docs/api/images/. Those images are no longer needed starting with 1.2.

Prior to Javadoc 1.2, the Javadoc tool would not copy images to the destination directory — you had to do it in a separate operation, either manually or with a script. Javadoc 1.2 looks for and copies to the destination directory a directory named “doc-files” in the source tree (one for each package) and its contents. (It does a shallow copy for 1.2 and 1.3, and a deep copy for 1.4 and later.) Thus, you can put into this directory any images (GIF, JPEG, etc) or other files not otherwise processed by the Javadoc tool.

Images in Source Tree

Button-1.gif

java/awt/Button.java (source file)

java/awt/doc-files/Button-1.gif (image file)

Images in HTML Destination

Naming of doc images in HTML destination – Images would have the same name as they have in the source tree. Example:

Button-1.gif

Location of doc images in HTML destination

With hierarchical file output, such as Javadoc 1.2, directories would be located in the package directory named “doc-files”. For example:

api/java/awt/doc-files/Button-1.gif

api/images-java.awt/ api/images-java.awt.swing/

Examples of Doc Comments /** * Graphics is the abstract base class for all graphics contexts * which allow an application to draw onto components realized on * various devices or onto off-screen images. * A Graphics object encapsulates the state information needed * for the various rendering operations that Java supports. This * state information includes: * Coordinates are infinitely thin and lie between the pixels of the * output device. * Operations which draw the outline of a figure operate by traversing * along the infinitely thin path with a pixel-sized pen that hangs * down and to the right of the anchor point on the path. * Operations which fill a figure operate by filling the interior * of the infinitely thin path. * Operations which render horizontal text render the ascending * portion of the characters entirely above the baseline coordinate. * Some important points to consider are that drawing a figure that * covers a given rectangle will occupy one extra row of pixels on * the right and bottom edges compared to filling a figure that is * bounded by that same rectangle. * Also, drawing a horizontal line along the same y coordinate as * the baseline of a line of text will draw the line entirely below * the text except for any descenders. * Both of these properties are due to the pen hanging down and to * the right from the path that it traverses. * All coordinates which appear as arguments to the methods of this * Graphics object are considered relative to the translation origin * of this Graphics object prior to the invocation of the method. * All rendering operations modify only pixels which lie within the * area bounded by both the current clip of the graphics context * and the extents of the Component used to create the Graphics object. * * @author Sami Shaio * @author Arthur van Hoff * @version %I%, %G% * @since 1.0 */ public abstract class Graphics { /** * Draws as much of the specified image as is currently available * with its northwest corner at the specified coordinate (x, y). * This method will return immediately in all cases, even if the * entire image has not yet been scaled, dithered and converted * for the current output device. * If the current output representation is not yet complete then * the method will return false and the indicated * {@link ImageObserver} object will be notified as the * conversion process progresses. * * @param img the image to be drawn * @param x the x-coordinate of the northwest corner * of the destination rectangle in pixels * @param y the y-coordinate of the northwest corner * of the destination rectangle in pixels * @param observer the image observer to be notified as more * of the image is converted. May be * loaded and was painted successfully; * @see Image * @see ImageObserver * @since 1.0 */ public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer); /** * Dispose of the system resources used by this graphics context. * The Graphics context cannot be used after being disposed of. * While the finalization process of the garbage collector will * also dispose of the same system resources, due to the number * of Graphics objects that can be created in short time frames * it is preferable to manually free the associated resources * using this method rather than to rely on a finalization * process which may not happen for a long period of time. * Graphics objects which are provided as arguments to the paint * and update methods of Components are automatically disposed * by the system when those methods return. Programmers should, * for efficiency, call the dispose method when finished using * a Graphics object only if it was created directly from a * Component or another Graphics object. * * @see #create(int, int, int, int) * @see #finalize() * @see Component#getGraphics() * @see Component#paint(Graphics) * @see Component#update(Graphics) * @since 1.0 */ public abstract void dispose(); /** * Disposes of this graphics context once it is no longer * referenced. * * @see #dispose() * @since 1.0 */ public void finalize() { dispose(); } }

Troubleshooting Curly Quotes (Microsoft Word)

Problem – A problem occurs if you are working in an editor that defaults to curly (rather than straight) single and double quotes, such as Microsoft Word on a PC — the quotes disappear when displayed in some browsers (such as Unix Netscape). So a phrase like “the display’s characteristics” becomes “the displays characteristics.”

The illegal characters are the following:

146 – right single quote

147 – left double quote

148 – right double quote

What should be used instead is:

39 – straight single quote

34 – straight quote

Preventive Solution – The reason the “illegal” quotes occurred was that a default Word option is “Change ‘Straight Quotes’ to ‘Smart Quotes'”. If you turn this off, you get the appropriate straight quotes when you type.

Fixing the Curly Quotes – Microsoft Word has several save options — use “Save As Text Only” to change the quotes back to straight quotes. Be sure to use the correct option:

“Save As Text Only With Line Breaks” – inserts a space at the end of each line, and keeps curly quotes.

“Save As Text Only” – does not insert a space at the end of each lines, and changes curly quotes to straight quotes.

Footnotes

[1] At Java Software, we use @version for the SCCS version. See “man sccs-get” for details. The consensus seems to be the following:

%I% gets incremented each time you edit and delget a file

%G% is the date mm/dd/yy

When you create a file, %I% is set to 1.1. When you edit and delget it, it increments to 1.2.

Some developers omit the date %G% (and have been doing so) if they find it too confusing — for example, 3/4/96, which %G% would produce for March 4th, would be interpreted by those outside the United States to mean the 3rd of April. Some developers include the time %U% only if they want finer resolution (due to multiple check-ins in a day).

The clearest numeric date format would be to have the date formatted with the year first, something like yyyy-mm-dd, as proposed in ISO 8601 and elsewhere (such as http://www.cl.cam.ac.uk/~mgk25/iso-time.html), but that enhancement would need to come from SCCS.