judge.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫ﻣﺒﺎﻧ ﺑﺮﻧﺎﻣﻪﺳﺎزی‬
‫ﻧﯿﻢﺳﺎل دوم ‪٩١-٩٢‬‬
‫ﻣﺪرس‪ :‬اﻣﯿﺪ ﺟﻌﻔﺮیﻧﮋاد‬
‫داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﻣﺼﻄﻔ ﮐﺮﯾﻤ‬
‫راﻫﻨﻤﺎی ﺳﯿﺴﺘﻢ داوری آﻧﻼﯾﻦ‬
‫ﻣﺤﻤﺪﺟﻮاد ﻧﺎدری‬
‫‪ ،J.u.d.g.e‬ﺳﺎﻣﺎﻧﻪی داوری اﯾﻦ درس اﺳﺖ ﮐﻪ ﺑﻪ ﺻﻮرت آﻧﻼﯾﻦ ﺑﻪ ﺑﺮﻧﺎﻣﻪﻫﺎی ﺷﻤﺎ ﻧﻤﺮه ﻣ دﻫﺪ‪ .‬ﺑﺮای ﺳﺎﺧﺖ ‪J.u.d.g.e‬‬
‫از ﺳﯿﺴﺘﻢ ﻣﺪﯾﺮﯾﺖ ﻣﺤﺘﻮای ‪ Wordpress‬و ﺗﻌﺪادی اﺑﺰار دﯾ ﺮ اﺳﺘﻔﺎده ﮐﺮدهاﯾﻢ‪ .‬ﭘﺲ از ﻋﻀﻮﯾﺖ ﻣ ﺗﻮاﻧﯿﺪ ﺑﺎ ﻧﺎم ﮐﺎرﺑﺮی و‬
‫ﮐﻠﻤﻪ ﻋﺒﻮر ﺧﻮد از ﺻﻔﺤﻪی ‪ http://judge.alwaysdata.net/login‬وارد ﭘﻨﻞ ﺧﻮد ﺷﻮﯾﺪ‪.‬‬
‫ﺑﺮای ارﺳﺎل ﺑﺮﻧﺎﻣﻪﻫﺎ ﺗﻨﻬﺎ ﮐﺎﻓﯿﺴﺖ ﺑﺮﻧﺎﻣﻪی ﺧﻮاﺳﺘﻪﺷﺪه ﺑﺮای ﻫﺮ ﺳﺆال را ﺑﻨﻮﯾﺴﯿﺪ و ﻓﺎﯾﻞ آن ﺑﺮﻧﺎﻣﻪ را ﺑﺎ ﻓﺮﻣﺖ ‪ c‬در ﺑﺨﺶ‬
‫‪ submit‬ﺳﯿﺴﺘﻢ آﭘﻠﻮد ﮐﻨﯿﺪ‪ .‬ﺑﺮﻧﺎﻣﻪی ﺷﻤﺎ ﻣﻮرد آزﻣﺎﯾﺶﻫﺎی ﻣﺨﺘﻠﻒ )!( ﻗﺮار ﻣ ﮔﯿﺮد و ﻧﻤﺮهی آن ﻣﺸﺨﺺ ﻣ ﺷﻮد‪ .‬اﮔﺮ‬
‫ﺑﺮﻧﺎﻣﻪی ﺷﻤﺎ ﺑﻪ درﺳﺘ ﮐﺎﻣﭙﺎﯾﻞ ﻧﺸﻮد )ﻣﺜﻼ ﯾ اﮔﺮ ﯾ ﻧﻘﻄﻪ وﯾﺮﮔﻮل ﻓﺮاﻣﻮش ﮐﻨﯿﺪ(‪ ،‬ﺑﺎ ارور ‪ Compilation Error‬ﻣﻮاﺟﻪ‬
‫ﻣ ﺷﻮﯾﺪ‪ .‬ﻫﻤﭽﻨﯿﻦ اﮔﺮ در ﺑﺮﻧﺎﻣﻪی ﺧﻮد از )”‪ system(“pause‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ ﺑﺎ ﻫﻤﯿﻦ ﺧﻄﺎ ﻣﻮاﺟﻪ ﻣ ﺷﻮﯾﺪ‪ .‬ﭘﺲ اﮔﺮ در‬
‫اﻧﺘﻬﺎی ﮐﺪﺗﺎن )”‪ system(“pause‬ﻧﻮﺷﺘﻪاﯾﺪ‪ ،‬ﻗﺒﻞ از ارﺳﺎل آن را ﺣﺬف ﮐﻨﯿﺪ ﯾﺎ ﺑﺎ ‪ //‬ﮐﺎﻣﻨﺖ ﮐﻨﯿﺪ‪.‬‬
‫ﺑﺨﺶﻫﺎی ﻣﺨﺘﻠﻒ ‪: J.u.d.g.e‬‬
‫‪Dashboard‬‬
‫در اﯾﻨﺠﺎ‪ ،‬اﻃﻼﻋﯿﻪﻫﺎ ﯾﺎ ﻟﯿﻨ‬
‫ﺳﺆاﻻت ﯾﺎ … و ﮐﻼ ﻫﺮﭼﯿﺰی ﮐﻪ ﻣﺎ در اﯾﻦ ﺻﻔﺤﻪ ﻗﺮار ﺑﺪﻫﯿﻢ‪ ،‬ﺑﺮای ﺷﻤﺎ ﻧﻤﺎﯾﺶ داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪Profile‬‬
‫در اﯾﻦ ﺑﺨﺶ ﻣ ﺗﻮاﻧﯿﺪ اﻃﻼﻋﺎت ﺧﻮد را از ﺟﻤﻠﻪ ﻧﺎم‪ ،‬آدرس اﯾﻤﯿﻞ و ﮐﻠﻤﻪ ﻋﺒﻮر ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ و ﯾﺎ وﯾﺮاﯾﺶ ﮐﻨﯿﺪ‪ Username .‬ﺷﻤﺎ‪،‬‬
‫ﺷﻤﺎره داﻧﺸﺠﻮﯾ ﺷﻤﺎ ﺧﻮاﻫﺪ ﺑﻮد و ﻗﺎﺑﻞ ﺗﻐﯿﯿﺮ ﻧﯿﺴﺖ‪.‬‬
‫‪Problems‬‬
‫در اﯾﻦ ﺑﺨﺶ‪ ،‬ﻣﺘﻦ ﺗﻤﺮﯾﻦﻫﺎی ﺷﻤﺎ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ‪ .‬درواﻗ ﻣ ﺗﻮاﻧﯿﺪ ﻓﺎﯾﻞ ﺗﻤﺮﯾﻦﻫﺎ را از اﯾﻦ ﻗﺴﻤﺖ داﻧﻠﻮد ﮐﻨﯿﺪ‪.‬‬
‫‪Select HW‬‬
‫ﺑﺮای ارﺳﺎل ﭘﺎﺳ ﻫﺎی ﯾ‬
‫ﺗﻤﺮﯾﻦ ﺑﺎﯾﺪ آن ﺗﻤﺮﯾﻦ را از ﺑﯿﻦ ﺗﻤﺮﯾﻦﻫﺎی ﻣﻮﺟﻮد اﻧﺘﺨﺎب ﮐﻨﯿﺪ‪ .‬از اﯾﻦ ﻗﺴﻤﺖ ﻣ ﺗﻮاﻧﯿﺪ اﯾﻦ ﮐﺎر را اﻧﺠﺎم‬
‫دﻫﯿﺪ‪.‬‬
‫‪Submit‬‬
‫اﺻﻠ ﺗﺮﯾﻦ ﺑﺨﺶ ‪ J.u.d.g.e‬ﻫﻤﯿﻨﺠﺎﺳﺖ! از اﯾﻨﺠﺎ ﻣ ﺗﻮاﻧﯿﺪ ﺑﺮﻧﺎﻣﻪﻫﺎی ﺧﻮد را ﺑﻪ ‪ J.u.d.g.e‬ﺑﺪﻫﯿﺪ و ﻧﻤﺮهی ﺧﻮد را ﺑ ﯿﺮﯾﺪ! در‬
‫ﻗﺴﻤﺖ ﺑﺎﻻی اﯾﻦ ﺻﻔﺤﻪ‪ ،‬ﺷﻤﺎره ﺗﻤﺮﯾﻦ ﻓﻌﻠ ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪ .‬ﺑﺮای ارﺳﺎل ﭘﺎﺳ ﺧﻮد‪ ،‬ﺷﻤﺎره ﺳﺆال را اﻧﺘﺨﺎب ﮐﻨﯿﺪ و ﻓﺎﯾﻞ ﺧﻮد را‬
‫ﻧﯿﺰ اﻧﺘﺨﺎب ﮐﻨﯿﺪ و ‪ Submit‬را ﺑﺰﻧﯿﺪ‪ .‬ﮐﻤ ﺻﺒﺮ ﮐﻨﯿﺪ ﺗﺎ ‪ J.u.d.g.e‬ﮐﺪ ﺷﻤﺎ را داوری ﮐﻨﺪ و ﻧﺘﯿﺠﻪ داوری و ﻧﻤﺮه ﺷﻤﺎ را ﺑﻪ ﺷﻤﺎ‬
‫ﻧﺸﺎن دﻫﺪ‪ .‬ﻣﻤ ﻦ اﺳﺖ ﺑﺎ ﺧﻄﺎی ‪ Compilation Error‬ﻣﻮاﺟﻪ ﺷﻮﯾﺪ و اﯾﻦ ﯾﻌﻨ ﺟﺎﯾ از ﮐﺪ ﺷﻤﺎ اﯾﺮاد دارد و ﮐﺎﻣﭙﺎﯾﻞ ﻧﺸﺪه!‬
‫)ﺷﺎﯾﺪ ﻫﻢ ﺑﻪ ﺣﺮف ﻣﺎ ﮔﻮش ﻧ ﺮدﯾﺪ و از )”‪ system(“pause‬اﺳﺘﻔﺎده ﮐﺮدﯾﺪ!!( ﺧﻄﺎی ‪ Runtime Error‬ﯾﻌﻨ ﮐﺪ ﺷﻤﺎ ﻫﻨ ﺎم‬
‫‪١‬‬
‫اﺟﺮا دﭼﺎر ﻣﺸ ﻞ ﺷﺪه! ﻣﺜﻼ اﮔﺮ ﻋﺪد ﯾ‬
‫را ﺑﺮ ﺻﻔﺮ ﺗﻘﺴﯿﻢ ﮐﻨﯿﺪ‪ ،‬اﯾﻦ ﺧﻄﺎ ﺑﻪ ﺳﺮاﻏﺘﺎن ﻣ آﯾﺪ )ﭼﻮن ﺟﺎج ﻣﺎ ﻧﻤﯿﺪوﻧﻪ ﯾ‬
‫ﺗﻘﺴﯿﻢ ﺑﺮ‬
‫ﺻﻔﺮ ﭼﻨﺪ ﻣﯿﺸﻪ!( اﮔﺮ ﻫﻢ ﻫﯿ ﮐﺪام از اﯾﻦ ﺧﻄﺎﻫﺎ ﻧﺒﻮد‪ ،‬ﮐﺪ ﺷﻤﺎ ﻫﻢ ﮐﺎﻣﭙﺎﯾﻞ ﺷﺪه و ﻫﻢ درﺳﺖ اﺟﺮا ﺷﺪه اﺳﺖ‪ .‬ﭘﺲ ﺳﯿﺴﺘﻢ ﺑﺎ ﺗﻮﺟﻪ‬
‫ﺑﻪ اﯾﻨ ﻪ ﺧﺮوﺟ ﮐﺪ درﺳﺖ اﺳﺖ ﯾﺎ ﻧﻪ‪ ،‬ﻧﻤﺮهی ﺷﻤﺎ را ﻣ دﻫﺪ‪.‬‬
‫اﮔﺮ داوری ﺑﺎ ﺧﻄﺎ ﻣﻮاﺟﻪ ﻧﺸﻮد‪ ،‬ﺗﻌﺪادی ورودی ﺑﻪ ﺑﺮﻧﺎﻣﻪی ﺷﻤﺎ ﻣ دﻫﺪ و ﺧﺮوﺟ ﺑﺮﻧﺎﻣﻪی ﺷﻤﺎ را ﺑﺮرﺳ ﻣ ﮐﻨﺪ و در ﺻﻮرت درﺳﺘ‬
‫ﺧﺮوﺟ ‪ ACCEPT ،‬ﻣ ﺷﻮد‪ .‬در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ‪ WRONG‬ﻣ ﺷﻮد‪.‬‬
‫‪Results‬‬
‫در اﯾﻦ ﺑﺨﺶ‪ ،‬ﻧﺘﯿﺠﻪی داوری ﺳﻮالﻫﺎ را ﻣ ﺑﯿﻨﯿﺪ‪ .‬در واﻗ در اﯾﻦ ﺻﻔﺤﻪ ﺑﺮای ﻫﺮ ﺳﺆال ﻧﺘﯿﺠﻪی آﺧﺮﯾﻦ ﮐﺪ ارﺳﺎل ﺷﺪه )ﮐﻪ ﻣﻼک‬
‫ﻧﻤﺮه ﺧﻮاﻫﺪ ﺑﻮد( را ﻣ ﺑﯿﻨﯿﺪ‪ .‬در اﯾﻨﺠﺎ ﻣ ﺗﻮاﻧﯿﺪ ﺑﺮای ﻫﺮ ﺳﻮال‪ ،‬ﺑﺮﻧﺎﻣﻪی ﻣﺮﺑﻮط ﺑﻪ آﺧﺮﯾﻦ ارﺳﺎل ﺧﻮد را ﺑﺎ زدن دﮐﻤﻪی ‪Show Code‬‬
‫ﻣﻘﺎﺑﻞ آن ﺑﺒﯿﻨﯿﺪ‪.‬‬
‫‪Submissions‬‬
‫در اﯾﻦ ﺑﺨﺶ ﻧﺘﯿﺠﻪی ﻫﻤﻪی ‪ submit‬ﻫﺎی ﺧﻮد را ﻣ ﺗﻮاﻧﯿﺪ ﺑﺒﯿﻨﯿﺪ‪ .‬و ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ ‪ results‬ﻣ ﺗﻮاﻧﯿﺪ ﺑﺎ زدن دﮐﻤﻪی ‪Show Code‬‬
‫ﮐﺪﻫﺎﯾﺘﺎن را ﺑﺒﯿﻨﯿﺪ‪ .‬ﻧ ﺘﻪی ﻣﻬﻢ اﯾﻦ اﺳﺖ ﮐﻪ از ﺑﯿﻦ ﻫﻤﻪی ﺳﺎﺑﻤﯿﺖﻫﺎی ﻫﺮ ﺳﺆال‪ ،‬ﺗﻨﻬﺎ آﺧﺮﯾﻦ ﺳﺎﺑﻤﯿﺖ ﻣﻼک ﻧﻤﺮهی ﺷﻤﺎ ﺧﻮاﻫﺪ‬
‫ﺑﻮد‪.‬‬
‫ﺣﺮف آﺧﺮ‬
‫اﮔﺮ در ﻣﻮرد ﮐﺎر ﺑﺎ ‪ J.u.d.g.e‬ﺳﺆاﻟ دارﯾﺪ‪ ،‬در ﺳﺎﯾﺖ ﭘﯿﺎﺗﺰا ﺑﭙﺮﺳﯿﺪ‪.‬‬
‫اﮔﺮ ﻫﻢ از ﻣﺎ ﺳﺆاﻟ دارﯾﺪ‪ ،‬از ﻣﺎ ﺑﭙﺮﺳﯿﺪ‪:‬‬
‫ﻣﺤﻤﺪﺟﻮاد ﻧﺎدری ‪mjnaderi@gmail.com‬‬
‫ﻣﺼﻄﻔ ﮐﺮﯾﻤ ‪mostafa.karimi.71@gmail.com‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﯿﺪ‬
‫ﯾﺎﻋﻠ‬
‫‪٢‬‬