Cloud Strife, với tuyệt chiêu Omnislash, từ sau khi đánh bại được chiến binh vĩ đại Sephiroth đã được tôn vinh là chiến binh giỏi nhất của loài người. Desperado là một terminator siêu cao cấp do các máy móc từ tương lai gửi về hiện tại để tiêu diệt loài người. Cuộc đấu giữa Cloud và Desperado, do đó, đã trở thành cuộc đấu giữa kỹ năng và công nghệ.Để thực thi ví dụ mẫu trên Cygwin, sinh viên thực hiện các công việc sau:1.Copy các file (main.cpp, cloud.cpp, cloud.h, 1_in.txt, 1_out.txt, 2_in.txt, 2_out.txt, 3_in.txt, 3_out.txt) vào cùng một thư mục trong Cygwin. Ví dụ như thư mục đó có đường dẫn là C:CygwinhomeVoDucVinh2.Mở Cygwin và thực hiện các lệnh cd cần thiết để chuyển đến thư mục VoDucVinh.3.Ghõ lệnh:> g++ o main.exe main.cpp cloud.cpp cloud.h (Nhấn ENTER)>.main.exe (Nhấn ENTER và quan sát kết quả)
BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH PHẦN HK2-2014-2015 THÔNG TIN CHUNG 1.1 Một số lưu ý trước làm bài Chương trình Sinh Viên phải thực thi được Cygwin trước nộp Sinh Viên có thể đọc hướng dẫn cài đặt và cách thực thi chương trình Cygwin file đính kèm tải bài tập lớn từ hệ thống Sakai Tên file nộp bài ĐÚNG yêu cầu người đề Sinh Viên không nên tự ý thay đổi cấu trúc chương trình viết sẵn Đã xảy trường hợp Sinh Viên tự ý đôi tên file, nén file, vân vân Tất cả đều gây lỗi chấm bài TỰ ĐỘNG Giảng Viên KHÔNG nhận bài được gửi qua mail hoặc bất kỳ hình thức nào khác Sakai sẽ TỰ ĐỘNG ĐÓNG chức nộp bài hết hạn Sinh viên nên nộp bài sớm nhất có thể Hệ thống đã được thiết lập cho phép sinh viên được nộp bài tối đa là lần Khi nộp bài sinh viên phải click nút Submit Sakai và chờ đến có thông báo nộp bài thành công Trong mục Assignment List trạng thái bài làm là Submitted Sinh viên sẽ nhận được email xác nhận là nộp bài thành công Sinh Viên nên thường xuyên cập nhật thông báo hệ thống Sakai để về các thay đổi bài tập lớn Mọi thắc mắc sẽ không được giải quyết nếu thông tin đã được thông báo trước Sinh Viên KHÔNG NÊN làm những đề bài KHÔNG YÊU CẦU Sinh Viên có quyền làm trái những ràng buộc đề bài đã nêu Tuy nhiên, nếu bạn đủ can đảm chấp nhận điểm và muốn ĐƯỢC ĐÌNH CHỈ THI CUỐI KY thực hiện những bạn muốn ^^ 1.2 Đạo văn (Plagiarism) và hình thức xử lý Sinh viên nên TỰ LÀM bài tập Sinh viên sẽ được kết luận là đạo văn nếu: Có sự giống giữa mã nguồn các bài nộp TẤT CẢ các bài nộp giống đều bị kết luận là đạo văn Sinh viên không hiểu mã nguồn chính viết, trừ những phần mã được cung cấp sẵn chương trình Cygwin là môi trường giả lập Unix/Linux máy tính chạy Windows Nếu máy tính sinh viên dùng hệ điều hành Unix/Linux chạy trực tiếp mà không cần phải cài Cygwin để kiểm tra chương trình KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH HK2-2014-2015 Các khóa trước đã xảy tình trạng bạn Tèo cho bạn Tí xem hoặc nhờ nộp bài Tí âm thầm copy bài Tèo làm bài và mang nộp Chương trình kiểm tra đạo văn phát hiện và cả hai “về hưu sớm” Do đó, sinh viên nên bảo vệ mã nguồn tập lớn không nên để cho bạn xem hoặc nhờ bạn nộp giúp Sau mỗi bài tập lớn được nộp, sẽ có số sinh viên được vấn ngẫu nhiên để chứng minh bài là tự làm Những trường hợp đạo văn bị xử lý nhẹ nhất là ĐƯỢC ĐÌNH CHỈ THI CUỐI KY Nếu Sinh Viên vi phạm nghiêm trọng đạo đức nghề nghiệp Giảng Viên sẽ đề xuất nhà trường xử lý học vu Nếu có bài tập lớn có testcases đúng hoặc Sinh Viên không làm đủ bài tập lớn sinh viên ĐƯỢC ĐÌNH CHỈ THI CUỐI KY PHẦN 2.1 ASSIGNMENT – PHẦN Giới thiệu Assignment – Phần 1: Kỹ và Công nghệ Cloud Strife, với tuyệt chiêu Omnislash, từ sau đánh bại chiến binh vĩ đại Sephiroth tôn vinh chiến binh giỏi loài người Desperado terminator siêu cao cấp máy móc từ tương lai gửi để tiêu diệt loài người Cuộc đấu Cloud Desperado, đó, trở thành đấu kỹ công nghệ KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH HK2-2014-2015 2.2 Tài nguyên Sinh Viên được cung cấp Assignment – Phần Sinh viên tải file assigment1.zip từ hệ thống Sakai, giải nén file này sẽ được: Assignment.doc File mô tả nội dung bài tập lớn, nộp bài, chấm bài Cygwin_Guide.doc File hướng dẫn cài đặt Cygwin A1_CSLT_2015 Project tạo sẵn môi trường Visual Studio 2010 1_in.txt Một file input ví dụ SV có thể sửa để chạy nhiều ví dụ khác 1_out.txt File output tương ứng với nội dung file 1_in.txt Sinh viên dùng chương trình Microsoft Visual Studio 2010 để khởi động project A1_CLST_2015 (hoặc click kép vào file A1_CSLT_2015.sln) Khi mở project thành công chương trình hình sau: KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH HK2-2014-2015 Thông tin các tập tin project được mô tả sau: main.cpp Chương trình chứa hàm main – SV KHÔNG nên sửa và KHÔNG CẦN HIỂU file này cloud.cpp Sinh viên CHỈ CODE file này cloud.h SV KHÔNG CẦN QUAN TÂM file này 1_in.txt Một file input ví dụ 1_out.txt File output tương ứng với nội dung file 1_in.txt 2_in.txt Một file input ví dụ 2_out.txt File output tương ứng với nội dung file 2_in.txt KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH 3_in.txt Một file input ví dụ 3_out.txt File output tương ứng với nội dung file 3_in.txt 2.3 HK2-2014-2015 Ý nghĩa dữ liệu nhập và thưc thi ví dụ mẫu Trong file input.txt có dòng, mỗi dòng mang ý nghĩa bảng sau: Tên Ý nghĩa Ví du A1 Chỉ số tấn công Cloud, là số nguyên từ đến 100 429 D1 Chỉ số phòng thủ Cloud, là số nguyên từ đến 98 92 A2 Chỉ số tấn công Desperado, là số nguyên từ đến 90 89 D2 Chỉ số phòng thủ Desperado, là số nguyên từ đến 88 56 Mã địa điểm thi đấu, là số nguyên từ đến 11 P Để thực thi ví dụ mẫu Visual Sutudio 2010, sinh viên nhấn tổ hợp phím Ctrl + F5 và quan sát kết quả màn hình Để thực thi ví dụ mẫu Cygwin, sinh viên thực hiện các công việc sau: Copy các file (main.cpp, cloud.cpp, cloud.h, 1_in.txt, 1_out.txt, 2_in.txt, 2_out.txt, 3_in.txt, 3_out.txt) vào thư mục Cygwin Ví dụ thư mục đó có đường dẫn là C:\Cygwin\home\VoDucVinh\ Mở Cygwin và thực hiện các lệnh cd cần thiết để chuyển đến thư mục VoDucVinh Ghõ lệnh: $> g++ -o main.exe main.cpp cloud.cpp cloud.h (Nhấn ENTER) $>./main.exe (Nhấn ENTER và quan sát kết quả) Lưu ý: Project mẫu có ví dụ Sinh viên muốn kiểm tra nhiều trường hợp khác cần TẠO THÊM các file txt project là được Ví dụ sinh viên muốn tạo thêm ví dụ mở notepad tạo file, ghõ nội dung đặt tên là 4_in.txt và 4_out.txt (file này chứa kết quả ví dụ 4) Sau đó, các bạn lưu lại thư mục với file txt sẵn có Đồng thời, file main.cpp, các bạn tìm đến dòng lệnh: const int NUMBER_OF_TESTCASE = 3; và sử thành const int NUMBER_OF_TESTCASE = 4; KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN 2.4 CƠ SỞ LẬP TRÌNH HK2-2014-2015 Nhiệm vụ của Sinh Viên Assignment – Phần Sinh viên tính giá trị dự đoán xác suất thắng trận Cloud Với là số thập phân có dạng Việc tính toán giá trị được thực hiện bằng cách VIẾT CODE TRONG FILE cloud.cpp Trong quá trình viết code file cloud.cpp, Sinh Viên KHÔNG IN BẤT KY thông tin màn hình, KHÔNG INCLUDE thư viện Tất cả những SV cần làm là tính ĐÚNG và dùng lệnh return trả về giá trị , HẾT Quá trình tính được mô tả sau: nếu khả tấn công Cloud sẽ tăng gấp đôi (không quá 100) số phòng thủ sẽ giảm nửa (phần nguyên phép chia không nhỏ 1) Nếu khả tấn công Desperado sẽ tăng thêm 20 lần (không quá 90) đồng thời số phòng thủ sẽ giảm 20 (không 1) Nếu các sổ Cloud và Desperado sẽ được giữ nguyên Đặc biệt nếu số tấn công Desperado sẽ tăng lên tối đa 90 và số phòng thủ sẽ giảm còn Giá trị được tính bằng công thức: Ví dụ 1: Với dữ liệu nhập là: 10 20 20 10 kết quả xuất màn hình là 0.50 Ngoài ra, các số tấn công, phòng thủ và địa điểm thi đấu đôi bên có thể làm xuất hiện các tình huống đặc biệt sau: a Khi , Desperado vượt trội so với Cloud cả về tấn công lẫn phòng thủ nên chiến thắng chắc chắn thuộc về Desperado, Tuy nhiên nếu sẽ được tính đã mô tả trường hợp bản Ví dụ 2: Với dữ liệu nhập là: 10 27 60 30 kết quả xuất màn hình là 0.00 Ví dụ 3: Với dữ liệu nhập là: KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH HK2-2014-2015 10 27 60 30 kết quả xuất màn hình là 0.70 b hoặc , Cloud là chiến binh thông minh nên cần thỏa mãn điều này chiến thắng chắc chắn thuộc về Cloud Ví dụ 4: Với dữ liệu nhập là: 50 61 15 kết quả xuất màn hình là c với A, B là chữ số chẵn, với C, D là chữ số lẻ Ví dụ 5: Với dữ liệu nhập là: 50 28 31 kết quả xuất màn hình là 0.50 d Nếu A1 là lập phương số nguyên dương và Tuy nhiên nếu , tính đã mô tả trường hợp bản Ví dụ 6: Với dữ liệu nhập là: 36 27 45 88 kết quả xuất màn hình là 0.95 Ví dụ 7: Với dữ liệu nhập là: 36 27 45 88 11 kết quả xuất màn hình là 0.10 e (Bonus) Nếu A1, D1, A2, D2 lập thành cấp số cộng (theo thứ tự bất kì), Desperado chính là Dark Maul, chiến binh Sith đến từ miền thiên hà xa xăm Khi đó giá trị được tính sau: KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH HK2-2014-2015 Ví dụ 7: Với dữ liệu nhập là: 12 18 15 21 11 kết quả xuất màn hình là 0.92 Lưu ý: các tình huống đặc biệt có độ ưu tiên từ a đến e trường hợp cả tình huống xảy Tức là tình huống a sẽ có độ ưu tiên CAO NHẤT, b có độ ưu tiên cao kế tiếp sau a Kết quả xuất màn hình sẽ dựa vào kết quả tình huống có độ ưu tiên cao Ví dụ 8: Với dữ liệu nhập là: 22 25 28 31 kết quả xuất màn hình là 0.41 (theo tình huống c dù dữ liệu nhập này thỏa cả điều kiện e) Ví dụ 9: Với dữ liệu nhập là: 30 27 80 70 kết quả xuất màn hình là 0.51 (theo tình huống a dù dữ liệu nhập này thỏa cả điều kiện d) 2.5 Cách kiểm thử chương trình Sinh viên sẽ được cung cấp Testcase mẫu Sakai trước deadline khoảng tuần để tự kiểm tra chương trình Bộ Testcase chấm bài sẽ hoàn toàn khác Testcase mẫu có tính chất tương tự Do đó, sinh viên nên tra chương trình chạy đúng tất cả testcase mẫu Lúc đó, khả đạt điểm cao là rất lớn 2.6 Deadline và cách nộp bài Sinh Viên đăng nhập vào hệ thống Sakai thông qua tài khoản đã được cấp phát Sinh Viên nộp nhất file TÊN LÀ cloud.cpp mục Assignment (Sinh Viên không nén file, không đổi tên file) Trước nộp bài, Sinh viên nên kiểm tra bài phải thực thi “ngon lành” KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH HK2-2014-2015 Cygwin Deadline: 23h50’ ngày 20.07.2015 Sakai đã được thiết lập để Sinh Viên nộp bài tối đa lần Bài nộp nhất sẽ được nhận để chấm Bài trước đó sẽ bị bỏ qua dù có làm tốt bài nộp sau PHẦN CÁCH TÍNH ĐIỂM MÔN HỌC Thang điểm môn học gồm các phần sau: Điểm thi giữa kỳ chiếm trọng số 20% Điểm này được tính bởi bài thi giữa kỳ Sinh Viên Điểm này tối đa là 10 điểm Điểm kiểm tra chuyên cần chiếm trọng số 10% Điểm này được tính bởi các bài thực hành hàng tuần Điểm này tối đa là 10 điểm Điểm thi cuối kỳ chiếm trọng số 70% Điểm này chính là điểm mà Sinh Viên quan sát Website Phòng Đào Tạo gồm hai phần: bài thi cuối kỳ và bài tập lớn Trong đó, điểm bài tập lớn được tính sau: Điểm thưởng là điểm dành tặng những Sinh Viên tích cực và tiêu cực khóa học Số điểm thưởng sẽ không cố định tùy từng trường hợp cụ thể Điểm thưởng cũng có thể là số âm Điểm này xảy các trường hợp sau: Sinh Viên tích cực thảo luận và giải đáp thắc mắc bạn bè Forum Sakai Số mục trả lời và giải đáp ít nhất là 20 Sinh Viên có tiến vượt bậc từng bài tập lớn Ví dụ Assignment Sinh Viên đúng 10% số Testcase Assignment Sinh Viên đúng 80% Sinh Viên tụt hậu đáng kể từng bài tập lớn Ví dụ Assignment Sinh Viên đúng 80% số Testcase Assignment Sinh Viên đúng 10% Điểm thưởng sẽ là số âm Sinh Viên làm bài cực kỳ tốt Forum hoàn toàn không có comment nào hỗ trợ bạn bè làm bài Điểm thưởng sẽ là số âm Sinh Viên tố giác các trường hợp đạo văn mà Giảng Viên chưa phát hiện … Giảng viên sẽ trực tiếp quan sát và tặng điểm thưởng đến Sinh Viên Lưu ý: điểm bài tập lớn có thể vượt quá thang điểm 10, chẳng hạn Sinh Viên làm bài KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG BÀI TẬP LỚN CƠ SỞ LẬP TRÌNH HK2-2014-2015 đạt điểm tích cực khóa học và được Giảng Viên thưởng điểm Điểm mang tổng kết sẽ là 16 điểm Tuy nhiên, điểm 70% phải lấy thang điểm 10 để phù hợp với qui định nhà trường Do đó, Sinh Viên, ngoài việc học tốt, còn được khuyến khích tạo nhiều giá trị để giúp đỡ cộng đồng mà gắn bó KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC TÔN ĐỨC THẮNG 10