Bài tập lớn môn nhập môn lập trình arceus và huyền thoại các pokémon

12 4 0
Bài tập lớn môn nhập môn lập trình arceus và huyền thoại các pokémon

Đ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

Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính NHẬP MƠN LẬP TRÌNH BÀI TẬP LỚN ARCEUS VÀ HUYỀN THOẠI CÁC POKÉMON Version 1.0 I GIỚI THIỆU Sau tắm ánh sáng mặt trời, trứng khẽ rung sinh pokémon đầu tiên: Arceus vầng sáng chói Một sinh vật kì lân trắng với vịng sáng lưng Với lơng trắng trời mái tóc dài vút bay, bước chân nhẹ nhàng tơ điểm thêm nhờ vòng vàng sáng chĩa cạnh với sắc vàng rực rỡ Arceus - vua loài pokémon Theo truyền thuyết, Arceus đc xem Pokémon sáng tạo giới Pokémon mang lại sống cho chúng Arceus mang 16 mảnh nguồn sống (cơn trùng, bóng tối, rồng, điện, chiến đấu, bay, bóng ma, cỏ, đất, lửa, băng, độc tố, tâm linh, đá, thép, nước) Trong giấc mơ ngài mơ thấy Pokémon mèo màu hồng nhỏ bé giúp sáng tạo sống cho mn lồi Từ đó, Pokémon giấc mơ hình thành: Mew - vị thần sáng tạo Mew chứa gen gốc để từ tạo vị thần khai sinh giới Pokémon khác, Mew xem vị thủy tổ Pokémon (Phóng tác từ nguồn wikipedia) II YÊU CẦU Trong tập lớn này, sinh viên cung cấp file chứa liệu nhập Trong bao gồm thơng tin đoạn gen gốc Mew để từ tạo Pokémon huyền thoại khác Nhóm sinh viên thực yêu cầu biến đổi gen cho để tạo chuỗi chứa tên Pokémon huyền thoại sinh Chi tiết mô tả liệu nhập, xuất công việc sinh viên phải làm nêu mục la mã Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính III DỮ LIỆU NHẬP - DỮ LIỆU XUẤT Dữ liệu nhập chương trình chứa file nhập mang tên input.txt File chứa thơng tin ví dụ sau: aoArticuna_ksZakrom_aeTornadas_cwHaAh_bbCalabi Như file nhập input.txt bao gồm dịng Dịng mơ tả gen gốc Mew, từ gen gốc kết hợp với phương pháp biến đổi gen tạo Pokémon huyền thoại Bộ gen gốc chuỗi ký tự chữ cái, chuỗi có tối đa 1000 ký tự Trong gen gốc bao gồm đoạn gen Chiều dài đoạn gen tổng số gen thơng tin có đoạn gen Các định nghĩa: TÊN Gen Đoạn gen Gen mã hóa Gen thơng tin Chiều dài đoạn gen Bộ gen gốc Ý NGHĨA Là ký tự chữ la tinh số 26 chữ la tinh từ a đến z Chữ hoa phân biệt với chữ thường Tập hợp Gen Những gen phải đứng kế Hai ký tự đoạn gen Hai ký tự luôn ký tự thường Ký tự thứ trở đoạn gen Ký tự thứ đoạn gen gen gốc luôn ký tự hoa Tổng số gen thông tin đoạn gen Chiều dài đoạn gen tối thiểu Tập hợp đoạn gen, đoạn gen ngăn cách dấu gạch “_” Ví dụ 1: input.txt aoArticuna_ksZakrom_aeTornadas_cwHaAh_bbCalabi Mơ tả: Bộ gen gốc là: aoArticuna_ksZakrom_aeTornadas_cwHaAh_bbCalabi Bộ gen gốc bao gồm đoạn gen, chiều dài đoạn gen theo thứ tự từ trái sang phải là: 8; 6; 8; 4; Dữ liệu xuất gồm có dịng Dòng thứ chuỗi chứa gen biến đổi từ gen gốc Dòng thứ đoạn mã gen tuyệt chiêu Pokémon huyền thoại sinh (nếu có) Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính IV CÁC QUY LUẬT BIẾN ĐỔI GEN Arceus dựa gen gốc từ Pokémon Mew biến đổi thành gen mới, sau gen hình thành nên trứng nở thành Pokémon huyền thoại Tuy nhiên khơng phải lúc q trình biến đổi gen thành công (nghĩa lúc gen tạo thành trứng để nở thành Pokémon) Sau lần Pokémon huyền thoại sinh ra, Arceus tiếp tục thực giao nhiệm vụ xây dựng giới cho Pokémon cách tạo cho quyền đó; quyền thể tuyệt chiêu Một Pokémon có tuyệt chiêu Các phương pháp biến đổi gen phải tuân theo luật biến đổi gen cho bảng 1: (Ưu tiên theo thứ tự từ xuống) STT QUY LUẬT Quá trình biến đổi gen gen gốc thực ký tự từ trái sang phải kết thúc gen gốc Gen mã hóa đoạn gen phương pháp biến đổi gen Gen mã hóa xy nghĩa gen thơng tin x thay gen thông tin y tất đoạn gen từ gen gốc Bảng 1: Các quy luật biến đổi gen Kết thúc trình biến đổi gen từ gen gốc tạo gen Bộ gen hình thành trứng Pokémon tất đoạn gen từ gen mới, có đoạn gen có gen thơng tin trùng với đoạn gen Pokémon huyền thoại (chi tiết đoạn gen Pokémon huyền thoại, xem bảng 2) trường hợp có nhiều đoạn gen trùng với gen Pokemon huyền thoại đoạn gen phải giống đoạn gen trùng với gen Pokemon huyền thoại trứng Pokémon huyền thoại hình thành nở Pokémon huyền thoại Ví dụ 2: input.txt aoArtecuna_ksZakrom_oeTornadas_kwHaAh_bbColobi Mơ tả: Bộ gen gốc là: aoArtecuna_ksZakrom_oeTornadas_kwHaAh_bbColobi Bộ gen gốc có đoạn gen Quá trình biến đổi gen đoạn gen đầu tiên: aoArtecuna Đoạn gen có gen mã hóa “ao”, tức gen gốc, tất gen thông tin “a” thay gen thông tin “o” Như sau lần biến đổi đầu tiên, gen sau: aoArtecuno_ksZokrom_oeTornodos_kwHoAh_bbColobi Những lần biến đổi gen thế, sau lần biến đổi gen (tương ứng với Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính gen mã hóa đoạn gen) gen sau: aoArtecune_ksZesrem_oeTernedes_kwHeAh_bbCelebi Trong gen đoạn gen chưa gen thơng tin trùng với gen Pokémon huyền thoại nên gen khơng tạo thành trứng Pokémon Ví dụ 3: input.txt aoArtricuna_ksZakrom_oeTornadas_kwHaAh_bbSuicuno Mô tả: Bộ gen gốc là: aoArtricuna_ksZakrom_oeTornadas_kwHaAh_bbSuicuno Sau lần biến đổi gen gen sau: aoArtricune_ksZesrem_oeTernedes_kwHeAh_bbSuicune Trong gen có đoạn gen thứ chứa gen thông tin: “Suicune” trùng với Pokémon huyền thoại mang số thứ tự 16 bảng Như trứng Pokémon hình thành nở Suicune Ví dụ 4: input.txt auArticuna_ksSaicane_oeTornadas_kwHaAh_bbSuicuno Mơ tả: Bộ gen gốc là: auArticuna_ ksSaicane_oeTornadas_kwHaAh_bbSuicuno Sau lần biến đổi gen gen sau: auArticunu_ksSuicune_oeTernudus_kwHuAh_bbSuicune Trong gen có đoạn gen thứ thứ chứa gen thông tin: “Suicune” trùng với Pokémon huyền thoại mang số thứ tự 16 bảng Như trứng Pokémon hình thành nở Suicune Nếu gen có từ đoạn gen trở lên mà có gen thơng tin trùng với đoạn gen từ hai Pokémon huyền thoại trở lên gen khơng hình thành trứng Pokémon Ví dụ 5: input.txt uuArtichmk_huZakrom_juTornadjs_koHaAh_mnSuicume Mơ tả: Bộ gen gốc là: uuArtichmk_huZakrom_ juTornadjs_koHaAh_mnSuicume Sau lần biến đổi gen gen sau: uuArticuno_huZaoron_juTornadus_koHaAu_mnSuicune Trong gen có đoạn gen thứ nhất, thứ thứ chứa gen thông tin: “Articuno “, “Tornadus “ “Suicune” trùng với Pokémon huyền thoại mang số thứ tự 1; 19 16 bảng Như trứng Pokémon khơng hình thành Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính Danh sách đoạn gen Pokémon huyền thoại cho bảng 2: STT ĐOẠN GEN POKÉMON HUYỀN THOẠI Articuno Cobalion Dialga Entei Giratina Groudon HoOh Keldeo Kyogre 10 Landorus HÌNH MINH HỌA Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính 11 Lugia 12 Moltres 13 Palkia 14 Raikou 15 Rayquaza 16 Suicune 17 Terrakion 18 Thundurus 19 Tornadus 20 Virizion 21 Xerneas Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính 22 Yveltal 23 Zapdos Bảng 2: Các đoạn gen Pokémon huyền thoại Sau trứng Pokémon nở Pokémon huyền thoại, Arceus tiếp tục tạo tuyệt chiêu cho Đoạn mã gen tuyệt chiêu xếp theo quy luật sau: lấy đoạn gen Pokémon huyền thoại tạo thành đoạn mã gen đầu tiên, tiếp sau gen thơng tin đoạn gen từ gen Pokémon huyền thoại (bỏ đoạn gen từ gen mà chứa đoạn gen Pokémon huyền thoại), gen thông tin xếp theo thứ tự đoạn gen có chiều dài ngắn xếp trước, đoạn gen có chiều dài xếp gen thơng tin đoạn gen trước theo thứ tự bảng chữ (tính theo gen thơng tin) Ví dụ 6: input.txt aoArricuna_ksZakrom_oeTornadas_kwHaAh _bbSuicuno output.txt aoArricune_ksZesrem_oeTernedes_kwHeAh _bbSuicune SuicuneHeAhZewremArricuneTernedes Mô tả: Bộ gen gốc là: aoArricuna_ksZakrom_oeTornadas_kwHaAh_bbSuicuno Sau lần biến đổi gen gen sau: aoArricune_ksZesrem_oeTernedes_kwHeAh_bbSuicune Trứng Pokémon hình thành nở Suicune Đoạn mã gen tuyệt chiêu Suicune tạo thành sau: _ Lấy đoạn gen “Suicune” làm đoạn mã gen _ Trong gen Suicune có đoạn gen khơng chứa “Suicune”: aoArricune, ksZewrem, oeTernedes kwHeAh Chiều dài đoạn gen theo thứ tự là: 8; 6; 8; Thứ tự gen gen thông tin xếp là: HeAh, Zewrem, Arricune, Ternedes Như vậy, đoạn mã gen tuyệt chiêu Suicune là: SuicuneHeAhZewremArricuneTernedes Output test case là: aoArricune_ksZewrem_oeTernedes_kwHeAh_bbSuicune SuicuneHeAhZewremArricuneTernedes Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính Ví dụ 7: input.txt auArricuna_ksSaicane_oeTornadas_kwHaAh _bbSuicuno output.txt auArricunu_ksSuicune_oeTernudus_kwHuAh _bbSuicune SuicuneHuAhArricunuTernudus Mô tả: Bộ gen gốc là: auArricuna_ksSaicane_oeTornadas_kwHaAh_bbSuicuno Sau lần biến đổi gen gen sau: auArricunu_ksSuicune_oeTernudus_kwHuAh_bbSuicune Trứng Pokémon hình thành nở Suicune Đoạn mã gen tuyệt chiêu Suicune tạo thành sau: _ Lấy đoạn gen “Suicune” làm đoạn mã gen _ Trong gen Suicune có đoạn gen khơng chứa “Suicune”: aoArricune, oeTernedes kwHeAh Chiều dài đoạn gen theo thứ tự là: 8; 8; Thứ tự gen gen thông tin xếp là: HeAh, Arricune, Ternedes Như vậy, đoạn mã gen tuyệt chiêu Suicune là: SuicuneHeAhArricuneTernedes Output test case là: auArricunu_ksSuicune_oeTernudus_kwHuAh_bbSuicune SuicuneHuAhArricunuTernudus Nếu kết thúc q trình biến đổi gen mà khơng tạo thành Pokémon huyền thoại đoạn mã tuyệt chiêu lúc “NULL” Ví dụ 8: input.txt aoArtecuna_ksZakrom_oeTornadas_kwHaAh _bbColobi output.txt aoArtecune_ksZesrem_oeTernedes_kwHeAh _bbCelebi NULL Mô tả: Bộ gen gốc là: aoArtecuna_ksZakrom_oeTornadas_kwHaAh_bbColobi Sau lần biến đổi gen gen sau: aoArtecune_ksZesrem_oeTernedes_kwHeAh_bbCelebi Trong gen khơng có đoạn gen chưa gen thông tin trùng với gen Pokémon huyền thoại nên gen khơng tạo thành trứng Pokémon Đoạn mã tuyệt chiêu là: NULL Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính Trường hợp đặc biệt: Trong trình biến đổi gen, Arceus gặp khó khăn gặp gen mã hóa lạ “zz” Khi trình biến đổi gen gặp phải gen mã hóa “zz”, trình biến đổi gen bị rối loạn Việc có nghĩa là, sau q trình biến đổi gen thực đến gen thông tin cuối gen gốc (hoặc gen mới), trình lại tiếp tục thực từ gen Quá trình lặp lặp lại gen tạo thành không thay đổi so với gen liền trước dừng lại Ví dụ 9: input.txt aoArtricuna_zzZakrom_oeTornadas_haHaAh_ bbSuicuno output.txt aoArtricune_ zzZekrem_oeTernedes_haHeAe_bbSuicune SuicuneHeAeZekremTernedesArtricune Mô tả: Bộ gen gốc là: aoArtricuna_zzZakrom_oeTornadas_haHaAh_bbSuicuno Sau lần biến đổi gen gen sau: aoArtricune_zzZekrem_oeTernedes_haHeAa_bbSuicune Tuy nhiên đoạn gen thứ có chứa gen mã hóa “zz” nên q trình lại lặp lại lần thứ Sau lần gen là: aoArtricune_ zzZekrem_oeTernedes_haHeAe_bbSuicune Bộ gen lần thứ khác lần thứ nhất, tiếp tục lặp lại lần thứ Sau lần gen là: aoArtricune_ zzZekrem_oeTernedes_haHeAe_bbSuicune Kết thúc biến đổi gen lần thứ này, gen giống với gen cũ liền trước (ở lần thứ 2) Như trình biến đổi gen dừng lại Trứng Pokémon hình thành nở Suicune Đoạn mã tuyệt chiêu là: SuicuneHeAeZekremTernedesArtricune Trong trường hợp trình bị lặp lặp lại vô tận, tức lần biến đổi gen gen thay đổi liên tục ổn định được, Arceus đành phải phá hủy lần biến đổi gen Khi đó, gen liệu xuất “NULL” Ví dụ 10: input.txt aoArtricena_zzZakrom_eaTernadas_oeHaAh_bbSuicuno output.txt NULL NULL Mơ tả: Bộ gen gốc là: aoArtricena_zzZakrom_eaTernadas_oeHaAh_bbSuicuno Sau lần biến đổi gen gen sau: aoArtricane_zzZekrem_eaTarnedes_oeHeAh_bbSuicune Tuy nhiên đoạn gen thứ có chứa gen mã hóa “zz” nên q trình lại lặp lại Page Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính lần thứ Sau lần gen là: aoArtricena_zzZakram_eaTernadas_oeHaAh_bbSuicuna Bộ gen lần thứ khác lần thứ nhất, tiếp tục lặp lại lần thứ Sau lần gen là: aoArtricane_zzZekrem_eaTarnedes_oeHeAh_bbSuicune Bộ gen lần thứ khác lần thứ 2, tiếp tục lặp lại lần thứ Sau lần gen là: aoArtricena_zzZakram_eaTernadas_oeHaAh_bbSuicuna Như vậy, ta nhận thấy qua trình biến đổi gen bị lặp lại vô tận không dừng, Arceus phải phá hủy trình biến đổi gen Page 10 Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính V CÁCH DỊCH VÀ THỰC THI CHƯƠNG TRÌNH Sinh viên download file assigment.zip từ trang Web môn học Khi giải nén file này, có file sau: input.txt pokemon.c assignment_1.0.pdf Một file input ví dụ Chương trình Mơ tả tập lớn File input.txt file nhập mẫu mô tả mục III File pokemon.c tập tin chứa code khởi tạo code nhóm sinh viên viết Lưu ý sinh viên không phép thay đổi đoạn lưu ý file Ngoài ra, hàm sinh viên viết không xuất liệu hình thực thi Để dịch thực thi chương trình, sinh viên chứa files: pokemon.c, input.txt thư mục chứa project; sau cần dịch thực thi file pokemon.c Lưu ý: Sinh viên không thêm thư viện khác thư viện cho sẵn Thời gian chạy chương trình phải đảm bảo khơng q 5s cho test case VI NỘP BÀI Nhóm Sinh viên nộp bài: file viết code (pokemon.c) file báo cáo Nội dung cụ thể cách thức nộp bài, nội dung file báo cáo thông báo lớp Thời hạn nộp bài: Có giai đoạn nộp Giai đoạn 1: nộp file viết code với yêu cầu thực ½ nội dung u cầu (làm cơng việc thay gen - đến hết ví dụ 5) Thời hạn cho giai đoạn 1: 23 59 phút, Chủ Nhật, ngày 01 tháng 05 năm 2016 Giai đoạn 2: nộp file viết code hoàn chỉnh file báo cáo Thời hạn cho giai đoạn 2: đến trước thi cuối kỳ Page 11 Trường Đại học Bách khoa - ĐHQG TP.HCM Khoa Khoa học Kỹ thuật Máy tính VII XỬ LÝ GIAN LẬN Bài tập lớn phải nhóm sinh viên TỰ LÀM Nhóm sinh viên bị coi gian lận nếu: Có giống bất thường mã nguồn nộp nhóm Trong trường hợp này, TẤT CẢ nộp bị coi gian lận Do nhóm sinh viên phải bảo vệ mã nguồn tập lớn Nhóm 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 Trong trường hợp bị kết luận gian lận, nhóm sinh viên (tất sinh viên nhóm) 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 nhóm gọi vấn ngẫu nhiên để chứng minh tập lớn vừa nộp nhóm làm - HẾT - Page 12 ... 2: Các đoạn gen Pokémon huyền thoại Sau trứng Pokémon nở Pokémon huyền thoại, Arceus tiếp tục tạo tuyệt chiêu cho Đoạn mã gen tuyệt chiêu xếp theo quy luật sau: lấy đoạn gen Pokémon huyền thoại. .. thoại (chi tiết đoạn gen Pokémon huyền thoại, xem bảng 2) trường hợp có nhiều đoạn gen trùng với gen Pokemon huyền thoại đoạn gen phải giống đoạn gen trùng với gen Pokemon huyền thoại trứng Pokémon. .. trứng nở thành Pokémon huyền thoại Tuy nhiên lúc q trình biến đổi gen thành cơng (nghĩa khơng phải lúc gen tạo thành trứng để nở thành Pokémon) Sau lần Pokémon huyền thoại sinh ra, Arceus tiếp tục

Ngày đăng: 16/10/2021, 18:33

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan