Bài tập lớn môn Nhập môn lập trình - Đề tài: Arceus và huyền thoại các Pokémon

Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
NHP MÔN LP TRÌNH  
BÀI TP LN  
ARCEUS VÀ HUYN THOI CÁC POKÉMON  
Version 1.0.  
I. GII THIU  
Sau khi tm mình trong ánh sáng mt tri, 1 qutrng khrung mình và ri sinh ra  
con pokémon đầu tiên: Arceus trong vng sáng chói lòa. Mt sinh vật như con kì lân trắng  
vi chiếc vòng sáng trên lưng. Với blông trắng như sao trời mái tóc dài vút bay, mỗi bước  
chân nhnhàng của nó được tô điểm thêm nhchiếc vòng vàng sáng chĩa 4 cạnh ra vi  
mt sc vàng rc r. Arceus - vua ca các loài pokémon.  
Theo truyn thuyết, Arceus đc xem là Pokémon đã sáng tạo ra thế gii Pokémon và  
mang li ssng cho chúng. Arceus mang trong mình 16 mnh ca ngun sng (côn trùng,  
bóng ti, rng, đ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ơ của mình ngài mơ thấy mt con Pokémon mèo màu hng nhỏ  
bé sgiúp mình sáng to ssng cho muôn loài. Từ đó, Pokémon của nhng giấc mơ được  
hình thành: Mew - vthn sáng to. Mew cha bgen gc để từ đó tạo ra nhng vthn  
khai sinh ra thế giới Pokémon khác, Mew được xem là vthy tca Pokémon.  
(Phóng tác tngun wikipedia).  
II. YÊU CU  
Trong bài tp ln này, sinh viên sẽ được cung cp mt file cha dliu nhp. Trong  
đó bao gồm thông tin về đoạn bgen gc của Mew để từ đó tạo ra các con Pokémon huyn  
thoi khác. Nhóm sinh viên sthc hin nhng yêu cu biến đổi gen được cho trong bài để  
to ra mt chui cha tên ca các con Pokémon huyn thoại được sinh ra. Chi tiết mô tdữ  
liu nhp, xut và các công vic sinh viên phải làm được nêu trong các mc la mã dưới đây.  
Page 1  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
III. DLIU NHP - DLIU XUT  
Dliu nhp của chương trình được cha trong file nhp mang tên input.txt. File  
này schứa thông tin như ví dsau:  
aoArticuna_ksZakrom_aeTornadas_cwHaAh_bbCalabi  
Như vy file nhp input.txt sbao gm mt dòng duy nht. Dòng này smô tvbgen  
gc ca Mew, tbgen gc này kết hp với các phương pháp biến đổi gen sto ra nhng  
con Pokémon huyn thoi mi. Bgen gc này là mt chui các ký tchcái, chui này sẽ  
có tối đa 1000 ký tự. Trong bgen gc sbao gm những đoạn gen. Chiu dài ca mt  
đoạn gen là tng số gen thông tin có trong đoạn gen.  
Các định nghĩa:  
TÊN  
Ý NGHĨA  
Là 1 ký tchcái la tinh trong s26 chcái  
la tinh từ a đến z. Chhoa phân bit vi chữ  
thường  
Gen  
Tp hp các Gen. Nhng gen này phải đứng  
kế nhau.  
Đoạn gen  
Hai ký tự đầu tiên trong đoạn gen. Hai ký tự  
này luôn luôn là 2 ký tự thường.  
Ký tth3 trở đi trong đoạn gen. Ký tthứ  
3 trong đoạn gen ca bgen gc luôn luôn  
là ký thoa.  
Gen mã hóa  
Gen thông tin  
Tng sgen thông tin của đoạn gen. Chiu  
dài đoạn gen ti thiu bng 3.  
Tp hợp các đoạn gen, mỗi đoạn gen ngăn  
cách nhau bi du gạch dưới “_”.  
Chiều dài đoạn gen  
Bgen gc  
Ví d1:  
input.txt  
aoArticuna_ksZakrom_aeTornadas_cwHaAh_bbCalabi  
Mô t:  
Bgen gc là: aoArticuna_ksZakrom_aeTornadas_cwHaAh_bbCalabi  
Bgen gc này bao gm 5 đoạn gen, chiu dài ca mỗi đoạn gen theo thtttrái sang  
phi là: 8; 6; 8; 4; 6.  
Dliu xut sgm có 2 dòng. Dòng thnht là mt chui chứa gen đã được biến  
đổi tbgen gc. Dòng th2 sđoạn mã gen tuyt chiêu ca con Pokémon huyn thoi  
được sinh ra (nếu có).  
Page 2  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
IV. CÁC QUY LUT BIẾN ĐỔI GEN  
Arceus sda trên bgen gc tPokémon Mew và biến đổi nó thành nhng gen  
mới, sau đó những gen mi này hình thành nên nhng qutrng và nthành nhng con  
Pokémon huyn thoi mi. Tuy nhiên không phi lúc nào quá trình biến đổi gen cũng thành  
công (nghĩa là không phải lúc nào gen mới cũng có thể to thành trứng để nthành  
Pokémon).  
Sau mi ln mt con Pokémon huyn thoi mới được sinh ra, Arceus stiếp tc thc hin  
giao nhim vxây dng thế gii cho con Pokémon mi này bng cách to cho nó mt  
quyền năng nào đó; quyền năng này được thhin bng nhng tuyt chiêu. Mt con  
Pokémon scó ít nht là mt tuyt chiêu.  
Các phương pháp biến đổi gen phi tuân theo các lut biến đi gen được cho trong bng 1:  
(Ưu tiên theo thứ tttrên xung)  
STT  
QUY LUT  
Quá trình biến đổi gen trên bgen gc được thc hin  
tun ttng ký tmt ttrái sang phi cho đến khi kết  
thúc bgen gc.  
1
Gen mã hóa trong mỗi đoạn gen sẽ là phương pháp biến  
đổi gen. Gen mã hóa là xy nghĩa là gen thông tin x được  
thay thế bi gen thông tin y trong tt cả các đoạn gen từ  
bgen gc.  
2
Bng 1: Các quy lut biến đổi gen  
Kết thúc quá trình biến đổi gen tbgen gc sto ra mt bgen mi. Bgen mi này sẽ  
hình thành được trng Pokémon nếu như trong tất cả các đoạn gen tbgen mi, có duy  
nht một đoạn gen có các gen thông tin trùng với đoạn gen ca Pokémon huyn thoi (chi  
tiết về các đoạn gen ca Pokémon huyn thoi, xem bng 2) hoặc trong trường hp có  
nhiều đoạn gen trùng vi gen ca Pokemon huyn thoại thì các đoạn gen này phi ging  
nhau hoặc các đoạn gen chỉ được trùng vi mt gen Pokemon huyn thoi duy nht thì  
trng Pokémon huyn thoại này được hình thành và nra mt con Pokémon huyn thoi.  
Ví d2:  
input.txt  
aoArtecuna_ksZakrom_oeTornadas_kwHaAh_bbColobi  
Mô t:  
Bgen gc là: aoArtecuna_ksZakrom_oeTornadas_kwHaAh_bbColobi  
Bgen gốc có 5 đoạn gen. Quá trình biến đổi gen bắt đầu từ đoạn gen đầu tiên:  
aoArtecuna.  
Đoạn gen này có gen mã hóa là “ao”, tức là trong cbgen gc, tt ccác gen thông tin  
“a” sẽ thay thế bằng gen thông tin “o”. Như vậy sau ln biến đổi đầu tiên, bgen mi sẽ  
như sau: aoArtecuno_ksZokrom_oeTornodos_kwHoAh_bbColobi  
Nhng ln biến đổi gen tiếp theo cũng như thế, và sau 5 ln biến đổi gen (tương ứng vi 5  
Page 3  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
gen mã hóa ở 5 đoạn gen) thì bgen mi sẽ như sau:  
aoArtecune_ksZesrem_oeTernedes_kwHeAh_bbCelebi  
Trong bgen mi không có đoạn gen nào chưa các gen thông tin trùng vi gen ca  
Pokémon huyn thoi nên vì thế bgen mi không to thành trng Pokémon.  
Ví d3:  
input.txt  
aoArtricuna_ksZakrom_oeTornadas_kwHaAh_bbSuicuno  
Mô t:  
Bgen gc là: aoArtricuna_ksZakrom_oeTornadas_kwHaAh_bbSuicuno  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
aoArtricune_ksZesrem_oeTernedes_kwHeAh_bbSuicune  
Trong bgen mới có đoạn gen th5 cha các gen thông tin: “Suicune” trùng với Pokémon  
huyn thoi mang stht16 trong bảng 2. Như vậy trng Pokémon được hình thành và  
nra Suicune.  
Ví d4:  
input.txt  
auArticuna_ksSaicane_oeTornadas_kwHaAh_bbSuicuno  
Mô t:  
Bgen gc là: auArticuna_ ksSaicane_oeTornadas_kwHaAh_bbSuicuno  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
auArticunu_ksSuicune_oeTernudus_kwHuAh_bbSuicune  
Trong bgen mới có đoạn gen th2 và th5 cha các gen thông tin: “Suicune” trùng với  
Pokémon huyn thoi mang stht16 trong bảng 2. Như vậy trng Pokémon được hình  
thành và nra Suicune.  
Nếu như trong bộ gen mi có từ 2 đoạn gen trlên mà có các gen thông tin trùng với đoạn  
gen ca thai Pokémon huyn thoi trlên thì bgen mi này sẽ không hình thành được  
trng Pokémon.  
Ví d5:  
input.txt  
uuArtichmk_huZakrom_juTornadjs_koHaAh_mnSuicume  
Mô t:  
Bgen gc là: uuArtichmk_huZakrom_ juTornadjs_koHaAh_mnSuicume  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
uuArticuno_huZaoron_juTornadus_koHaAu_mnSuicune  
Trong bgen mới có đoạn gen thnht, th3 và th5 cha các gen thông tin: Articuno “,  
Tornadus “ và “Suicune” trùng với Pokémon huyn thoi mang stht1; 19 và 16 trong  
bảng 2. Như vậy trng Pokémon không được hình thành.  
Page 4  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
Danh sách đoạn gen ca Pokémon huyn thoại được cho trong bng 2:  
STT ĐOẠN GEN POKÉMON HUYN THOI HÌNH MINH HA  
1
2
Articuno  
Cobalion  
Dialga  
3
4
Entei  
5
Giratina  
Groudon  
HoOh  
6
7
8
Keldeo  
Kyogre  
Landorus  
9
10  
Page 5  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
Lugia  
Moltres  
Palkia  
Raikou  
Rayquaza  
Suicune  
Terrakion  
Thundurus  
Tornadus  
Virizion  
Xerneas  
Page 6  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
22  
23  
Yveltal  
Zapdos  
Bng 2: Các đoạn gen Pokémon huyn thoi  
Sau khi trng Pokémon nở ra được con Pokémon huyn thoi, Arceus stiếp tc to ra  
tuyệt chiêu cho nó. Đoạn mã gen ca tuyt chiêu sẽ được sp xếp theo quy lut như sau:  
lấy đoạn gen ca Pokémon huyn thoi tạo thành đoạn mã gen đầu tiên, tiếp sau đó sẽ là  
các gen thông tin trong các đoạn gen tbgen mi ca con Pokémon huyn thoại đó (bỏ  
đi các đoạn gen tbgen mi mà chứa đoạn gen ca Pokémon huyn thoi), các gen  
thông tin này được sp xếp theo thtự đoạn gen nào có chiu dài ngắn hơn được sp xếp  
trước, nếu 2 đoạn gen có cùng chiu dài thì sp xếp gen thông tin của đoạn gen nào trước  
theo thtbng chcái (tính theo gen thông tin).  
Ví d6:  
input.txt  
output.txt  
aoArricuna_ksZakrom_oeTornadas_kwHaAh  
_bbSuicuno  
aoArricune_ksZesrem_oeTernedes_kwHeAh  
_bbSuicune  
SuicuneHeAhZewremArricuneTernedes  
Mô t:  
Bgen gc là: aoArricuna_ksZakrom_oeTornadas_kwHaAh_bbSuicuno  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
aoArricune_ksZesrem_oeTernedes_kwHeAh_bbSuicune  
Trng Pokémon được hình thành và nra Suicune.  
Đoạn mã gen tuyt chiêu của Suicune được tạo thành như sau:  
_ Lấy đoạn gen “Suicune” làm đoạn mã gen đầu tiên.  
_ Trong bgen mi của Suicune có 4 đoạn gen không chứa “Suicune”: aoArricune,  
ksZewrem, oeTernedes và kwHeAh. Chiu dài ca mỗi đoạn gen theo thtlà: 8; 6; 8; 4.  
Thtự các gen gen thông tin được sp xếp là: HeAh, Zewrem, Arricune, Ternedes.  
Như vậy, đoạn mã gen tuyt chiêu ca Suicune là: SuicuneHeAhZewremArricuneTernedes  
Output ca test case này là:  
aoArricune_ksZewrem_oeTernedes_kwHeAh_bbSuicune  
SuicuneHeAhZewremArricuneTernedes  
Page 7  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
Ví d7:  
input.txt  
output.txt  
auArricuna_ksSaicane_oeTornadas_kwHaAh auArricunu_ksSuicune_oeTernudus_kwHuAh  
_bbSuicuno  
_bbSuicune  
SuicuneHuAhArricunuTernudus  
Mô t:  
Bgen gc là: auArricuna_ksSaicane_oeTornadas_kwHaAh_bbSuicuno  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
auArricunu_ksSuicune_oeTernudus_kwHuAh_bbSuicune  
Trng Pokémon được hình thành và nra Suicune.  
Đoạn mã gen tuyt chiêu của Suicune được tạo thành như sau:  
_ Lấy đoạn gen “Suicune” làm đoạn mã gen đầu tiên.  
_ Trong bgen mi của Suicune có 3 đoạn gen không chứa “Suicune”: aoArricune,  
oeTernedes và kwHeAh. Chiu dài ca mỗi đoạn gen theo thtlà: 8; 8; 4. Thtcác gen  
gen thông tin được sp xếp là: HeAh, Arricune, Ternedes.  
Như vậy, đoạn mã gen tuyt chiêu ca Suicune là: SuicuneHeAhArricuneTernedes  
Output ca test case này là:  
auArricunu_ksSuicune_oeTernudus_kwHuAh_bbSuicune  
SuicuneHuAhArricunuTernudus  
Nếu như kết thúc quá trình biến đổi gen mà không to thành con Pokémon huyn thoi nào  
thì đoạn mã tuyt chiêu lúc by gisẽ là “NULL”.  
Ví d8:  
input.txt  
output.txt  
aoArtecuna_ksZakrom_oeTornadas_kwHaAh aoArtecune_ksZesrem_oeTernedes_kwHeAh  
_bbColobi  
_bbCelebi  
NULL  
Mô t:  
Bgen gc là: aoArtecuna_ksZakrom_oeTornadas_kwHaAh_bbColobi  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
aoArtecune_ksZesrem_oeTernedes_kwHeAh_bbCelebi  
Trong bgen mi không có đoạn gen nào chưa các gen thông tin trùng vi gen ca  
Pokémon huyn thoi nên vì thế bgen mi không to thành trng Pokémon. Đoạn mã  
tuyt chiêu là: NULL  
Page 8  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
Trường hợp đặc bit:  
Trong quá trình biến đổi gen, Arceus gặp khó khăn khi gặp mt gen mã hóa lạ đó là  
“zz”. Khi quá trình biến đổi gen gp phải gen mã hóa “zz”, quá trình biến đổi gen sbri  
lon. Việc này có nghĩa là, sau khi quá trình biến đổi gen thc hiện đến gen thông tin cui  
cùng ca bgen gc (hoc bgen mi), thì quá trình này li tiếp tục được thc hin tgen  
đầu tiên. Quá trình này lặp đi lặp lại cho đến khi bgen mi tạo thành không thay đổi so  
vi bgen liền trước đó thì dừng li.  
Ví d9:  
input.txt  
output.txt  
aoArtricuna_zzZakrom_oeTornadas_haHaAh_ aoArtricune_  
bbSuicuno  
zzZekrem_oeTernedes_haHeAe_bbSuicune  
SuicuneHeAeZekremTernedesArtricune  
Mô t:  
Bgen gc là: aoArtricuna_zzZakrom_oeTornadas_haHaAh_bbSuicuno  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
aoArtricune_zzZekrem_oeTernedes_haHeAa_bbSuicune  
Tuy nhiên trong đoạn gen th2 có chứa gen mã hóa “zz” nên quá trình này lại được lp li  
ln th2. Sau 5 ln tiếp theo bgen mi slà:  
aoArtricune_ zzZekrem_oeTernedes_haHeAe_bbSuicune  
Bgen mi ln th2 khác ln thnht, tiếp tc lp li ln th3. Sau 5 ln tiếp theo bộ  
gen mi slà:  
aoArtricune_ zzZekrem_oeTernedes_haHeAe_bbSuicune  
Kết thúc biến đổi gen ln th3 này, bgen mi ging vi bgen cũ liền trước đó (ở ln thứ  
2). Như vậy quá trình biến đổi gen dng li.  
Trng Pokémon được hình thành và nở ra Suicune. Đoạn mã tuyt chiêu slà:  
SuicuneHeAeZekremTernedesArtricune  
Trong trường hp quá trình này blặp đi lặp li vô tn, tc là cmi ln biến đổi gen bộ  
gen mới thay đổi liên tc không thể ổn định được, Arceus đành phải phá hy ln biến đổi  
gen này. Khi đó, bộ gen mi trong dliu xut sẽ là “NULL”.  
Ví d10:  
input.txt  
output.txt  
NULL  
aoArtricena_zzZakrom_eaTernadas_oeHaAh_bbSuicuno  
NULL  
Mô t:  
Bgen gc là: aoArtricena_zzZakrom_eaTernadas_oeHaAh_bbSuicuno  
Sau 5 ln biến đi gen thì bgen mi sẽ như sau:  
aoArtricane_zzZekrem_eaTarnedes_oeHeAh_bbSuicune  
Tuy nhiên trong đoạn gen th2 có chứa gen mã hóa “zz” nên quá trình này lại được lp li  
Page 9  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
ln th2. Sau 5 ln tiếp theo bgen mi slà:  
aoArtricena_zzZakram_eaTernadas_oeHaAh_bbSuicuna  
Bgen mi ln th2 khác ln thnht, tiếp tc lp li ln th3. Sau 5 ln tiếp theo bộ  
gen mi slà:  
aoArtricane_zzZekrem_eaTarnedes_oeHeAh_bbSuicune  
Bgen mi ln th3 khác ln th2, tiếp tc lp li ln th4. Sau 5 ln tiếp theo bgen  
mi slà:  
aoArtricena_zzZakram_eaTernadas_oeHaAh_bbSuicuna  
Như vậy, ta nhn thy qua trình biến đổi gen này sblp li vô tn không bao gidng,  
vì thế Arceus phi phá hy quá trình biến đổi gen này.  
Page 10  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
V. CÁCH DCH VÀ THỰC THI CHƯƠNG TRÌNH.  
Sinh viên download file assigment.zip ttrang Web ca môn hc. Khi gii nén file này, sẽ  
có được các file sau:  
input.txt  
pokemon.c  
assignment_1.0.pdf  
Mt file input ví dụ  
Chương trình chính  
Mô tbài tp ln  
File input.txt là mt file nhp mẫu như được mô tả ở mc III. File pokemon.c là tp tin cha  
code khi to và code do nhóm sinh viên viết. Lưu ý rng sinh viên không được phép  
thay đổi những đoạn đã được lưu ý trong file này. Ngoài ra, các hàm do sinh viên viết  
không được xut bt kdliu nào ra màn hình khi thc thi.  
Để dch và thc thi chương trình, sinh viên cha c2 files: pokemon.c, và input.txt trong  
cùng một thư mục cha project; sau đó chỉ cn dch và thc thi duy nht file pokemon.c.  
Lưu ý:  
1.  
2.  
Sinh viên không được thêm bt kỳ thư viện nào khác ngoài 3 thư viện được cho sn.  
Thi gian chy của chương trình phải đảm bo không quá 5s cho mt test case.  
VI. NP BÀI.  
Nhóm Sinh viên np 2 bài: file viết code (pokemon.c) và file báo cáo. Ni dung cthvề  
cách thc np bài, ni dung file báo cáo sẽ được thông báo trên lp.  
Thi hn np bài: Có 2 giai đoạn np bài  
Giai đoạn 1: np file viết code vi yêu cu thc hiện được ½ ni dung yêu cu (làm  
được nhng công vic thay thế gen - đến hết ví d5). Thi hạn cho giai đoạn 1: 23  
gi59 phút, ChNht, ngày 01 tháng 05 năm 2016.  
Giai đoạn 2: np file viết code hoàn chnh và file báo cáo. Thi hạn cho giai đoạn 2:  
đến trước thi cui k.  
Page 11  
Trường Đại hc Bách khoa - ĐHQG TP.HCM  
Khoa Khoa hc và Kthut Máy tính  
VII. XLÝ GIAN LN.  
Bài tp ln phải đưc nhóm sinh viên TLÀM. Nhóm sinh viên sbcoi là gian ln nếu:  
1.  
Có sging nhau bất thường gia mã ngun ca các bài np gia các nhóm. Trong  
trường hp này, TT Ccác bài nộp đều bcoi là gian ln. Do vy nhóm sinh viên  
phi bo vmã ngun bài tp ln ca mình.  
2.  
Nhóm sinh viên không hiu mã ngun do chính mình viết, trnhng phần mã được  
cung cp sẵn trong chương trình khi to. Sinh viên có ththam kho tbt kỳ  
ngun tài liu nào, tuy nhiên phải đảm bo rng mình hiểu rõ ý nghĩa của tt cả  
nhng dòng lnh mà mình viết. Trong trường hp không hiu rõ mã ngun của nơi  
mình tham kho, sinh viên được đặc bit cảnh báo là KHÔNG ĐƯỢC sdng mã  
nguồn này; thay vào đó nên sử dng những gì đã đưc học để viết chương trình.  
Trong trường hp bkết lun là gian ln, nhóm sinh viên (tt csinh viên trong nhóm) sbị  
điểm 0 cho toàn bmôn hc (không chbài tp ln). KHÔNG CHP NHN BT KGII  
THÍCH NÀO VÀ KHÔNG CÓ BT KNGOI LNÀO!  
Sau mi bài tp lớn được np, scó mt ssinh viên trong nhóm được gi phng vn ngu  
nhiên để chng minh rng bài tp ln vừa đưc np là do chính nhóm mình làm.  
--- HT ---  
Page 12  
pdf 12 trang yennguyen 15/04/2022 3700
Bạn đang xem tài liệu "Bài tập lớn môn Nhập môn lập trình - Đề tài: Arceus và huyền thoại các Pokémon", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_tap_lon_mon_nhap_mon_lap_trinh_de_tai_arceus_va_huyen_th.pdf