A2.pdf

‫ﺗﻤﺮﯾﻦ ﺷﻤﺎره ‪2‬‬
‫ﻣﻬﻠﺖ ﺗﺤﻮﯾﻞ‪ 27 :‬ﻓﺮوردﯾﻦ ‪1391‬‬
‫ﻗﺒﻞ ار اﻧﺠﺎم ﺗﻤﺮﯾﻦﻫﺎ ﻣﻮارد زﯾﺮ را ﺑﻪ دﻗﺖ ﻣﻄﺎﻟﻌﻪ ﺑﻔﺮﻣﺎﯾﯿﺪ‪:‬‬
‫‪ ‬در ﺧﻂ او‪‬ل ﻫﺮ ﯾﮏ از ﺑﺮﻧﺎﻣﻪﻫﺎ ﺷﻤﺎرهي داﻧﺸﺠﻮﯾﯽ و ﻧﺎم ﺧﻮد را ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﻨﻮﯾﺴﯿﺪ‪:‬‬
‫)‪//ID: Your Student ID (First Last Name‬‬
‫‪ ‬ﺑﻌﺪ از ﻧﻮﺷﺘﻦ ﺗﻤﺮﯾﻦﻫﺎ ﻓﺎﯾﻞ ﻣﺮﺑﻮﻃﻪ را در ﯾﮏ ﭘﻮﺷﻪ ﺑﺎ ﻧﺎم ‪ assignment#assNom-StudentID‬ﻗﺮار دﻫﯿﺪ و ﺳﭙﺲ اﯾﻦ ﭘﻮﺷﻪ‬
‫را ﻓﺸﺮده ﮐﻨﯿﺪ‪ .‬ﻓﺎﯾﻞ ﻓﺸﺮده را ﺑﻪ آدرس ‪ [email protected]‬ارﺳﺎل ﻧﻤﺎﯾﯿﺪ‪.‬‬
‫‪ ‬ﻋﻨﻮان ﻣﯿﻞ ﺑﻪ ﺻﻮرت ‪ assignment#assNom-StudentID‬ﺑﺎﺷﺪ‪.‬‬
‫‪ ‬اﺷﺘﺒﺎه در ﻧﺎم ﮔﺬاري ﻓﺎﯾﻞ ﻣﻮﺟﺐ ﻋﺪم ﺗﺼﺤﯿﺢ ﺗﻤﺮﯾﻦ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪ ‬ﻧﺤﻮهي ﺧﻮاﻧﺪن ورودي و ﻧﻮﺷﺘﻦ ﺧﺮوﺟﯽ ﺑﺎﯾﺪ رﻋﺎﯾﺖ ﺷﻮد‪.‬‬
‫‪ ‬ﮔﺬاﺷﺘﻦ ﮐﺎﻣﻨﺖﻫﺎ و اﺳﻢﮔﺬاري ﻣﻨﺎﺳﺐ ﺧﻮد ﻗﺴﻤﺘﯽ از ﻧﻤﺮه ﺳﻮال اﺳﺖ‪.‬‬
‫‪ ‬ﺑﻪ ازاي ﻫﺮ روز ﺗﺎﺧﯿﺮ در ارﺳﺎل ﺗﻤﺮﯾﻦﻫﺎ ‪ %20‬از ﻧﻤﺮه ﺗﻤﺮﯾﻦ ﮐﺎﺳﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪ ‬ﺳﻮاﻻت ﺧﻮد را ﺑﺎ اﻧﺘﺨﺎب ﻣﻮﺿﻮع ﻣﻨﺎﺳﺐ در ‪ [email protected]‬ﻣﻄﺮح ﻧﻤﺎﯾﯿﺪ‪.‬‬
‫‪.1‬ﻫﻨﺪﺳﻪ)اﺳﻢ ﻓﺎﯾﻞ ﻫﺎ در اﻧﺘﻬﺎي ﺳﻮال ﮔﻔﺘﻪ ﺷﺪه(‬
‫ﺑــﺮاي اﯾــﻦ ﺳــﻮال ﺑﺎﯾــﺪ ﮐــﻼس ﻫــﺎﯾﯽ ﺑــﺮاي ﺷــﺒﯿﻪ ﺳــﺎزي ﻣﻔــﺎﻫﯿﻢ اوﻟﯿــﻪ ﻫﻨﺪﺳــﯽ ﻣﺎﻧﻨــﺪ ﻧﻘﻄــﻪ ‪ ،‬ﺧــﻂ و ﭼﻨــﺪ ﺿــﻠﻌﯽ ﭘﯿــﺎده ﺳــﺎزي ﮐﻨﯿــﺪ ‪.‬‬
‫ﻧﺤــﻮه ي ﭘﯿــﺎده ﺳــﺎزي اﯾــﻦ ﮐــﻼس ﻫــﺎ ﺑــﺮ ﻋﻬــﺪه ي ﺧــﻮد ﺷﻤﺎﺳــﺖ ‪ ،‬اﻣــﺎ در ﭘﯿــﺎده ﺳــﺎزي ﮐــﻼس ﻣﺮﺑــﻮط ﺑــﻪ ﭼﻨــﺪ ﺿــﻠﻌﯽ ﺣﺘﻤــﺎ ﺑﺎﯾــﺪ ﯾﮑــﯽ از‬
‫ﮐﻼس ﻫﺎي ﭘﯿﺎده ﺳﺎزي ﺷﺪه ﺑﺮاي ﺧﻂ ﯾﺎ ﻧﻘﻄﻪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ ‪.‬‬
‫ﻧﻘﻄﻪ ‪:‬‬
‫ﮐﻼس ﭘﯿﺎده ﺳﺎزي ﺷﺪه ﺑﺮاي ﻧﻘﻄﻪ ﺑﺎﯾﺪ ﺷﺎﻣﻞ ﺗﻮاﺑﻊ زﯾﺮ ﺑﺎﺷﺪ ‪:‬‬
‫{ ‪class point‬‬
‫…‬
‫; ) ‪point (int x, int y‬‬
‫;)(‪int getX‬‬
‫;)(‪int getY‬‬
‫;)*‪int distance (point‬‬
‫;)*‪line* Line (point‬‬
‫;)*‪polygon* triangle(point*, point‬‬
‫…‬
‫;}‬
‫‪‬‬
‫) ‪ : point (int x, int y‬اﯾــﻦ ﺗــﺎﺑﻊ ‪ constructor‬اﯾــﻦ ﮐــﻼس اﺳــﺖ ‪ .‬دو ﻣﺨﺘﺼــﻪ ي ﻣﺮﺑــﻮط ﺷــﯽ را ﮔﺮﻓﺘــﻪ و ﺷــﯽ ﻣــﯽ‬
‫ﺳﺎزد‪.‬‬
‫‪‬‬
‫)(‪ : int getX‬اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺪار ﻣﺮﺑﻮط ﺑﻪ ﻣﺨﺘﺼﻪ ي ‪ x‬را ﺑﺮ ﻣﯿﮕﺮداﻧﺪ ‪.‬‬
‫‪‬‬
‫)(‪ : int getY‬اﯾﻦ ﺗﺎﺑﻊ ﻣﻘﺪار ﻣﺮﺑﻮط ﺑﻪ ﻣﺨﺘﺼﻪ ي ‪ y‬را ﺑﺮ ﻣﯿﮕﺮداﻧﺪ‪.‬‬
‫‪‬‬
‫)*‪distance(point‬‬
‫‪ : int‬اﯾـــﻦ ﺗـــﺎﺑﻊ ﻓﺎﺻـــﻠﻪ ي ﺑـــﯿﻦ اﯾـــﻦ ﻧﻔﻄـــﻪ و ﻧﻘﻄـــﻪ ي ﭘـــﺎس داده ﺷـــﺪه را ﻣﺤﺎﺳـــﺒﻪ ﮐـــﺮده و ﺑـــﺎز‬
‫ﻣﯿﮕﺮداﻧﺪ ‪.‬‬
‫‪‬‬
‫)*‪ : line* Line(point‬اﯾـــﻦ ﺗـــﺎﺑﻊ ﺧـــﻂ اﯾﺠـــﺎد ﺷـــﺪه ﺗﻮﺳـــﻂ اﯾـــﻦ ﻧﻘﻄـــﻪ و ﻧﻘﻄـــﻪ ي ﭘـــﺎس داده ﺷـــﺪه را ﺳـــﺎﺧﺘﻪ و ﯾـــﮏ اﺷـــﺎره‬
‫ﮔﺮ ﺑﻪ ﺷﯽ ﺳﺎﺧﺘﻪ ﺷﺪه ﺑﺮ ﻣﯿﮕﺮداﻧﺪ‪.‬‬
‫‪‬‬
‫)*‪point‬‬
‫‪,‬‬
‫*‪: Polygon* triangle(point‬اﯾـــﻦ ﺗـــﺎﺑﻊ ﻣﺜﻠـــﺚ اﯾﺠـــﺎد ﺷـــﺪه ﺗﻮﺳـــﻂ اﯾـــﻦ ﻧﻘﻄـــﻪ و دو ﻧﻘﻄـــﻪ ي ﭘـــﺎس داده‬
‫ﺷﺪه را ﻣﯿﺴﺎزد و ﯾﮏ اﺷﺎره ﮔﺮ ﺑﻪ ﺷﯽ ﺳﺎﺧﺘﻪ ﺷﺪه ﺑﺮ ﻣﯿﮕﺮداﻧﺪ‪.‬‬
‫ﺧﻂ‪:‬‬
‫ﮐﻼس ﭘﯿﺎده ﺳﺎزي ﺷﺪه ﺑﺮاي ﺧﻂ ﺑﺎﯾﺪ ﺷﺎﻣﻞ ﺗﻮاﺑﻊ زﯾﺮ ﺑﺎﺷﺪ‪.‬‬
‫{ ‪class line‬‬
‫‪...‬‬
‫;)*‪line(point*,point‬‬
‫;)*‪bool isParallel(line‬‬
‫;)*‪bool isPrependicular(line‬‬
‫;)*‪point* intersection(line‬‬
‫;)*‪line* parallel(point‬‬
‫;)*‪polygon* triangle(line*,line‬‬
‫‪...‬‬
‫;}‬
‫‪‬‬
‫)*‪ : line (point* , point‬اﯾــﻦ ﺗــﺎﺑﻊ ‪ constructor‬ﻣﺮﺑــﻮط ﺑــﻪ اﯾــﻦ ﮐــﻼس اﺳــﺖ ‪ .‬دو ﻧﻘﻄــﻪ ﮔﺮﻓﺘــﻪ و ﺑــﺎ ﺗﻮﺟــﻪ ﺑــﻪ آن ﻫــﺎ‬
‫ﺷﯽ ﺧﻂ را ﻣﯽ ﺳﺎزد‪.‬‬
‫‪‬‬
‫)*‪ : bool isParallel(line‬اﯾﻦ ﺗﺎﺑﻊ وﺿﻌﯿﺖ ﺗﻮازي اﯾﻦ ﺧﻂ ﺑﺎ ﺧﻂ داده ﺷﺪه را ﺑﺎز ﻣﯿﮕﺮداﻧﺪ ‪.‬‬
‫‪‬‬
‫)*‪ : bool isPrependicular(line‬اﯾﻦ ﺗﺎﺑﻊ وﺿﻌﯿﺖ ﺗﻌﺎﻣﺪ اﯾﻦ ﺧﻂ ﺑﺎ ﺧﻂ داده ﺷﺪه را ﺑﺎز ﻣﯿﮕﺮداﻧﺪ ‪.‬‬
‫‪‬‬
‫)*‪intersection(line‬‬
‫*‪ : point‬اﯾــــﻦ ﺧــــﻂ ﻧﻘﻄــــﻪ ي ﺑﺮﺧــــﻮرد اﯾــــﻦ ﺧــــﻂ ﺑــــﺎ ﺧــــﻂ داده ﺷــــﺪه را ﻣﺤﺎﺳــــﺒﻪ ﻣﯿﮑﻨــــﺪ و‬
‫ﺑﺮﻣﯿﮕﺮداﻧﺪ ‪ ).‬ﻓﺮض ﮐﻨﯿﺪ ﻣﺨﺘﺼﺎت ﻧﻘﻄﻪ ي ﺑﺮ ﺧﻮرد ﺣﺘﻤﺎ ﺻﺤﯿﺢ اﺳﺖ ‪( .‬‬
‫‪‬‬
‫‪‬‬
‫)*‪ : line* parallel(point‬اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ ﺧﻂ ﻣﻮازي ﮔﺬرﻧﺪه از ﻧﻘﻄﻪ ي داده ﺷﺪه ‪ ،‬ﺑﺎ اﯾﻦ ﺧﻂ ﻣﯿﺴﺎزد و ﺑﺮﻣﯿﮕﺮداﻧﺪ‪.‬‬
‫)*‪triangle(line*,line‬‬
‫*‪ : polygon‬اﯾـــﻦ ﺗـــﺎﺑﻊ ﻣﺜﻠـــﺚ ﺳـــﺎﺧﺘﻪ ﺷـــﺪه از اﯾـــﻦ ﺧـــﻂ و دو ﺧـــﻂ داده ﺷـــﺪه را ﺳـــﺎﺧﺘﻪ و ﺑـــﺎز‬
‫ﻣﯿﮕﺮداﻧﺪ‪ ) .‬ﻓﺮض ﮐﻨﯿﺪ ﻫﺮ ‪ 3‬ﻧﻘﻄﻪ ي ﺑﺮﺧﻮرد ﻣﺨﺘﺼﺎت ﺻﺤﯿﺢ دارﻧﺪ‪( .‬‬
‫ﭼﻨﺪ ﺿﻠﻌﯽ ‪:‬‬
‫ﮐﻼس ﭘﯿﺎده ﺳﺎزي ﺷﺪه ﺑﺮاي ﭼﻨﺪ ﺿﻠﻌﯽ ﻫﺎ ﺑﺎﯾﺪ ﺷﺎﻣﻞ ﻣﻮارد زﯾﺮ ﺑﺎﺷﺪ ‪.‬‬
‫{ ‪class polygon‬‬
‫…‬
‫;)‪polygon(point** arr,int size‬‬
‫;)‪polygon(line** arr,int size‬‬
‫;)(‪bool isTriangle‬‬
‫;)(‪bool isSquare‬‬
‫‪...‬‬
‫;}‬
‫‪‬‬
‫)‪ : polygon (point** arr , int size‬اﯾـــﻦ ﺗـــﺎﺑﻊ ﯾﮑـــﯽ از ‪ constructor‬ﻫـــﺎي اﯾـــﻦ ﮐـــﻼس اﺳـــﺖ و در آن ﺑﺎﯾـــﺪ ﺷـــﯽ‬
‫ﻣﺮﺑــﻮط ﺑــﻪ ﭼﻨــﺪ ﺿــﻠﻌﯽ ﺑــﺮ اﺳــﺎس ﻧﻘــﺎط داده ﺷــﺪه ﺳــﺎﺧﺘﻪ ﺷــﻮد ‪ ) .‬ﻧﻘــﺎط‪-‬راس ﻫــﺎي ﭼﻨــﺪ ﺿــﻠﻌﯽ‪ -‬ﺑــﻪ ﺗﺮﺗﯿــﺐ در آراﯾــﻪ ﻗــﺮار‬
‫ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ(‬
‫‪‬‬
‫)‪size‬‬
‫‪,int‬‬
‫‪arr‬‬
‫**‪(line‬‬
‫‪ : polygon‬اﯾـــﻦ ﺗـــﺎﺑﻊ ﯾﮑـــﯽ از ‪ constructor‬ﻫـــﺎي اﯾـــﻦ ﮐـــﻼس اﺳـــﺖ و در آن ﺑﺎﯾـــﺪ ﺷـــﯽ‬
‫ﻣﺮﺑــﻮط ﺑــﻪ ﭼﻨــﺪ ﺿــﻠﻌﯽ ﺑــﺮ اﺳــﺎس ﺧﻄــﻮط داده ﺷــﺪه ﺳــﺎﺧﺘﻪ ﺷــﻮد ‪ ) .‬ﺧﻄــﻮط –ﺿــﻠﻊ ﻫــﺎي ﭼﻨــﺪ ﺿــﻠﻌﯽ‪ -‬ﺑــﻪ ﺗﺮﺗﯿــﺐ در آراﯾــﻪ‬
‫ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ(‬
‫‪‬‬
‫)(‪ : bool isTriangle‬در ﺻﻮرت ﻣﺜﻠﺚ ﺑﻮدن اﯾﻦ ﭼﻨﺪ ﺿﻠﻌﯽ ‪ true‬و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ‪ false‬ﺑﺎز ﻣﯽ ﮔﺮداﻧﺪ ‪.‬‬
‫‪‬‬
‫)(‪ : bool isSquare‬در ﺻﻮرت ﻣﺮﺑﻊ ﺑﻮدن اﯾﻦ ﭼﻨﺪ ﺿﻠﻌﯽ ‪ true‬و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ‪ false‬ﺑﺎز ﻣﯽ ﮔﺮداﻧﺪ ‪.‬‬
‫ﺗﻮﺟﻪ ﮐﻨﯿﺪ ‪:‬‬
‫‪ .1‬ﻣﺨﺘﺼــﺎت از ﻧــﻮع‬
‫‪ int‬اﺳــﺖ‪ .‬در ﻧﺘﯿﺠــﻪ ﺗﺴــﺖ ﻫــﺎي داده ﺷــﺪه ﻃــﻮري اﻧﺘﺨــﺎب ﻣﯿﺸــﻮﻧﺪ ﮐــﻪ ﻧﻘــﺎط ﺑﺮﺧــﻮرد و ﻓﺎﺻــﻠﻪ ي ﻧﻘــﺎط ﻫــﻢ‬
‫ﯾﮏ ﻋﺪد ﺻﺤﯿﺢ ﺷﻮد ‪.‬‬
‫‪ .2‬ﺗﻌﺮﯾﻒ ﺗﻮاﺑﻊ ﺣﺘﻤﺎ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت ﺧﻮاﺳﺘﻪ ﺷﺪه ﺑﺎﺷﺪ‪.‬‬
‫‪ .3‬ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﺑﺎﯾﺪ در ﭘﻮﺷﻪ ي ﻣﺮﺑﻮط ﺑﻪ اﯾﻦ ﺳﻮال ﻗﺮار ﮔﯿﺮﻧﺪ ‪:‬‬
‫‪point.h (a‬‬
‫‪line.h (b‬‬
‫‪polygon.h (c‬‬
‫‪point.cpp (d‬‬
‫‪line.cpp (e‬‬
‫‪polygon.cpp (f‬‬
‫‪ .4‬اﯾﻦ ﺗﻤﺮﯾﻦ ﺗﺎﺑﻊ ‪ main‬ﻧﺪارد‪.‬‬
‫‪ .5‬ﺑﺎﯾﺪ ﺗﺎ ﺟﺎﯾﯽ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﺑﻪ ﻣﺤﺘﻮﯾﺎت داﺧﻞ ﮐﻼس ﻫﺎ ﺑﻪ ﺻﻮرت ﻋﻤﻮﻣﯽ دﺳﺘﺮﺳﯽ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﯿﻢ ‪.‬‬
‫‪.2‬اﻋﺪاد ﺑﺰرگ )‪(BigNumber.h/BigNumber.cpp‬‬
‫ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﯽ داﻧﯿﺪ ﺑﺎ ﻧﻮع داده ﻫﺎ در ‪ C++‬ﺑﺎزه ﮐﻮﭼﮑﯽ از اﻋﺪاد را ﻣﯽ ﺗﻮان ﭘﻮﺷﺶ داد‪ .‬ﺣﺎل ﺑﺮاي ﭘﻮﺷﺶ ﺑﺎزه ﮔﺴﺘﺮده ﺗﺮي از اﻋﺪاد ﺻﺤﯿﺢ‬
‫ﮐﻼﺳﯽ ﺑﺎ ﻧﺎم ‪ BigNumber‬را ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﯿﻢ‪.‬‬
‫ﺷﻤﺎ ﺑﺎﯾﺪ ﮐﻼﺳﯽ ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﺑﺘﻮان ﮐﺎرﻫﺎي زﯾﺮ را اﻧﺠﺎم دﻫﺪ)‪ const‬ﺑﻮدن ﺗﺎﺑﻊ ﻫﺎ را رﻋﺎﯾﺖ ﮐﻨﯿﺪ ‪:(.‬‬
‫;‪BigNumber A, B‬‬
‫‪cin>>A, B=A, A+B,A+=B, A-B, A-=B, A*B, A*=B, A/B, A/=B,A%B, A%=B, A++, A--, A==B, A > B, A >= B,‬‬
‫‪A!=B, A<B, A<=B, cout<<B‬‬
‫ﻋﻤﻠﮕﺮ ]‪ A[i‬ﮐﻪ رﻗﻢ ‪i‬ام ‪ A‬را ﺑﻪ ﺻﻮرت ‪ int‬ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ‪.‬‬
‫ﻋﻤﻠﮕﺮ )‪ A(i, j‬ﮐﻪ ارﻗﺎم ﺑﯿﻦ رﻗﻢ ‪i‬ام و ‪j‬ام را ﺑﻪ ﺻﻮرت ﻧﻮﻋﯽ از ‪ BigNumber‬ﺑﺎز ﻣﯽ ﮔﺮداﻧﺪ‪.‬‬
‫ﺑﻪ ﻋﺒﺎرﺗﯽ ﻋﻤﻠﮕﺮﻫﺎي ﻣﻮرد ﻧﻈﺮ را ﺗﻌﺮﯾﻒ ﻣﺠﺪد ﮐﻨﯿﺪ‪.‬‬
‫ﻫﻢ ﭼﻨﯿﻦ ‪ constructor‬ﻫﺎي زﯾﺮ را ﭘﯿﺎده ﺳﺎزي ﮐﻨﯿﺪ ‪:‬‬
‫)&‪BigNumber(const string‬‬
‫)‪BigNumber (const int‬‬
‫)&‪BigNumber (const BigNumber‬‬
‫ﺗﻮﺟﻪ ﮐﻨﯿﺪ ‪:‬‬
‫‪ .١‬ﺣﺎﺻﻞ ﺗﻤﺎم ﻋﻤﻠﯿﺎت ﻫﺎ ﻋﺪدي ﺻﺤﯿﺢ اﺳﺖ‪.‬‬
‫‪ .٢‬ﺑــﺮاي ﭘﯿــﺎده ﺳــﺎزي اﻋــﺪاد ﺻــﺤﯿﺢ ﺑــﺰرگ اﺑﺘــﺪا ﺑــﻪ ﭘﯿــﺎده ﺳــﺎزي اﻋــﺪاد ﺻــﺤﯿﺢ ﻣﺜﺒــﺖ ) ﯾﻌﻨــﯽ ﺑــﺪون در ﻧﻈــﺮ ﮔــﺮﻓﺘﻦ ﻋﻼﻣــﺖ ( ﻓﮑــﺮ‬
‫ﮐﻨﯿﺪ و ﺳﭙﺲ ﻋﻼﻣﺖ اﻋﺪاد را ﻫﻢ ﻟﺤﺎظ ﮐﻨﯿﺪ ‪.‬‬
‫‪ .٣‬ﺑــﺮاي رﻋﺎﯾــﺖ ﺷــﯽ ﮔﺮاﯾـــﯽ ﺑﻬﺘــﺮ اﺳــﺖ ﻓﺎﯾـــﻞ ﻫــﺎي‬
‫‪ .h‬و ‪ .cpp‬ﺟـــﺪا از ﻫــﻢ ﺑﺎﺷــﻨﺪ ‪ .‬ﯾﻌﻨـــﯽ ﻓﺎﯾــﻞ ﻫــﺎي‬
‫‪ BigNumber.h‬و‬
‫‪ BigNumber.cpp‬داﺷـــﺘﻪ ﺑﺎﺷـــﯿﺪ ﮐـــﻪ ﺑـــﻪ ﺗﺮﺗﯿـــﺐ ﺳـــﺎﺧﺘﺎر ﮐﻠـــﯽ ﮐـــﻼس ) وﯾﮋﮔـــﯽ ﻫـــﺎ و ﺗـــﻮاﺑﻌﺶ ( و ﭘﯿـــﺎده ﺳـــﺎزي ﺗﻮاﺑـــﻊ‬
‫ﮐﻼس را ﺷﺎﻣﻞ ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪ .٤‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺗﻌﺪاد ارﻗﺎم ﻫﺮ ﻋﺪدي ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎﺷﺪ‪.‬‬
‫‪ .٥‬ﻣــــــــﯽ ﺗﻮاﻧﯿــــــــﺪ از ﻟﯿﻨــــــــﮏ ‪ http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B‬اﺳــــــــﺘﻔﺎده‬
‫ﮐﻨﯿﺪ‪.‬‬
‫ﺣــﺎل ﺑــﺎ اﺳــﺘﻔﺎده از اﯾــﻦ ﮐــﻼس ﺑﺮﻧﺎﻣــﻪ اي ﺑﻨﻮﯾﺴــﯿﺪ ﮐــﻪ ﯾــﮏ ﻋﺒــﺎرت رﯾﺎﺿــﯽ ﺳــﺎده ﻣﺸــﺘﻤﻞ ﺑــﺮ ﯾــﮏ ﻋﻤﻠﯿــﺎت را از ورودي ﺧﻮاﻧــﺪه و ﻧﺘﯿﺠــﻪ‬
‫ي آن را ﻧﺸﺎن ﻣﯿﺪﻫﺪ ‪ .‬اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﺑﺎ دﺳﺘﻮر ‪ end‬ﺗﻤﺎم ﻣﯿﺸﻮد‪.‬‬
‫ﺧﺮوﺟﯽ ﻧﻤﻮﻧﻪ‬
‫ورودي ﻧﻤﻮﻧﻪ‬
‫‪1000000000000000000000000000000‬‬
‫‪1000000000000 * 1000000000000000000‬‬
‫‪12345678901234569124‬‬
‫‪12345678901234567890 + 1234‬‬
797492379792749794797349>=6786868697999739
end
true