1. Trang chủ
  2. » Công Nghệ Thông Tin

vi co1027 assignment1

16 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Kỹ thuật lập trình CO1027 Bài tập lớn 1 CUỘC KHÁNG CHIẾN CHỐNG QUÂN MÔNG NGUYÊN LẦN THỨ HAI TP HỒ CHÍ.

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Kỹ thuật lập trình - CO1027 Bài tập lớn CUỘC KHÁNG CHIẾN CHỐNG QUÂN MÔNG NGUYÊN - LẦN THỨ HAI TP HỒ CHÍ MINH, THÁNG 02/2021 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH ĐẶC TẢ BÀI TẬP LỚN Phiên 1.0.1 Chuẩn đầu Sau hoàn thành tập lớn này, sinh viên ôn lại sử dụng thành thục: • Các cấu trúc rẽ nhánh • Các cấu trúc lặp • Hàm lời gọi hàm • Xử lý chuỗi Dẫn nhập “Thiên hạ thua Mông Cổ cả, Nguyên binh khiếp Đại Việt này” (Văn thơ xưa) Sau 27 năm chiến thắng chống Mông Cổ lần thứ năm 1258, Đại Việt bước vào giai đoạn yên bình Quân dân yên ấm làm ăn phần quan trọng Mông Cổ tập trung vào chiến dứt điểm triều Nam Tống để độc chiếm toàn lãnh thổ Trung Hoa Không lâu sau kháng chiến thắng lợi, Hồng đế Trần Thái Tơng nhường ngơi cho Thái tử Hoảng, tức Hồng đế Trần Thánh Tơng Tranh thủ hịa bình q giá này, Đại Việt thời trị Thái thượng hồng Trần Thái Tơng Trần Thánh Tơng, triều đình tích cực tổ chức cho nhân dân đào nhiều kênh dẫn nước tiêu úng Công trị thủy thể sức mạnh nhân dân tinh thần đoàn kết dân qn Đại Việt Tại Đơng Á, vó ngựa Ngun Mơng giẫm nát đế chế văn minh giàu có bậc lúc nước Kim nước Tống, gây nên chết bi thảm Sau tiêu diệt nhà Nam Tống, thơn tính tồn Trung Quốc, Hốt Tất Liệt lên làm vua lập triều Nguyên (1271) Đây đế quốc lớn mạnh giới lúc Với lực mới, Hốt Tất Liệt tâm xâm lược Đại Việt, đất nước có vị trí đặc biệt quan trọng đường bành trướng xuống phía Nam nhà Nguyên Năm 1277, Thượng hồng Trần Thái Tơng Mùa đơng ngày 22 tháng Mười âm lịch năm sau (tức tháng 11 năm 1278), Trần Thánh Tông nhường cho trai Thái tử Trần Khâm - tức Hoàng đế Trần Nhân Tơng - lên làm Thái thượng hồng Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 1/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Năm 1281, vua Ngun địi vua Trần sang chầu Vua Trần cáo bệnh từ chối cử Trần Di Ái sang Vua Nguyên nhân hội lập Trần Di Ái làm An Nam quốc vương gửi thư cho vua Trần thông báo việc Trần Di Ái thay vua Trần Khoảng đầu tháng năm 1282, Sài Thung lệnh đem 1.000 quân người Hán quân đội Nguyên hộ tống Trần Di Ái Đại Việt làm vua Tuy nhiên, vua Trần Nhân Tơng cho người đón đánh khiến Trần Di Ái sợ trốn nước Nguyên, Sài Thung sang Sau vụ Trần Di Ái, quan hệ hai bên căng thẳng đến cuối năm 1282, vua Nguyên mặt cử ngun sối Toa Đơ từ Quảng Châu đánh Chiêm Thành, mặt khác sai Trấn Nam vương Thoát Hoan tập trung 50 vạn quân chuẩn bị "mượn đường đánh Chiêm" (trên thực tế tiến công Đại Việt) Hai vua Trần bắt tay vào việc chuẩn bị tổ chức kháng chiến Dữ liệu đầu vào Dữ liệu nhập chương trình chứa file mang tên input.txt Các liệu nhập phân biệt chữ hoa chữ thường File nhập chứa thông tin theo định dạng sau: NID NID dòng IDi N1 input1 input2 input3 input4 N5 input5 input6 N7 kVij input7 Trong đó: • NID số lượng qn nhà Trần nhiệm vụ Từng quân trần có chuỗi ký tự định danh, tương ứng với NID dòng Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 2/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • IDi chuỗi ký tự định danh quân thứ i quân đội nhà Trần Trong đó, có quân tướng có chuỗi ký tự dặt biệt: – Chuỗi có chứa từ VUA đầu định danh cho vua Trần Nhân Tơng Ví dụ: "VUA122a" "VUAaa12" đại diện cho nhà vua, "vua122a", "Vua122a", "aa12VUA" khơng phải – Chuỗi có chứa từ THD định danh cho tướng Trần Hưng Đạo Ví dụ: "aTHDbc", "123THDabc" đại diện cho tướng Trần Hưng Đạo, cịn "THDabc", "abcTHD", "athdbc" khơng phải • Ni số dịng tương ứng với input thứ i, input khơng có N có số dịng liệu nhập cố định • Các input nêu rõ nhiệm vụ Nhiệm vụ Sinh viên yêu cầu xây dựng chương trình giả tưởng ngôn ngữ C++ để mô lại trận đánh trên, thông qua nhiệm vụ mô tả bên Lưu ý, nhiệm vụ có nhiều hàm cần thực 4.1 Quân ta chuẩn bị chống giặc Về phía Đại Việt, vương tơn nhà Trần lệnh tuyển thêm quân vào lực lượng riêng Quân đội liên tục tập trận Cuối tháng 11 đầu tháng 12 năm 1282, sau nhận tin tình báo ý đồ nhà Nguyên, vua Trần triệu tập hội nghị quân Bình Than để "bàn kế đánh phòng" "chia quân giữ nơi hiểm yếu" Tất tướng lĩnh phạm tội, Trần Khánh Dư, tha tội để đến hội nghị bàn việc Đại Việt sử ký toàn thư chép việc Trần Quốc Toản nhỏ tuổi khơng dự Hội nghị Bình Than tức giận bóp nát cam Sau đó, đầu năm 1285, vua Trần lại mở Hội nghị Diên Hồng triệu bô lão đại diện nhân dân địa phương triều đình để thống tâm kháng chiến động viên toàn dân đánh giặc Đại Việt Sử ký Toàn thư thuật lại rằng, Thượng hồng hỏi có nên chống lại người Ngun hay khơng, bơ lão "cùng nói từ miệng: "Đánh!"" Khí "Sát Thát” náo nức tồn quân, toàn dân Trần Quốc Tuấn (Trần Hưng Đạo) cử làm Quốc công Tiết chế thống lĩnh quân đội Ông lời kêu gọi Hịch Tướng sĩ - thiên cổ hùng văn bất hủ có ý nghĩa lớn, khơi dậy tinh thần yêu nước, lòng tự hào ý thức Bài tập lớn môn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 3/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH trách nhiệm người chiến binh trước dân tộc Trần Quốc Tuấn chọn chiến lược: chuyển từ trực tiếp đối đầu với quân Nguyên sang lui binh, thực vườn không nhà trống để triệt nguồn cung ứng lương thảo quân Nguyên Cứ thế, quân Trần tránh đụng độ với địch nhiều tháng, chờ địch suy yếu thiếu lương suy sụp ý chí, lúc ơng tập trung qn phản cơng để giành thắng lợi định Các vương hầu hăng hái mộ quân, luyện tập sẵn sàng theo mệnh lệnh triều đình Các địa phương, dân binh tăng cường, luyện tập, rào làng chiến đấu Nhân dân phối hợp với quân đội chuẩn bị trận địa cất giấu lương thực để làm kế dã - vườn không nhà trống Nhiều duyệt binh diễn tập lớn tổ chức kinh thành nơi xung yếu Sinh viên yêu cầu viết hàm để mô tả lại q trình chuẩn bị cho qn lính sau: • Tên hàm: readyForBattle • Tham số đầu vào: – Mảng chiều IDi chuỗi ký tự định danh quân thứ i quân đội nhà Trần – Số nguyên NID số lượng phần tử mảng chiều IDi – Mảng chiều input1 kiểu string, với phần tử tương ứng với dòng "input1" từ liệu nhập – Số nguyên N1 số lượng phần tử mảng chiều input1 • Kết trả về: chuỗi ký tự theo yêu cầu Quân ta tiến hành xây dựng công cụ giải mã mật thư sau: • Bước 1: Giải mã chuỗi bit nhị phân sang bit số thập phân: Các phần tử mảng chiều input1 chuỗi bit cách khoảng trắng Với chuỗi bit, bit chuyển thành số tương ứng nguyên theo cách đổi từ hệ nhị phân sang hệ thập phân Ví dụ Dữ liệu nhập cho nhiệm vụ 10 1111 1010 Mỗi dòng phần tử mảng input1, giải mã thành: 11 01 1010 33 22 22 • Bước 2: Giải mã số thập phân sang ký tự: Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 4/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Số Các ký tự tương ứng E/F/G/H/I/J/K L/M/N/O/P/Q/R #/T/U/V/W/X/Y @/A/S/Z/B/C/D Mỗi số cột có ký tự tương ứng cột nêu rõ bảng trên, ký tự ngăn cách dấu “/” Một chuỗi số sau giải mã bước tiếp tục dùng để giải mã bước cách lấy ký tự tương ứng cột với số lần xuất ký tự Biết rằng, ký tự ’#’ ’@’ khơng đứng cạnh chuỗi Ngồi ra, ký tự đứng sau ’#’ ’@’ phải biến đổi đặc biệt Các phép biến đổi đặc biệt áp dụng cho ký tự khác ’#’ ’@’, chuỗi tồn tiếp tục hai ký tự đặc biệt phải thực biến đổi riêng cho ký tự sau – Đối với ký tự ’#’, ký tự thường sau phải thêm vào ký tự đuôi chuỗi, ký tự thêm ký tự bảng chữ tiếng Anh ký tự cuối chuỗi ban đầu (nếu ký tự cuối Z ký tự kế A) – Đối với ký tự ’@’, ký tự thường sau phải đảo ngược thứ tự Ví dụ: Chuỗi Giải mã Ghi E Một số nên lấy ký tự 00 F Hai số nên lấy ký tự thứ hai 0000000 K 00000000 E 333 33 SA 33 22 #ATU 33 22 #ATU Chuỗi bắt đầu @, đảo ngược thứ tự ký tự 22 @TL Mã gốc @LT 22 222 @TL@UL Chuỗi gốc @LT@LU Nếu số ký tự vượt quay lại ký tự đầu tiếp tục thực Khoảng trắng dùng để phân biệt chuỗi với nhau, S A khơng có khoảng trắng Chuỗi bắt đầu #, thêm vào ký tự U U ký tự kế sau T bảng chữ tiếng Anh Mã ban đầu #AT Lưu ý, việc giải mã áp dụng cho phần tử mảng (từng chuỗi ký tự mảng input1 giải mã riêng biệt nêu trên) Sau giải mã thành công chuỗi ký tự, chuỗi xuất ký tự ’#’ @ xóa chúng khỏi chuỗi Nếu Bài tập lớn môn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 5/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH danh sách định danh quân đội nhà Trần tồn vua Trần Nhân Tông, chuỗi ký tự biến đổi sau, ví dụ chuỗi giải "ABCDEFG": • Bước 1: tạo chuỗi mới, có ký tự bị đảo ngược so với vị trí ban đầu theo vị trí chẵn lẻ (đảo ngược ký tự vị trí chẵn, đảo ngược ký tự vị trí lẻ) Ví dụ: chuỗi "ABCDEFG" đảo ngược thành "GFEDCBA" (đảo ký tự vị trí lẻ "ACEG" ký tự vị trí chẵn "BDF") • Bước 2: Hợp chuỗi vừa tạo với chuỗi ban đầu theo quy tắc so sánh ký tự, ký tự lớn theo bảng mã ASCII giữ lại Ví dụ hợp chuỗi "ABCD" "DBDB" thành "DBDD" Ngoài ra, danh sách định danh quân đội có tồn tướng Trần Hưng Đạo, ơng muốn tăng tính bảo mật mật thư sau giải xong, chuỗi sau giải chuyển thành chuỗi cách bỏ ký tự vị trị chia hết cho (vị trí bắt đầu 0) Sau đó, xếp thứ tự ký tự chuỗi theo chiều tăng dần bảng mã ASCII Ví dụ, có chuỗi "afaoeq", bỏ ký tự vị trí chia hết cho cịn "faeq", xếp tăng dần thành "aefq" Sau giải mã xong hết chuỗi ký tự mảng input1 theo yêu cầu, hàm trả chuỗi (kiểu string) thông qua việc nối tất chuỗi riêng biệt giải mã lại, ngăn cách chúng khoảng trắng Ví dụ 1: Giả sử, sau giải mã tất ký tự mảng, input1 = ["ABC","DEF"] Thì chuỗi trả cho hàm "ABC DEF" 4.2 Quân Trần phòng ngự rút lui Đầu năm 1285, 60 vạn quân Nguyên trai Hốt Tất Liệt Trấn Nam vương Thoát Hoan làm tổng huy lúc tiến đánh nước ta Quân phòng thủ biên giới Nhà Trần bị đánh bại trận đánh ải Vĩnh Châu, Nội Bàng, Thiết Lược Chi Lăng Hưng Đạo vương lui giữ bến Vạn Kiếp Theo Đại Việt sử ký toàn thư, quân Trần tan vỡ; Trần Quốc Tuấn thoát nhờ có Yết Kiêu kiên giữ thuyền đợi chủ tướng Để vua, đội quân có mật thiết lập sau: Cho hai chuỗi A B có độ dài đoạn [1, 106 ], mật số lần xuất chuỗi B chuỗi A Sinh viên yêu cầu phải thực hàm để giúp nhà vua giải mã mật nói • Tên hàm: decode Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 6/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • Tham số đầu vào: – Chuỗi A chuỗi B với độ dài đoạn [1, 106 ] ký tự Hai chuỗi lấy từ hai dịng input2 đặc tả liệu nhập • Kết trả số nguyên số lần xuất chuỗi B chuỗi A Ví dụ 2: Cho chuỗi A = "helloCSE, this is CSE ASM", chuỗi B = "CSE" Khi decode(A,B) = Đến ngày 11 tháng năm 1285, Thốt Hoan sai Ơ Mã Nhi đem binh thuyền đánh phá Vạn Kiếp Quân Đại Việt chống cự liệt, sau rút lui để tránh địch mạnh, thực nghi binh khiến địch mệt mỏi phản kích Tồn quân Trần rút khỏi Vạn Kiếp, Phả Lại, Bình Than dàn trận bên bờ sông Hồng gần thành Thăng Long Quân Nguyên tiến theo đường Thăng Long Tại đây, hai vua cho tập trung thủy quân xây dựng chiến lũy bờ nam để cầm chân quân Nguyên, tạo thời cho việc sơ tán quân dân khỏi kinh thành theo kế vườn không nhà trống, đồng thời sử dụng chiến lược ’Tiêu thổ’, đốt làng đồng ruộng gần kinh thành Để dễ dàng tìm đường, quân ta phải giải mật thư đường Sinh viên yêu cầu viết hàm để mơ tả lại q trình chuẩn bị cho qn lính sau: • Tên hàm: findRoute • Tham số đầu vào: – Mảng chiều IDi chuỗi ký tự định danh quân thứ i quân đội nhà Trần – Số nguyên NID số lượng phần tử mảng chiều IDi – Chuỗi ký tự input3, tương ứng với dòng input3 đặc tả liệu nhập • Kết trả chuỗi ký tự theo yêu cầu Chuỗi ký tự input3 định nghĩa sau: input3 Chú thích - N mã kiện NBS - B số nguyên nằm đoạn [−10, 10] - S chuỗi chứa ký tự "U,D,R,L" lên trên, xuống dưới, sang phải sang trái Bài tập lớn môn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 7/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Giả sử khu vực cần phải qua mặt phẳng toạ độ chiều, vị trí bắt đầu xuất phát quân ta toạ độ (0, 0) Trả vị trí cuối quân ta sau di chuyển theo hướng dẫn chuỗi S, biết rằng, ký tự lên, xuống, trái, phải di chuyển đơn vị Tuy nhiên, chuỗi S cần phải thay đổi hai lần cho phù hợp hiển thị hướng dẫn Trước hết với số nguyên B: • Nếu B = 0: không cần thay đổi chuỗi S • Nếu B < 0: dịch (vịng) chuỗi S sang trái |B| ký tự • Nếu B > 0: dịch (vòng) chuỗi S sang phải B ký tự Sau đó, với ký tự chuỗi ta thực biến đổi |N − × i| lần, với i vị trí ký tự chuỗi, vị trí Một lần biến đổi ký tự, ta thay ký tự ký tự theo quy luật: U → − D→ − L→ − R→ − U→ − Ví dụ 3: Với N = 3, S = "UDL", Ta biến đổi ký tự U đầu |N − × i| = |3 − 0| = lần, ký tự D lần, Biến đổi ký tự U đầu lần thành R ( U → − D→ − L→ − R), ký tự D lần thành L Như vậy, chuỗi thành "RLR" Sau xử lý xong, trả chuỗi ký tự có định dạng "(x,y)" với x,y toạ độ ngun, khơng có dấu ngoặc kép Ngày 17 tháng 2, quân hai bên lại giao chiến lớn bờ sông Hồng Người Nguyên thắng thế, quân dân Đại Việt kịp thời di tản khỏi Thăng Long Hai vua dẫn đại quân triệt thoái theo đường sông Hồng hướng phủ Thiên Trường Trường Yên Thoát Hoan chiếm Thăng Long, chia quân làm đường thủy riết truy kích Trong truy kích, chúng liên tục gửi tình báo cho Thốt Hoan, tương tự, để đảm bảo tính bảo mật, thư tình báo mã hóa Sinh viên yêu cầu xây dựng hàm để giải mã • Tên hàm: decodeVfunction • Tham số đầu vào: – Hai chuỗi A B, lấy từ input4 đặc tả liệu nhập • Trả kết A*B theo yêu cầu Định dạng hai chuỗi A B sau: ta có ký hiệu số hàm V biến trả kết số tự nhiên Ta định nghĩa số A, B có dạng V(0) V(V(0)) V( V(0)) Ngoài ra, ta định nghĩa phép toán sau: Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 8/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • x+0=x • x*0=0 • x + V(y) = V(x+y) • x * V(y) = x*y +x Biết A,B có độ dài khơng q 10000 ký tự Kết trả chuỗi kí tự kết phép tốn A * B, phải có dạng 0, V(0) V( V(0)) Ví dụ 4: Với A=V(V(0)); B=0 A*B = Với A=V(V(0)); B=V(0) A*B = V(V(0))*0 + V(V(0)) = + V(V(0)) = V(0+V(0)) = V(V(0+0)) = V(V(0)) Tháng năm 1285, cánh quân Nguyên Toa Đô từ Chiêm Thành đánh vào mạn nam Đại Việt Quân Nguyên nhanh chóng lấy Nghệ An Thanh Hóa, đẩy đại quân hai vua Trần vào bị ép từ mặt Bắc-Nam Hưng Đạo vương đưa Thánh Tông, Nhân Tông chạy vùng bờ biển Quảng Ninh, Hải Phòng ngày Ngày tháng năm 1285 Thánh Tông vua lại vượt biển vào Thanh Hóa, khỏi bị đối phương kìm kẹp Toa Đơ đưa qn vào Thanh Hóa truy lùng vua Trần, khơng thể tìm Trong thời gian này, nhiều tôn thất Đại Việt Trần Ích Tắc, Trần Kiện, Trần Tú Viên, Trần Văn Lộng phản lại hai vua, đầu hàng người Nguyên Thoát Hoan chia qn đóng giữ vị trí quan trọng lập trạm liên lạc với Quân chủ lực phối hợp với dân binh tổ chức đánh du kích vùng địch chiếm tạo chuẩn bị phản công Quân Nguyên bị tiêu hao, mỏi mệt, bị triệt đường tiếp lương, lại gặp mùa viêm nhiệt đến, ốm đau dịch bệnh phát sinh, đánh, giữ khó Trong hàng ngũ quân Trần có vài tên phản tặc, phần đơng binh lính biết chúng, lại khó nói ra, nên quân ta sử dụng cách điểm thông qua bầu chọn Có tổng cộng 26 người bị nghi ngờ, đánh số từ "A-Z" Mỗi binh sĩ đội quân giao cho phiếu đề bầu chọn tên phản tặc mà họ nghi ngờ Lá phiếu chuỗi ký tự, ký tự tên người bị nghi ngờ thứ tự xuất thể khác thứ hạng bầu chọn người Trên phiếu, tên đạt số điểm tương ứng 6, người xếp sau đạt số điểm giảm dần, cuối điểm Giả sử bnh sĩ nộp phiếu bầu “BACDEF” có nghĩa B điểm, A điểm C điểm, tương tự F điểm Hãy tìm người bị nghi ngờ phản tặc nhiều (điểm cao, bị nghi ngờ) Nếu có từ người trở lên điểm, ưu tiên lấy theo bảng chữ Giả sử, A B hai người Bài tập lớn môn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 9/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH bị nghi ngờ nhiều nhất, có số điểm, lúc ta ưu tiên A theo thứ tự bảng chữ • Tên hàm: findBetrayals • Tham số đầu vào: – Mảng chiều gồm phần tử chuỗi ký tự, lấy từ dòng từ input5 liệu nhập – Số nguyên N5 số lượng phần tử mảng chiều input5 • Kết trả chuỗi gồm ký tự tương ứng tên phản tặc input5 Chú thích XXXXXX XXXXXX Mỗi dịng chứa chuỗi có ký tự tương ứng với phiếu bầu XXXXXX Ví dụ: input5 ABCDEF GHEABC HGCBAE 4.3 Chú thích A 11 điểm (6+3+2=11) B 10 điểm (5+2+3=10) C điểm (4+1+4=9) Quân Trần phản công Nắm bắt thời cơ, tháng 5/1285, Trần Quốc Tuấn tổ chức phản công Một loạt trận đánh lớn từ Trường Yên đến Thăng Long Đó trận A Lỗ (Nam Định), Tây Kết, Hàm Tử (bờ sông Hồng thuộc địa phận Hưng Yên), Chương Dương (Thường Tín, Hà Tây) phá vỡ tuyến phịng ngự dọc sơng Hồng đánh vào Thăng Long Thoát Hoan phải rút chạy Vạn Kiếp Tại Vạn Kiếp quân ta bố trí trận đánh lớn, tiêu diệt nhiều sinh lực địch Thoát Hoan đám bại quân chạy hướng Lạng Sơn Tại phục binh ta đổ bao vây đánh tiêu diệt Nhiều tướng lĩnh binh lính Nguyên tử trận Thoát Hoan phải chui vào ống đồng để tránh tên độc cho quân lính khiêng chạy chết đến bên biên giới • Tên hàm: attack • Tham số đầu vào: Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 10/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH – Mảng chiều gồm 10 phần tử chuỗi ký tự lấy từ 10 dòng input6 liệu nhập • Kết trả số nguyên vị trí hàng cần đánh (hàng đầu mảng có vị trí 0) Sau thám kế hoạch triển khai quân địch, tướng quân cần xác định thứ tự ưu tiên đánh Để quân ta có tinh thần từ sớm, tướng quân dự định đánh vào hàng quân yếu địch từ đánh lên Biết kế hoạch triển khai địch ma trận 10x10 binh sĩ dân thường Một hàng xem yếu có nhiều dân thường Trong hàng cịn có binh lính tinh nhuệ, hàng có binh lính cần tránh khơng giao chiến với hàng hàng có nhiều dân thường Hãy xác định thứ tự đánh tướng quân Lưu ý: Nếu có từ hàng yếu ngang trở lên, tướng quân chọn đánh hàng có số thứ tự cao Ví dụ Dữ liệu nhập cho nhiệm vụ 0010000000 1100000000 1011100000 0002000000 1000000000 1100000000 1100000000 1100000000 1100000000 1100000000 output Có hàng yếu 0, 3, có đến dân thường Hàng có qn lính nên khơng đánh được, cịn hàng 4, chọn hàng có số lớn Kết trả vễ số nguyên hàng mà quân ta đánh (hàng liệu nhập hàng số 0) Ngồi ra, để đạt chiến thắng, quân ta cần phải chờ đợi thời mùi, quân ta phải đợi quãng thời gian đánh trả quân địch Sinh viên yêu cầu thực hàm để tính số ngày chờ đợi quân ta: Bài tập lớn môn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 11/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH • Tên hàm: calculateNoOfWaitingDays • Tham số đầu vào lấy từ input7 từ liệu nhập: – Chuỗi input7Str bao gồm số nguyên cách khoảng trắng, đó: ∗ Số nguyên k số lượng ma trận (kích cỡ N7 × N7 ) A1 , A2 , , Ak ∗ Số nguyên V thoả ràng buộc ∗ Số nguyên i số dòng ∗ Số nguyên j số cột – input7 có k dịng, đại diện cho k ma trận, dịng có N7 × N7 phần tử; k dịng chứa tham số input7Matrix mảng chiều gồm phần tử chuỗi ký tự, ký tự cách khoảng trắng, đại diện cho mảng, lưu ký tự vào mảng, phải lưu theo dòng trước cột sau Ví dụ 5: Cho input7Matrix[0] = "1 4", N7 = 2, ta lưu theo dòng vào mảng (tạm gọi arr) trước, cột sau có nghĩa arr[0][0]=1, arr[0][1] = 2, arr[1][0] = 3, arr[1][1] =4 – N7 số nguyên thể kích thước ma trận • Điều kiện tham số đầu vào: – ≤ N7 ≤ 100 – ≤ i ≤ j ≤ N7 – k ≤ 500 – ≤ V ≤ 1018 • Kết trả số nguyên theo yêu cầu Phép nhân ma trận phép toán quan trọng đại số tuyến tính Cho k ma trận A1, A2, Ak có kích thước n x n Gọi B ma trận kết tích ma trận A1 , A2 , , Ak , tính R phần dư phép chia phần tử hàng i cột j ma trận B với V Kết hàm trả số nguyên R Quyển 209 Nguyên sử có nhận định: Người Giao chống cự quan quân Nguyên-Mông, nhiều lần bị bại tan, binh lực chuyển thành nhiều thêm Quan quân khốn khổ, thiếu thốn, chết bị thương nhiều Quân ngựa Mông Cổ không thi thố tài nên bỏ kinh thành họ, qua bờ sơng phía Bắc Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 12/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Ngày tháng 6, Thánh Tơng Nhân Tông thân chinh Trường Yên, đánh tan đơn vị quân Toa Đô Quân Nguyên chết hại "nhiều không kể xiết" Sau chiến thắng Trường Yên, ngày 24 tháng 6, hai vua công quân chủ lực Toa Đơ Tây Kết (Khối Châu) Qn hai vua thắng to, chém chết ngun sối Toa Đơ, bắt vạn quân Nguyên, tịch thu lượng lớn khí giới Tổng quản quân Nguyên Trương Hiển đầu hàng Đến nửa đêm, Ô Mã Nhi trốn qua cửa sơng Thanh Hóa, hai vua thúc qn truy kích khơng bắt được, Ơ Mã Nhi dùng thuyền vượt biển thân Cùng lúc đó, Hưng Đạo vương anh Hưng Ninh vương thực nhiều công lớn hướng bắc sông Hồng quét cánh quân Thoát Hoan khỏi Đại Việt Sau gần tháng chiến đấu, quân ta tiêu diệt quét đạo quân xâm lược lớn khỏi bờ cõi Cuộc kháng chiến chống Ngun-Mơng lần thứ hai thắng lợi hồn toàn Trần Quang Khải làm thơ mừng thắng trận: PHỊ GIÁ VỀ KINH (Tụng giá hồn kinh sư) Đoạt sáo Chương Dương độ Cầm Hồ Hàm Tử quan Thái bình tu trí lực Vạn cổ thử giang san 4.4 Hồi kết Như kháng chiến quân dân Đại Việt lãnh đạo hai vua Trần Thánh Tơng Nhân Tơng tồn thắng, thể "Hào khí Đơng A" Đại Việt thời Nhà Trần lần thứ hai đánh đuổi quân Mông Nguyên, lần với quy mô lớn nhiều hồn cảnh khó khăn nhiều Nhà Tống phương bắc mất, khơng cịn chắn, Đại Việt phải trực tiếp đối đầu với nhà Nguyên toàn tuyến biên giới phía bắc Diệt Nam Tống, sức mạnh nhà Nguyên tăng lên so với trước Nộp Sinh viên nộp tập tin: mongol.h site Kỹ thuật lập trình (CO1027)_HK202 hệ thống BKeL Thời hạn nộp công bố nơi nộp site nêu Đến thời hạn nộp bài, Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 13/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH đường liên kết tự động khố nên sinh viên khơng thể nộp chậm Để tránh rủi ro xảy vào thời điểm nộp bài, sinh viên PHẢI nộp trước thời hạn quy định Xử lý gian lận Bài tập lớn phải sinh viên TỰ LÀM Sinh viên bị coi gian lận nếu: • Có giống bất thường mã nguồn nộp Trong trường hợp này, TẤT CẢ nộp bị coi gian lận Do sinh viên phải bảo vệ mã nguồn tập lớn • Sinh viên khơng hiểu mã nguồn viết, trừ phần mã cung cấp sẵn chương trình khởi tạo Sinh viên tham khảo từ nguồn tài liệu nào, nhiên phải đảm bảo hiểu rõ ý nghĩa tất dịng lệnh mà viết Trong trường hợp không hiểu rõ mã nguồn nơi tham khảo, sinh viên đặc biệt cảnh báo KHÔNG ĐƯỢC sử dụng mã nguồn này; thay vào nên sử dụng học để viết chương trình • Nộp nhầm sinh viên khác tài khoản cá nhân Trong trường hợp bị kết luận gian lận, sinh viên bị điểm cho tồn mơn học (khơng tập lớn) KHƠNG CHẤP NHẬN BẤT KỲ GIẢI THÍCH NÀO VÀ KHƠNG CĨ BẤT KỲ NGOẠI LỆ NÀO! Sau tập lớn nộp, có số sinh viên gọi vấn ngẫu nhiên để chứng minh tập lớn vừa nộp làm Thay đổi so với phiên trước • Hàm readyForBattle: Thêm ví dụ cho phần giải mã chuỗi • Hàm calculateNoOfWaitingDays: Thêm ví dụ cho phần tham số input7Matrix • readyForBattle: Bổ sung đặc tả cho kiểu trả về, chuỗi mà hàm cần phải trả về, thêm ví dụ cho đặc tả Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 14/15 TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Tài liệu [1] Hà Thành “Thăng Long với kế sách "thanh dã" chống giặc ngoại xâm” (bằng tiếng Việt) Tạp chí Quốc phịng Tồn dân [2] Lê Mạnh Thát (1999) “Chương III: Vua Trần Nhân Tông Và Cuộc Chiến tranh Vệ Quốc Năm 1285.” Trần Nhân Tông: Con người tác phẩm (bằng tiếng Việt) Nhà xuất Thành phố Hồ Chí Minh [3] Hà Văn Tấn Phạm Thị Tâm (1972), Cuộc kháng chiến chống xâm lược Nguyên Mông kỷ XIII, Nhà xuất Quân đội Nhân dân, in lại năm 2003 [4] Video TĨM TẮT CHIẾN TRANH NGUN MƠNG - ĐẠI VIỆT LẦN THỨ (NĂM 1285) Tóm tắt bách sử Link phần Link phần ———————HẾT——————— Bài tập lớn mơn Kỹ thuật lập trình - HK năm học 2020 - 2021 Trang 15/15 ... khố nên sinh vi? ?n khơng thể nộp chậm Để tránh rủi ro xảy vào thời điểm nộp bài, sinh vi? ?n PHẢI nộp trước thời hạn quy định Xử lý gian lận Bài tập lớn phải sinh vi? ?n TỰ LÀM Sinh vi? ?n bị coi gian... TẤT CẢ nộp bị coi gian lận Do sinh vi? ?n phải bảo vệ mã nguồn tập lớn • Sinh vi? ?n khơng hiểu mã nguồn vi? ??t, trừ phần mã cung cấp sẵn chương trình khởi tạo Sinh vi? ?n tham khảo từ nguồn tài liệu nào,... lệnh mà vi? ??t Trong trường hợp không hiểu rõ mã nguồn nơi tham khảo, sinh vi? ?n đặc biệt cảnh báo KHÔNG ĐƯỢC sử dụng mã nguồn này; thay vào nên sử dụng học để vi? ??t chương trình • Nộp nhầm sinh vi? ?n

Ngày đăng: 25/10/2022, 21:10

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w