{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

lectures(1_2)-C++_2 - ‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﯿﻢ‬ ‫درس ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﻣﺒﺎﺣﺚ ﭘﯿﺸﺮﻓﺘﻪ در ++‪C‬‬ ‫ﻣﺮاﺟﻊ‬ ‫ )ﻣﺮﺟﻊ ﮐﺎﻣﻞ(، ﻋﯿﻦ اﻟﻪ ﺟﻌﻔﺮﻧﮋاد ﻗﻤﯽ، اﻧﺘﺸﺎرات ﻋﻠﻮم‬C++‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﺑﻪ زﺑﺎن‬ .‫راﯾﺎﻧﻪ‬ • .‫ﻣﺒﺎﻧﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ و اﻟﮕﻮرﯾﺘﻢ ﻫﺎ ، ﻋﯿﻦ اﻟﻪ ﺟﻌﻔﺮﻧﮋاد ﻗﻤﯽ، اﻧﺘﺸﺎرات ﻋﻠﻮم راﯾﺎﻧﻪ‬ • .C++ ‫اﻧﻮاع ﮐﺘﺐ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﺑﻪ زﺑﺎن‬ • • The C++ Programming Language, Third Edition, Bjarne Stroustrup, Murray Hill, New Jersey, 1997. • ‫ﻣﺸﺨﺼﺎت درس‬ Object-Oriented Programming in C++ (4th Edition) ,Robert Lafore Mastering C++ By K. R. Venugopal, Rajkumar Buyya, T. Ravishankar C++ How to Program- Fourth Edition, by H. M. Deitel, P. J. Deitel, Prentice Hall, New Jersey, 2003. 2 ‫ﻧﺤﻮة ارﺗﺒﺎط‬ :‫درﯾﺎﻓﺖ آﺧﺮﯾﻦ اﻃﻼﻋﺎت درس‬ • https://sites.google.com/site/yousefiazar/courses/ocp – – [email protected] [email protected] subject ‫« در ﻗﺴﻤﺖ‬OCP ‫آوردن ﻋﺒﺎرت »ﮐﺪ ﺷﻨﺎﺳﺎﯾﯽ‬ • ‫ﻣﺸﺨﺼﺎت درس‬ :‫ﭘﺴﺖ اﻟﮑﺘﺮوﻧﯿﮑﯽ‬ – 3 ‫ﻧﺤﻮة ارزﯾﺎﺑﯽ‬ ‫• ﺗﻤﺮﯾﻨﺎت 3 ﻧﻤﺮه‬ ‫ﻣﺸﺨﺼﺎت درس‬ ‫• ﭘﺮوژه ﭘﺎﯾﺎﻧﯽ 2 ﻧﻤﺮه‬ ‫4‬ ‫• ﻣﯿﺎن ﺗﺮم )زﻣﺎن ﺑﺮﮔﺰاري ﺟﻠﺴﻪ ﻫﺸﺘﻢ( 5 ﻧﻤﺮه‬ ‫• ﭘﺎﯾﺎن ﺗﺮم 01 ﻧﻤﺮه‬ ‫ﻣﺒﺤﺚ اول:‬ ‫اﻟﮕﻮرﯾﺘﻢ ﻧﻮﯾﺴﯽ‬ ‫ﻣﻔﻬﻮم اﻟﮕﻮرﯾﺘﻢ‬ ‫•‬ ‫ﺗﺸﺮﯾﺢ دﻗﯿﻖ ﻣﺮاﺣﻞ ﻣﺨﺘﻠﻒ و ﻧﺤﻮة اﻧﺠﺎم دادن ﯾﮏ ﮐﺎر ﺧﺎص‬ ‫ﻣﻔﺎﻫﯿﻢ ﻣﻘﺪﻣﺎﺗﯽ‬ ‫– روش ﻣﺼﺮف دارو‬ ‫•‬ ‫– ﯾﺎﻓﺘﻦ ﺑﺰرﮔﺘﺮﯾﻦ ﻋﺪد در ﯾﮏ ﻣﺠﻤﻮﻋﻪ از اﻋﺪاد‬ ‫•‬ ‫6‬ ‫ﺗﺎ از ﺑﯿﻦ رﻓﺘﻦ ﮐﺎﻣﻞ ﻋﻼﺋﻢ ﺑﯿﻤﺎري، روزي ﺳﻪ دﻓﻌﻪ ﻫﺮ ﺑﺎر ﯾﮏ ﻗﺎﺷﻖ‬ ‫ﭼﺎﯾﺨﻮري از دارو در ﯾﮏ ﻟﯿﻮان آب ﺳﺮد ﺣﻞ ﻧﻤﻮده ﻗﺒﻞ از ﻏﺬا ﻣﯿﻞ ﮐﻨﯿﺪ.‬ ‫ﺑﺮرﺳﯽ اﻋﺪاد از اﺑﺘﺪا ﺗﺎ اﻧﺘﻬﺎ و ﺑﻪ ﺧﺎﻃﺮ ﺳﭙﺮدن ﺑﺰرﮔﺘﺮﯾﻦ ﻋﺪدي ﮐﻪ ﺗﺎﮐﻨﻮن‬ ‫ﺑﺎ آن ﺑﺮﺧﻮرد ﻧﻤﻮده اﯾﻢ.‬ ‫ﺗﻌﺮﯾﻒ اﻟﮕﻮرﯾﺘﻢ‬ ‫• اﻟﮕﻮرﯾﺘﻢ دﺳﺘﻮراﻟﻌﻤﻠﯽ ﺑﺮاي ﺣﻞ ﻣﺴﺄﻟﻪ اﺳﺖ ﮐﻪ‬ ‫ﻣﻔﺎﻫﯿﻢ ﻣﻘﺪﻣﺎﺗﯽ‬ ‫– ﺑﻪ زﺑﺎن دﻗﯿﻖ ﮔﻔﺘﻪ ﺷﻮد.‬ ‫• از واژه ﻫﺎﯾﯽ اﺳﺘﻔﺎده ﺷﻮد ﮐﻪ ﺑﺮاي ﻫﻤﻪ ﻣﺸﺨﺺ ﺑﺎﺷﺪ.‬ ‫– ﺑﺮداﺷﺘﻬﺎي ﻣﺨﺘﻠﻒ از ﻗﺎﺷﻖ ﭼﺎﯾﺨﻮري‬ ‫– ﺟﺰﺋﯿﺎت ﮐﺎﻣﻞ ﺣﻞ ﻣﺴﺄﻟﻪ را داﺷﺘﻪ ﺑﺎﺷﺪ.‬ ‫• ﺗﻤﺎم ﺷﺮاﯾﻄﯽ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ اﺗﻔﺎق ﺑﯿﻔﺘﺪ در ﻧﻈﺮ ﺑﮕﯿﺮﯾﻢ.‬ ‫– ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺿﺮاﯾﺐ ﯾﮏ ﻣﻌﺎدﻟﻪ درﺟﻪ رﯾﺸﻪ ﻫﺎي آن ﻣﯽ ﺗﻮاﻧﻨﺪ ﮔﻮﻧﺎﮔﻮن ﺑﺎﺷﻨﺪ.‬ ‫– ﺗﺮﺗﯿﺐ ﻣﺮاﺣﻞ آن ﻣﺸﺨﺺ ﺑﺎﺷﺪ.‬ ‫– ﺷﺮط ﺧﺎﺗﻤﻪ ﻋﻤﻠﯿﺎت ﻣﺸﺨﺺ ﺑﺎﺷﺪ.‬ ‫7‬ ‫• ﭘﺮﻫﯿﺰ از ﮐﺎرﻫﺎي ﺗﮑﺮاري ﻧﺎﺗﻤﺎم‬ ‫ﻃﺮاﺣﯽ اﻟﮕﻮرﯾﺘﻢ ﺑﺮاي ﻣﺴﺄﻟﻪ‬ ‫ﻣﻔﺎﻫﯿﻢ ﻣﻘﺪﻣﺎﯽ‬ ‫• ﻣﺮاﺣﻞ ﮐﻠﯽ ﻫﺮ ﻣﺴﺄﻟﻪ:‬ ‫8‬ ‫– ﺧﻮاﻧﺪن داده ﻫﺎ‬ ‫– اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت و ﭘﺮدازﺷﻬﺎ‬ ‫– ﭼﺎپ ﻧﺘﺎﯾﺞ‬ ‫• روش ﻃﺮاﺣﯽ اﻟﮕﻮرﯾﺘﻢ:‬ ‫– ﺗﻌﺮﯾﻒ دﻗﯿﻖ ﻣﺴﺄﻟﻪ ﺟﻬﺖ ﻣﺸﺨﺺ ﮐﺮدن ﻧﯿﺎزﻣﻨﺪﯾﻬﺎي آن‬ ‫– ﺗﻌﯿﯿﻦ ورودي و ﺧﺮوﺟﯽ ﻣﺴﺄﻟﻪ‬ ‫– ﺑﺮرﺳﯽ راه ﺣﻞ ﻫﺎي ﻣﺨﺘﻠﻒ ﻣﺴﺄﻟﻪ‬ ‫– اﻧﺘﺨﺎب ﯾﮏ راه ﺣﻞ ﻣﻨﺎﺳﺐ و ﺗﻬﯿﻪ اﻟﮕﻮرﯾﺘﻢ ﺑﺮاي آن‬ ‫– اﺷﮑﺎل زداﯾﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ ﺑﺎ ﺟﻤﻼت ﻓﺎرﺳﯽ‬ ‫روش ﻫﺎي ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ‬ ‫• ﻋﺪم اﺳﺘﻔﺎده از ﻧﻤﺎد ﺧﺎص‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻣﺠﻤﻮع دو ﻋﺪد را ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﮐﻨﺪ.‬ ‫– اوﻟﯿﻦ ﻋﺪد را اﻧﺘﺨﺎب ﮐﺮده ﺑﺮ روي ﮐﺎﻏﺬ ﺑﻨﻮﯾﺴﯿﺪ.‬ ‫– دوﻣﯿﻦ ﻋﺪد را ﮔﺮﻓﺘﻪ آن را زﯾﺮ ﻋﺪدي ﮐﻪ ﺑﺮ روي ﮐﺎﻏﺬ ﻧﻮﺷﺘﯿﺪ، ﺑﻨﻮﯾﺴﯿﺪ.‬ ‫دو ﻋﺪد روي ﮐﺎﻏﺬ را ﺑﺎ ﻫﻢ ﺟﻤﻊ ﮐﻨﯿﺪ، زﯾﺮ آن دو ﻋﺪد ﺑﻨﻮﯾﺴﯿﺪ.‬ ‫– ﺳﻮﻣﯿﻦ ﻋﺪدي ﮐﻪ ﺑﺮ روي ﮐﺎﻏﺬ ﻧﻮﺷﺘﻪ ﺷﺪ، ﻣﺠﻤﻮع دو ﻋﺪد اﺳﺖ.‬ ‫• اﺷﮑﺎﻻت:‬ ‫– اﻟﮕﻮرﯾﺘﻢ ﻫﺎ ﻃﻮﻻﻧﯽ ﻣﯽ ﺷﻮﻧﺪ.‬ ‫– از دﺳﺘﻮرات ﺗﻔﺴﯿﺮﻫﺎي ﮔﻮﻧﺎﮔﻮﻧﯽ ﻣﯽ ﺷﻮد.‬ ‫9‬ ‫روش ﻫﺎي ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺑﯿﺎن رﯾﺎﺿﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫• اﺳﺘﻔﺎده از ﻧﻤﺎدﻫﺎ ﺑﻪ ﻋﻨﻮان ﻣﺤﻞ ذﺧﯿﺮه ورودي ﻫﺎ و ﺧﺮوﺟﯽ ﻫﺎ‬ ‫)ﻣﺘﻐﯿﺮﻫﺎ(‬ ‫– ﻣﺘﻐﯿﺮ ﻧﺎﻣﯽ اﺳﺖ ﺑﺮاي ﯾﮏ ﮐﻤﯿﺖ ﮐﻪ ﻣﻘﺪار آن ﻣﻤﮑﻦ اﺳﺖ ﺗﻐﯿﯿﺮ ﮐﻨﺪ.‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻣﯿﺎﻧﮕﯿﻦ ﺳﻪ ﻋﺪد ورودي را ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﮐﻨﺪ.‬ ‫– ‪ A‬و ‪ B‬و ‪ C‬را از ورودي ﺑﺨﻮان‬ ‫– ‪A+B+C‬‬ ‫‪SUM‬‬ ‫– 3/‪SUM‬‬ ‫‪AVE‬‬ ‫– ‪ AVE‬را ﭼﺎپ ﮐﻦ.‬ ‫– ﭘﺎﯾﺎن‬ ‫01‬ ‫ﺑﯿﺎن رﯾﺎﺿﯽ اﻟﮕﻮرﯾﺘﻢ - 2‬ ‫روش ﻫﺎي ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ‬ ‫• ﻣﺠﺮي اﻟﮕﻮرﯾﺘﻢ ﻣﻔﻬﻮم ﺧﻮاﻧﺪن را ﻣﯽ داﻧﺪ.‬ ‫11‬ ‫• ﻋﻼﻣﺖ + ﺑﻪ ﻣﻌﻨﯽ ﺟﻤﻊ اﺳﺖ و ﻣﺠﺮي ﻣﻔﻬﻮم آن را ﻣﯽ داﻧﺪ.‬ ‫• ﻋﻼﻣﺖ‬ ‫ﻣﯽ دﻫﺪ.‬ ‫ﺑﻪ ﻣﻌﻨﯽ اﻧﺘﺴﺎب اﺳﺖ و ﻣﻘﺪار را در ﻣﺘﻐﯿﺮ ﺳﻤﺖ ﭼﭗ ﻗﺮار‬ ‫• ﻋﻼﻣﺖ / ﺑﻪ ﻣﻌﻨﯽ ﺗﻘﺴﯿﻢ اﺳﺖ.‬ ‫• ﻣﻔﻬﻮم ﭼﺎپ ﮐﺮدن ﺑﺮاي ﻣﺠﺮي ﻣﺸﺨﺺ اﺳﺖ.‬ ‫• ﻣﻔﻬﻮم ﭘﺎﯾﺎن ﺑﺮاي ﻣﺠﺮي ﻣﺸﺨﺺ اﺳﺖ.‬ ‫• ﻣﺠﺮي اﻟﮕﻮرﯾﺘﻢ ﻣﻔﻬﻮم ﻣﯿﺎﻧﮕﯿﻦ را ﻧﻤﯽ داﻧﺪ، ﺑﻠﮑﻪ راه ﺣﻞ آن از ﻃﺮﯾﻖ‬ ‫اﻟﮕﻮرﯾﺘﻢ ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ.‬ ‫ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ ﺗﻮﺳﻂ ﺷﮑﻞ ﻫﺎ‬ ‫روش ﻫﺎي ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ‬ ‫• ﻣﻌﺮوﻓﺘﺮﯾﻦ ‪flowchart‬‬ ‫• ﮐﻤﮏ ﺑﻪ دﻧﺒﺎل ﮐﺮدن اﻟﮕﻮرﯾﺘﻢ در ﺣﺎﻟﺘﯽ ﮐﻪ ﻃﻮﻻﻧﯽ ﯾﺎ ﭘﯿﭽﯿﺪه ﺑﺎﺷﺪ.‬ ‫1- ﻋﻼﺋﻢ ﺷﺮوع و ﭘﺎﯾﺎن‬ ‫ﺷﺮوع‬ ‫ﭘﺎﯾﺎن‬ ‫2- ﻋﻼﻣﺖ اﺗﺼﺎل‬ ‫ﺷﺮوع‬ ‫ﭘﺎﯾﺎن‬ ‫3- ﻋﻼﻣﺖ اﻧﺘﺴﺎب و ﻣﺤﺎﺳﺒﺎت‬ ‫21‬ ‫1‬ ‫‪M‬‬ ‫2*‪P‬‬ ‫‪N‬‬ ‫روش ﻫﺎي ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ ﺗﻮﺳﻂ ﺷﮑﻞ ﻫﺎ - 2‬ ‫4- ﻋﻼﺋﻢ ورودي و ﺧﺮوﺟﯽ‬ ‫ﭼﺎپ ﺑﺮ روي ﮐﺎﻏﺬ‬ ‫‪ C‬و ‪ D‬را ﺑﺨﻮان‬ ‫5- ﻋﻼﻣﺖ اداﻣﻪ‬ ‫31‬ ‫‪ SUM‬را ﭼﺎپ ﮐﻦ‬ ‫‪A‬‬ ‫‪A‬‬ ‫ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ ﺗﻮﺳﻂ ﺷﮑﻞ ﻫﺎ- 3‬ ‫روش ﻫﺎي ﺑﯿﺎن اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺷﺮوع‬ ‫• ﻣﺜﺎل:‬ ‫‪ A‬و ‪ B‬و ‪ C‬را ﺑﺨﻮان‬ ‫‪A+B+C‬‬ ‫‪SUM‬‬ ‫3/‪SUM‬‬ ‫‪AVE‬‬ ‫‪ AVE‬را ﭼﺎپ ﮐﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫41‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﺷﻌﺎع ﯾﮏ داﯾﺮه را‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ‬ ‫از ورودي ﺧﻮاﻧﺪه، ﻣﺤﯿﻂ و ﻣﺴﺎﺣﺖ آن‬ ‫را ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﮐﻨﺪ و ﺑﻪ ﺧﺮوﺟﯽ ﻣﯽ ﺑﺮد.‬ ‫2- 41.3*‪R*R‬‬ ‫‪S‬‬ ‫3- 41.3*‪2*R‬‬ ‫‪P‬‬ ‫5- ﭘﺎﯾﺎن‬ ‫‪S‬‬ ‫41.3*‪2*R‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :R‬ﺷﻌﺎع داﯾﺮه‬ ‫‪ :S‬ﻣﺴﺎﺣﺖ داﯾﺮه‬ ‫‪ :P‬ﻣﺤﯿﻂ داﯾﺮه‬ ‫51‬ ‫‪ R‬را ﺑﺨﻮان‬ ‫41.3*‪R*R‬‬ ‫1- ‪ R‬را ﺑﺨﻮان.‬ ‫4- ‪ P‬و ‪ S‬را ﭼﺎپ ﮐﻦ.‬ ‫ﺷﺮوع‬ ‫‪ P‬و ‪ S‬را ﭼﺎپ ﮐﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫‪P‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ درﺟﻪ ﺣﺮارت را‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺑﺮ ﺣﺴﺐ ﺳﺎﻧﺘﯿﮕﺮاد ﻣﯽ ﺧﻮاﻧﺪ و ﺑﻪ‬ ‫ﻓﺎرﻧﻬﺎﯾﺖ ﺗﺒﺪﯾﻞ ﻣﯽ ﮐﻨﺪ.‬ ‫3- ‪ F‬را ﭼﺎپ ﮐﻦ.‬ ‫4- ﭘﺎﯾﺎن‬ ‫‪F‬‬ ‫‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :C‬درﺟﮥ ﺳﺎﻧﺘﯿﮕﺮاد‬ ‫‪ :F‬درﺟﮥ ﻓﺎرﻧﻬﺎﯾﺖ‬ ‫61‬ ‫‪ C‬را ﺑﺨﻮان‬ ‫23+‪9/5*C‬‬ ‫1- ‪ C‬را ﺑﺨﻮان.‬ ‫2- 23+‪9/5*C‬‬ ‫ﺷﺮوع‬ ‫ﭘﺎﯾﺎن‬ ‫‪F‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻃﻮل و ﻋﺮض ﯾﮏ‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﻣﺴﺘﻄﯿﻞ از ورودي ﺧﻮاﻧﺪه، ﻣﺤﯿﻂ و‬ ‫ﻣﺴﺎﺣﺖ آن را ﻣﺤﺎﺳﺒﻪ ﮐﺮده ﺑﻪ ﺧﺮوﺟﯽ‬ ‫ﻣﯽ ﺑﺮد.‬ ‫3- 2*)‪(W+L‬‬ ‫71‬ ‫‪S‬‬ ‫2*)‪(W+L‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪S‬‬ ‫‪P‬‬ ‫4- ‪ P‬و ‪ S‬را ﭼﺎپ ﮐﻦ.‬ ‫5- ﭘﺎﯾﺎن‬ ‫‪ L‬و ‪ W‬را ﺑﺨﻮان‬ ‫‪W*L‬‬ ‫1- ‪ L‬و ‪ W‬را ﺑﺨﻮان.‬ ‫2- ‪W*L‬‬ ‫ﺷﺮوع‬ ‫‪ :L‬ﻃﻮل ﻣﺴﺘﻄﯿﻞ‬ ‫‪ P‬و ‪ S‬را ﭼﺎپ ﮐﻦ‬ ‫‪ :W‬ﻋﺮض ﻣﺴﺘﻄﯿﻞ‬ ‫‪ :S‬ﻣﺴﺎﺣﺖ‬ ‫‪ :P‬ﻣﺤﯿﻂ‬ ‫ﭘﺎﯾﺎن‬ ‫‪P‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ارﺗﻔﺎع و ﻗﺎﻋﺪه‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﻣﺜﻠﺜﯽ را ﺧﻮاﻧﺪه ﻣﺴﺎﺣﺖ را ﻣﺤﺎﺳﺒﻪ‬ ‫ﻧﻤﻮده ﺑﻪ ﺧﺮوﺟﯽ ﺑﺒﺮد.‬ ‫3- ‪ S‬را ﭼﺎپ ﮐﻦ.‬ ‫4- ﭘﺎﯾﺎن‬ ‫‪S‬‬ ‫‪ S‬را ﭼﺎپ ﮐﻦ‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :H‬ارﺗﻔﺎع ﻣﺜﻠﺚ‬ ‫‪ :B‬ﻗﺎﻋﺪه ﻣﺜﻠﺚ‬ ‫‪ :S‬ﻣﺴﺎﺣﺖ‬ ‫81‬ ‫‪ H‬و ‪ B‬را ﺑﺨﻮان‬ ‫2/‪H*B‬‬ ‫1- ‪ H‬و ‪ B‬را ﺑﺨﻮان.‬ ‫2- 2/‪H*B‬‬ ‫ﺷﺮوع‬ ‫ﭘﺎﯾﺎن‬ ‫‪S‬‬ ‫ﺷﺮوع‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ دو ﻣﻘﺪار را از ورودي‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺧﻮاﻧﺪه در دو ﻣﺘﻐﯿﺮ ‪ X‬و ‪ Y‬ﻗﺮارﻣﯽ دﻫﺪ و‬ ‫ﺳﭙﺲ ﻣﺤﺘﻮﯾﺎت آن دو را ﺑﺎ ﻫﻢ ﻋﻮض ﮐﺮده‬ ‫در ﺧﺮوﺟﯽ ﭼﺎپ ﮐﻨﺪ.‬ ‫‪TEMP‬‬ ‫‪X‬‬ ‫‪Y‬‬ ‫1- ‪ X‬و ‪ Y‬را ﺑﺨﻮان.‬ ‫2- ‪X‬‬ ‫3- ‪Y‬‬ ‫‪X‬‬ ‫‪Y‬‬ ‫‪Y‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :X‬ﻣﺘﻐﯿﺮ اول‬ ‫5- ‪ X‬و ‪ Y‬را ﭼﺎپ ﮐﻦ.‬ ‫6- ﭘﺎﯾﺎن‬ ‫‪X‬‬ ‫‪TEMP‬‬ ‫‪TEMP‬‬ ‫4- ‪TEMP‬‬ ‫91‬ ‫‪ X‬و ‪ Y‬را ﺑﺨﻮان‬ ‫‪ X‬و ‪ Y‬را ﭼﺎپ ﮐﻦ‬ ‫‪ :Y‬ﻣﺘﻐﯿﺮ دوم‬ ‫‪ :TEMP‬ﻣﺘﻐﯿﺮ ﮐﻤﮑﯽ‬ ‫ﭘﺎﯾﺎن‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ دو ﻣﻘﺪار را از ورودي‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺧﻮاﻧﺪه در دو ﻣﺘﻐﯿﺮ ‪ X‬و ‪ Y‬ﻗﺮارﻣﯽ دﻫﺪ و‬ ‫ﺳﭙﺲ ﻣﺤﺘﻮﯾﺎت آن دو را ﺑﺎ ﻫﻢ ﺑﺪون ﻣﺘﻐﯿﺮ‬ ‫‪ X‬و ‪ Y‬را ﺑﺨﻮان‬ ‫1- ‪ X‬و ‪ Y‬را ﺑﺨﻮان.‬ ‫2- ‪X+Y‬‬ ‫3- ‪X-Y‬‬ ‫‪Y‬‬ ‫‪X-Y‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫‪Y‬‬ ‫‪X‬‬ ‫5- ‪ X‬و ‪ Y‬را ﭼﺎپ ﮐﻦ.‬ ‫6- ﭘﺎﯾﺎن‬ ‫‪X+Y‬‬ ‫‪X‬‬ ‫‪X-Y‬‬ ‫ﮐﻤﮑﯽ ﻋﻮض ﮐﺮده در ﺧﺮوﺟﯽ ﭼﺎپ ﮐﻨﺪ.‬ ‫4- ‪X-Y‬‬ ‫02‬ ‫ﺷﺮوع‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ X‬و ‪ Y‬را ﭼﺎپ ﮐﻦ‬ ‫‪ :X‬ﻣﺘﻐﯿﺮ اول‬ ‫‪ :Y‬ﻣﺘﻐﯿﺮ دوم‬ ‫ﭘﺎﯾﺎن‬ ‫ﺗﻌﺮﯾﻒ دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﺷﺮﻃﯽ‬ ‫دﺳﺘﻮرات ﺷﺮﻃﯽ‬ ‫• ﺗﺎﮐﻨﻮن دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي اﻟﮕﻮرﯾﺘﻢ ﻫﺎ ﺑﻪ ﺗﺮﺗﯿﺐ از اوﻟﯿﻦ دﺳﺘﻮر ﺗﺎ آﺧﺮﯾﻦ‬ ‫دﺳﺘﻮر اﺟﺮا ﺷﺪﻧﺪ.‬ ‫• ﮔﺎﻫﯽ ﻣﯽ ﺧﻮاﻫﯿﻢ ﺑﺮ اﺳﺎس ﺷﺮاﯾﻄﯽ ﮐﻪ اﺗﻔﺎق ﻣﯽ اﻓﺘﺪ؛‬ ‫– ﺑﺮﺧﯽ از دﺳﺘﻮرات اﺟﺮا ﺷﻮﻧﺪ.‬ ‫– و ﯾﺎ از اﺟﺮاي ﺑﺮﺧﯽ از آﻧﻬﺎ ﺻﺮﻓﻨﻈﺮ ﺷﻮد.‬ ‫• در اﯾﻦ ﮔﻮﻧﻪ ﺷﺮاﯾﻂ از دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﺷﺮﻃﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.‬ ‫• دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﺷﺮﻃﯽ ﺑﺎ ﮐﻠﻤﮥ اﮔﺮ ﺷﺮوع ﻣﯽ ﺷﻮﻧﺪ:‬ ‫اﮔﺮ‬ ‫12‬ ‫اﮔﺮ ﺷﺮط‬ ‫آﻧﮕﺎه‬ ‫ﺷﺮط‬ ‫آﻧﮕﺎه‬ ‫دﺳﺘﻮرات 1‬ ‫دﺳﺘﻮرات‬ ‫در ﻏﯿﺮ اﯾﻨﺼﻮرت‬ ‫دﺳﺘﻮرات 2‬ ‫ﻧﻤﺎﯾﺶ دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﺷﺮﻃﯽ‬ ‫دﺳﺘﻮرات ﺷﺮﻃﯽ‬ ‫• ﻟﻮزي ﻣﯽ ﺗﻮاﻧﺪ دو ﯾﺎ ﺳﻪ ﺧﺮوﺟﯽ داﺷﺘﻪ ﺑﺎﺷﺪ.‬ ‫درﺳﺖ‬ ‫ﺷﺮط‬ ‫درﺳﺖ‬ ‫دﺳﺘﻮرات 1‬ ‫22‬ ‫ﺷﺮط‬ ‫ﻧﺎدرﺳﺖ‬ ‫دﺳﺘﻮرات 2‬ ‫دﺳﺘﻮرات‬ ‫ﻧﺎدرﺳﺖ‬ ‫ﻧﻤﺎﯾﺶ دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﺷﺮﻃﯽ - 2‬ ‫دﺳﺘﻮرات ﺷﺮﻃﯽ‬ ‫• ﻟﻮزي ﻣﯽ ﺗﻮاﻧﺪ دو ﯾﺎ ﺳﻪ ﺧﺮوﺟﯽ داﺷﺘﻪ ﺑﺎﺷﺪ.‬ ‫0<‪X‬‬ ‫0>‪X‬‬ ‫‪X‬‬ ‫دﺳﺘﻮرات 1‬ ‫0=‪X‬‬ ‫دﺳﺘﻮرات 3‬ ‫32‬ ‫دﺳﺘﻮرات 2‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺷﺮﻃﯽ‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻋﺪدي را از ورودي‬ ‫ﺧﻮاﻧﺪه، ﻗﺪر ﻣﻄﻠﻖ آن را در ﺧﺮوﺟﯽ‬ ‫ﭼﺎپ ﮐﻨﺪ.‬ ‫ﺷﺮوع‬ ‫‪ X‬را ﺑﺨﻮان‬ ‫ﺧﯿﺮ‬ ‫0<‪X‬‬ ‫1- ‪ X‬را ﺑﺨﻮان.‬ ‫2- اﮔﺮ 0<‪ X‬آﻧﮕﺎه ‪-X‬‬ ‫3- ‪ X‬را ﭼﺎپ ﮐﻦ.‬ ‫4- ﭘﺎﯾﺎن‬ ‫‪-X‬‬ ‫‪X‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :X‬ﻋﺪد ورودي‬ ‫‪ X‬را ﭼﺎپ ﮐﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫42‬ ‫ﺑﻠﯽ‬ ‫‪X‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻋﺪدي ﻣﺜﻞ ‪ X‬را از‬ ‫ﺷﺮوع‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺷﺮﻃﯽ‬ ‫ورودي ﺧﻮاﻧﺪه و ﻣﻘﺪار ‪ Y‬را ﺑﻪ ﺻﻮرت‬ ‫زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ:‬ ‫5-‪Y=3X‬‬ ‫2=‪Y‬‬ ‫1+‪Y=2X‬‬ ‫2<‪X‬‬ ‫2=‪X‬‬ ‫2>‪X‬‬ ‫2>‬ ‫1- ‪ X‬را ﺑﺨﻮان.‬ ‫2- اﮔﺮ 2<‪ X‬آﻧﮕﺎه 5-‪3*X‬‬ ‫وﮔﺮﻧﻪ اﮔﺮ 2=‪ X‬آﻧﮕﺎه 2‬ ‫‪Y‬‬ ‫2<‬ ‫‪X‬‬ ‫‪Y‬‬ ‫و ﮔﺮﻧﻪ 1+‪2*x‬‬ ‫1+‪2*X‬‬ ‫‪Y‬‬ ‫3- ‪ Y‬را ﭼﺎپ ﮐﻦ.‬ ‫4- ﭘﺎﯾﺎن‬ ‫‪Y‬‬ ‫2=‬ ‫2‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :X‬ﻣﻘﺪار ورودي‬ ‫52‬ ‫‪ X‬را ﺑﺨﻮان‬ ‫‪ :Y‬ﻣﻘﺪار ﺗﺎﺑﻊ‬ ‫‪Y‬‬ ‫‪ Y‬را ﭼﺎپ ﮐﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫5-‪3*X‬‬ ‫‪Y‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ دو ﻣﻘﺪار را از ورودي‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺷﺮﻃﯽ‬ ‫ﺧﻮاﻧﺪه، ﻣﻘﺪار ﺑﺰرﮔﺘﺮ را در ﺧﺮوﺟﯽ ﭼﺎپ‬ ‫ﮐﻨﺪ.‬ ‫‪ X‬و ‪ Y‬را ﺑﺨﻮان‬ ‫1- ‪ X‬و ‪ Y‬را ﺑﺨﻮان.‬ ‫2- اﮔﺮ ‪ X>Y‬آﻧﮕﺎه ‪X‬‬ ‫ﺧﯿﺮ‬ ‫‪MAX‬‬ ‫وﮔﺮﻧﻪ اﮔﺮ ‪ Y>X‬آﻧﮕﺎه ‪Y‬‬ ‫و ﮔﺮﻧﻪ ﭼﺎپ ﮐﻦ »اﻋﺪاد ﺑﺮاﺑﺮﻧﺪ« و ﺑﺮو ﺑﻪ 4‬ ‫3- ‪ MAX‬را ﭼﺎپ ﮐﻦ.‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :X‬ﻣﻘﺪار اول‬ ‫‪ :MAX‬ﻣﻘﺪار ﺑﺰرﮔﺘﺮ‬ ‫‪X>Y‬‬ ‫ﺑﻠﯽ‬ ‫ﺑﻠﯽ‬ ‫‪Y‬‬ ‫4- ﭘﺎﯾﺎن‬ ‫ﺧﯿﺮ‬ ‫‪Y>X‬‬ ‫‪MAX‬‬ ‫‪ :Y‬ﻣﻘﺪار دوم‬ ‫62‬ ‫ﺷﺮوع‬ ‫‪X‬‬ ‫‪MAX‬‬ ‫‪ MAX‬را ﭼﺎپ ﮐﻦ‬ ‫ﭼﺎپ ﮐﻦ‬ ‫»اﻋﺪاد ﺑﺮاﺑﺮﻧﺪ«‬ ‫ﭘﺎﯾﺎن‬ ‫‪MAX‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻋﺪدي ﺻﺤﯿﺢ ﻣﺜﻞ‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺷﺮﻃﯽ‬ ‫‪ X‬را از ورودي ﺧﻮاﻧﺪه اﮔﺮ زوج ﺑﺎﺷﺪ، ‪2X‬‬ ‫و اﮔﺮ ﻓﺮد ﺑﺎﺷﺪ ‪ 3X‬را ﺑﻪ ﺧﺮوﺟﯽ ﺑﺒﺮد:‬ ‫‪ X‬را ﺑﺨﻮان‬ ‫2/‪X‬‬ ‫2- ]2/‪[X‬‬ ‫‪D‬‬ ‫3- 2*‪X-D‬‬ ‫‪R‬‬ ‫4- اﮔﺮ 0=‪ R‬آﻧﮕﺎه ‪2*X‬‬ ‫وﮔﺮﻧﻪ ‪3*X‬‬ ‫5- ‪ Y‬را ﭼﺎپ ﮐﻦ.‬ ‫6- ﭘﺎﯾﺎن‬ ‫‪Y‬‬ ‫ﺧﯿﺮ‬ ‫‪Y‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :X‬ﻣﻘﺪار ورودي‬ ‫‪3*X‬‬ ‫‪ :D‬ﺧﺎرج ﻗﺴﻤﺖ ﺗﻘﺴﯿﻢ ﺻﺤﯿﺢ‬ ‫‪ :Y‬ﻣﻘﺪار ﺧﺮوﺟﯽ‬ ‫‪D‬‬ ‫2*‪X-D‬‬ ‫1- ‪ X‬را ﺑﺨﻮان.‬ ‫‪ :R‬ﺑﺎﻗﯿﻤﺎﻧﺪه ﺗﻘﺴﯿﻢ ﺑﺮ 2‬ ‫72‬ ‫ﺷﺮوع‬ ‫‪R‬‬ ‫0=‪R‬‬ ‫‪Y‬‬ ‫ﺑﻠﯽ‬ ‫‪2*X‬‬ ‫‪ Y‬را ﭼﺎپ ﮐﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫‪Y‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﺟﻮاب ﻫﺎي ﺣﻘﯿﻘﯽ‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺷﺮﻃﯽ‬ ‫ﻣﻌﺎدﻟﮥ درﺟﮥ دوم 0=‪AX2+BX+C‬‬ ‫را ﯾﺎﻓﺘﻪ و در ﺧﺮوﺟﯽ ﭼﺎپ ﮐﻨﺪ.‬ ‫1- ‪ A‬و ‪ B‬و ‪ C‬را ﺑﺨﻮان.‬ ‫2- ‪B*B-4*A*C‬‬ ‫‪D‬‬ ‫3- اﮔﺮ 0=‪ A‬آﻧﮕﺎه ‪-C/B‬‬ ‫4- اﮔﺮ 0<‪ D‬آﻧﮕﺎه ﭼﺎپ ﮐﻦ »ﺟﻮاب ﺣﻘﯿﻘﯽ ﻧﺪارد« و ﺑﺮو ﺑﻪ 8‬ ‫5-‬ ‫6-‬ ‫‪B D‬‬ ‫‪2* A‬‬ ‫‪X1 ‬‬ ‫‪B D‬‬ ‫‪2* A‬‬ ‫‪X2‬‬ ‫7- 1‪ X‬و 2‪ X‬را ﭼﺎپ ﮐﻦ.‬ ‫8- ﭘﺎﯾﺎن‬ ‫82‬ ‫1‪ X‬را ﭼﺎپ ﮐﻦ و ﺑﺮو ﺑﻪ 8‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ A‬و ‪ B‬و ‪ :C‬ﺿﺮاﯾﺐ ورودي‬ ‫‪ :D‬دﻟﺘﺎ‬ ‫1‪ X‬و 2‪ :X‬رﯾﺸﻪ ﻫﺎي ﻣﻌﺎدﻟﻪ‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺷﺮﻃﯽ‬ ‫ﺷﺮوع‬ ‫‪ A‬و ‪ B‬و ‪ C‬را ﺑﺨﻮان‬ ‫‪B*B-4*A*C‬‬ ‫ﺧﯿﺮ‬ ‫‪B D‬‬ ‫‪2* A‬‬ ‫‪X1 ‬‬ ‫‪B D‬‬ ‫‪2* A‬‬ ‫‪X2‬‬ ‫1‪ X‬و 2‪X‬‬ ‫را ﭼﺎپ ﮐﻦ‬ ‫92‬ ‫ﺧﯿﺮ‬ ‫0<‪D‬‬ ‫ﺑﻠﯽ‬ ‫‪D‬‬ ‫ﺑﻠﯽ‬ ‫0=‪A‬‬ ‫‪-C/B‬‬ ‫ﭼﺎپ ﮐﻦ “ﺟﻮاب‬ ‫ﺣﻘﯿﻘﯽ ﻧﺪارد”‬ ‫ﭘﺎﯾﺎن‬ ‫ﺟﻮاب ﻣﻀﺎﻋﻒ‬ ‫1‪ X‬را ﭼﺎپ ﮐﻦ‬ ‫1‪X‬‬ ‫ﺳﻪ ﭘﺎراﻣﺘﺮ ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار‬ ‫• ﺷﺮط ﺣﻠﻘﻪ:‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار‬ ‫ﻣﺸﺨﺺ ﮐﻨﻨﺪة زﻣﺎن ﺧﺎﺗﻤﮥ ﺣﻠﻘﻪ‬ ‫– ﺑﺮاي ﮐﻨﺘﺮل ﺗﻌﺪاد دﻓﻌﺎت اﺟﺮاي ﺣﻠﻘﻪ‬ ‫• ﺷﻤﺎرﻧﺪه ﺣﻠﻘﻪ ﺗﮑﺮار:‬ ‫ﻣﺸﺨﺺ ﮐﻨﻨﺪة دﻓﻌﺎت اﺟﺮاي ﺣﻠﻘﻪ‬ ‫– ﺑﺎﯾﺪ داراي ﯾﮏ ﻣﻘﺪار اوﻟﯿﻪ ﺑﺎﺷﺪ.‬ ‫• ﮔﺎم ﺣﻠﻘﻪ:‬ ‫ﻣﻘﺪاري ﮐﻪ ﺑﺎزاي ﻫﺮ ﺑﺎر اﺟﺮا ﺑﻪ ﺷﻤﺎرﻧﺪه اﺿﺎﻓﻪ ﻣﯽ ﺷﻮد.‬ ‫03‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار‬ ‫ﻧﻤﺎﯾﺶ ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار در ﻓﻠﻮﭼﺎرت‬ ‫درﺳﺖ‬ ‫دﺳﺘﻮرات ﺣﻠﻘﻪ‬ ‫ﺷﺮط ﺣﻠﻘﻪ‬ ‫ﻧﺎدرﺳﺖ‬ ‫ﺧﺮوج از ﺣﻠﻘﻪ‬ ‫دﺳﺘﻮرات ﺣﻠﻘﻪ‬ ‫درﺳﺖ‬ ‫ﺷﺮط ﺣﻠﻘﻪ‬ ‫ﻧﺎدرﺳﺖ‬ ‫ﺧﺮوج از ﺣﻠﻘﻪ‬ ‫13‬ ‫1- 1‬ ‫ﺷﺮوع‬ ‫‪I‬‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫2- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 5=<‪ I‬دﺳﺘﻮرات 3 ﺗﺎ 7 را ﺗﮑﺮار ﮐﻦ.‬ ‫1‬ ‫3- ‪ X‬را ﺑﺨﻮان‬ ‫4- ]2/‪[X‬‬ ‫‪D‬‬ ‫5- 2*‪X-D‬‬ ‫ﺑﻠﯽ‬ ‫‪R‬‬ ‫‪ X‬را ﺑﺨﻮان‬ ‫‪I‬‬ ‫8- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫9- ﭘﺎﯾﺎن‬ ‫2/‪X‬‬ ‫1+‪I‬‬ ‫ﺧﯿﺮ‬ ‫5=<‪I‬‬ ‫6- اﮔﺮ 0=‪ R‬آﻧﮕﺎه ‪ X‬را ﭼﺎپ ﮐﻦ.‬ ‫7- 1+‪I‬‬ ‫‪I‬‬ ‫2*‪X-D‬‬ ‫‪I‬‬ ‫ﺧﯿﺮ‬ ‫0=‪R‬‬ ‫ﭘﺎﯾﺎن‬ ‫‪D‬‬ ‫‪R‬‬ ‫ﺑﻠﯽ‬ ‫‪ X‬را ﭼﺎپ ﮐﻦ‬ ‫23‬ ‫روﻧﺪ ﺑﺮرﺳﯽ‬ ‫ﺷﺮوع‬ ‫ﺑﺮرﺳﯽ درﺳﺘﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺗﻬﯿﮥ داده ﻫﺎي آزﻣﺎﯾﺸﯽ‬ ‫ورود داده ﻫﺎ ﺑﻪ اﻟﮕﻮرﯾﺘﻢ‬ ‫ﺗﻬﯿﮥ ﺧﺮوﺟﯽ‬ ‫ﺧﯿﺮ‬ ‫ﻋﯿﺐ ﯾﺎﺑﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫33‬ ‫ﺑﻠﯽ‬ ‫آﯾﺎ ﺧﺮوﺟﯽ ﺑﺎ ﻧﺘﺎﯾﺞ‬ ‫ﻣﻮرد ﻧﻈﺮ ﯾﮑﺴﺎن‬ ‫اﺳﺖ؟‬ ‫ﭘﺎﯾﺎن ﺗﺴﺖ اﻟﮕﻮرﯾﺘﻢ‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ 5 ﻋﺪد ﺻﺤﯿﺢ را از ورودي‬ ‫ﺧﻮاﻧﺪه، اﻋﺪاد زوج را ﭼﺎپ ﮐﻨﺪ.‬ ‫ﺷﻤﺎره دﺳﺘﻮر‬ ‫ﺑﺮرﺳﯽ درﺳﺘﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫1- 1‬ ‫1‬ ‫‪I‬‬ ‫1‬ ‫2‬ ‫2- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 5=<‪ I‬دﺳﺘﻮرات 3 ﺗﺎ 7 را ﺗﮑﺮار ﮐﻦ.‬ ‫3- ‪ X‬را ﺑﺨﻮان‬ ‫4- ]2/‪[X‬‬ ‫3‬ ‫2‬ ‫5‬ ‫1‬ ‫6‬ ‫‪R‬‬ ‫6- اﮔﺮ 0=‪ R‬آﻧﮕﺎه ‪ X‬را ﭼﺎپ ﮐﻦ.‬ ‫‪I‬‬ ‫5‬ ‫4‬ ‫‪D‬‬ ‫5- 2*‪X-D‬‬ ‫7- 1+‪I‬‬ ‫‪I‬‬ ‫‪X‬‬ ‫7‬ ‫2‬ ‫8‬ ‫2‬ ‫3‬ ‫8- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫9- ﭘﺎﯾﺎن‬ ‫21‬ ‫4‬ ‫5‬ ‫6‬ ‫0‬ ‫6‬ ‫7‬ ‫21‬ ‫3‬ ‫8‬ ‫2‬ ‫3‬ ‫43‬ ‫‪D‬‬ ‫‪R‬‬ ‫ﺧﺮوﺟﯽ‬ ‫21‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﺗﻌﺪاد ‪ N‬ﻋﺪد را از‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫ورودي ﺧﻮاﻧﺪه، ﻣﺠﻤﻮع آﻧﻬﺎ را ﭼﺎپ ﮐﻨﺪ.‬ ‫1- ‪ N‬را ﺑﺨﻮان‬ ‫2- 1‬ ‫‪I‬و0‬ ‫‪SUM‬‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ I<=N‬دﺳﺘﻮرات 4 ﺗﺎ 6 را ﺗﮑﺮار ﮐﻦ.‬ ‫4- ‪ X‬را ﺑﺨﻮان‬ ‫5- ‪X+SUM‬‬ ‫6- 1+‪I‬‬ ‫‪SUM‬‬ ‫‪I‬‬ ‫7- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫8- ‪ SUM‬را ﭼﺎپ ﮐﻦ.‬ ‫9- ﭘﺎﯾﺎن‬ ‫53‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :N‬ﺗﻌﺪاد اﻋﺪاد‬ ‫‪ :I‬ﺷﻤﺎرﻧﺪه ﺣﻠﻘﻪ ﺗﮑﺮار‬ ‫‪ :SUM‬ﻣﺠﻤﻮع اﻋﺪاد‬ ‫‪ :X‬ﻋﺪد ورودي‬ ‫1- ‪ N‬را ﺑﺨﻮان‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫2- 1‬ ‫63‬ ‫‪I‬و0‬ ‫‪SUM‬‬ ‫ﺷﺮوع‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ I<=N‬دﺳﺘﻮرات 4 ﺗﺎ 6 را‬ ‫ﺗﮑﺮار ﮐﻦ.‬ ‫‪ N‬را ﺑﺨﻮان‬ ‫4- ‪ X‬را ﺑﺨﻮان‬ ‫5- ‪X+SUM‬‬ ‫6- 1+‪I‬‬ ‫1‬ ‫‪SUM‬‬ ‫ﺑﻠﯽ‬ ‫‪I‬‬ ‫7- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫8- ‪ SUM‬را ﭼﺎپ ﮐﻦ.‬ ‫9- ﭘﺎﯾﺎن‬ ‫‪ I‬و 0‬ ‫‪SUM‬‬ ‫ﺧﯿﺮ‬ ‫‪I<=N‬‬ ‫‪ X‬را ﺑﺨﻮان‬ ‫‪X+SUM‬‬ ‫1+‪I‬‬ ‫‪SUM‬‬ ‫‪I‬‬ ‫‪ SUM‬را ﭼﺎپ ﮐﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻋﺪد ﺻﺤﯿﺢ و ﻣﺜﺒﺖ‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫‪ N‬را از ورودي ﺧﻮاﻧﺪه، ﻓﺎﮐﺘﻮرﯾﻞ آن را‬ ‫ﻣﺤﺎﺳﺒﻪ و ﭼﺎپ ﻧﻤﺎﯾﺪ.‬ ‫1- ‪ N‬را ﺑﺨﻮان‬ ‫2- 1‬ ‫‪J‬و1‬ ‫‪FACT‬‬ ‫‪ :N‬ﻋﺪد ﻣﻮرد ﻧﻈﺮ‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ J<=N‬دﺳﺘﻮرات 4 ﺗﺎ 5 را ﺗﮑﺮار ﮐﻦ.‬ ‫‪ :J‬ﺷﻤﺎرﻧﺪه‬ ‫‪FACT‬‬ ‫‪ :FACT‬ﻓﺎﮐﺘﻮرﯾﻞ‬ ‫4- ‪FACT*J‬‬ ‫5- 1+‪J‬‬ ‫‪J‬‬ ‫6- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫7- ‪ FACT‬را ﭼﺎپ ﮐﻦ.‬ ‫8- ﭘﺎﯾﺎن‬ ‫73‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫1- ‪ N‬را ﺑﺨﻮان‬ ‫2- 1‬ ‫‪J‬و1‬ ‫‪FACT‬‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ J<=N‬دﺳﺘﻮرات 4 ﺗﺎ 5 را ﺗﮑﺮار ﮐﻦ.‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫4- ‪FACT*J‬‬ ‫5- 1+‪J‬‬ ‫ﺷﺮوع‬ ‫‪FACT‬‬ ‫‪J‬‬ ‫‪ N‬را ﺑﺨﻮان‬ ‫6- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫1‬ ‫7- ‪ FACT‬را ﭼﺎپ ﮐﻦ.‬ ‫8- ﭘﺎﯾﺎن‬ ‫ﺑﻠﯽ‬ ‫ﺧﯿﺮ‬ ‫‪J<=N‬‬ ‫‪FACT*J‬‬ ‫1+‪J‬‬ ‫83‬ ‫‪ J‬و 1‬ ‫‪FACT‬‬ ‫‪FACT‬‬ ‫‪J‬‬ ‫‪ FACT‬را ﭼﺎپ ﮐﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﻋﺪد ﺻﺤﯿﺢ و ﻣﺜﺒﺖ‬ ‫‪ N‬را از ورودي ﺧﻮاﻧﺪه، ﻓﺎﮐﺘﻮرﯾﻞ آن را‬ ‫ﻣﺤﺎﺳﺒﻪ و ﭼﺎپ ﻧﻤﺎﯾﺪ.‬ ‫ﺷﻤﺎره دﺳﺘﻮر‬ ‫‪N‬‬ ‫1‬ ‫3‬ ‫ﺑﺮرﺳﯽ درﺳﺘﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫2‬ ‫2- 1‬ ‫4‬ ‫‪FACT‬‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ J<=N‬دﺳﺘﻮرات 4 ﺗﺎ 5 را ﺗﮑﺮار ﮐﻦ.‬ ‫4- ‪FACT*J‬‬ ‫5- 1+‪J‬‬ ‫‪FACT‬‬ ‫‪J‬‬ ‫6- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫7- ‪ FACT‬را ﭼﺎپ ﮐﻦ.‬ ‫8- ﭘﺎﯾﺎن‬ ‫5‬ ‫1‬ ‫2‬ ‫6‬ ‫3‬ ‫4‬ ‫5‬ ‫2‬ ‫3‬ ‫6‬ ‫3‬ ‫4‬ ‫5‬ ‫6‬ ‫4‬ ‫6‬ ‫3‬ ‫7‬ ‫8‬ ‫93‬ ‫1‬ ‫1‬ ‫3‬ ‫1- ‪ N‬را ﺑﺨﻮان‬ ‫‪J‬و1‬ ‫‪J‬‬ ‫‪FACT‬‬ ‫ﺧﺮوﺟﯽ‬ ‫6‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ 02 ﺟﻤﻠﮥ اول دﻧﺒﺎﻟﮥ ﻓﯿﺒﻮﻧﺎﭼﯽ را ﺗﻮﻟﯿﺪ و ﭼﺎپ ﻣﯽ ﮐﻨﺪ:‬ ‫)1+‪F(n+2)=F(n)+F(n‬‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫1- 1‬ ‫1‪ F‬و 1‬ ‫2‪F‬‬ ‫2- 1‪ F‬و 2‪ F‬را ﭼﺎپ ﮐﻦ.‬ ‫3- 3‬ ‫‪K‬‬ ‫4- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 02=<‪ K‬اﺳﺖ، دﺳﺘﻮرات 5 ﺗﺎ 9 را اﺟﺮا ﮐﻦ.‬ ‫5- 2‪F1+F‬‬ ‫3‪F‬‬ ‫6- 3‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫7- 2‪F‬‬ ‫1‪F‬‬ ‫8- 3‪F‬‬ ‫2‪F‬‬ ‫9- 1+‪K‬‬ ‫‪K‬‬ ‫01- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫11- ﭘﺎﯾﺎن‬ ‫04‬ ‫… ,31 ,8 ,5 ,3 ,2 ,1 ,1‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫1‪ F‬و 2‪ F‬و 3‪ :F‬ﺟﻤﻼت دﻧﺒﺎﻟﻪ‬ ‫‪ :K‬ﺷﻤﺎرﻧﺪه‬ ‫1- 1‬ ‫1‪ F‬و 1‬ ‫2‪F‬‬ ‫2- 1‪ F‬و 2‪ F‬را ﭼﺎپ ﮐﻦ.‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫3- 3‬ ‫ﺷﺮوع‬ ‫‪K‬‬ ‫4- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 02=<‪ K‬اﺳﺖ، دﺳﺘﻮرات 5 ﺗﺎ 9 را اﺟﺮا‬ ‫ﮐﻦ.‬ ‫5- 2‪F1+F‬‬ ‫1‪ F‬و 1‬ ‫1‬ ‫1‪ F‬و 2‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫3‪F‬‬ ‫6- 3‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫7- 2‪F‬‬ ‫3‬ ‫1‪F‬‬ ‫8- 3‪F‬‬ ‫2‪F‬‬ ‫9- 1+‪K‬‬ ‫‪K‬‬ ‫ﺧﯿﺮ‬ ‫ﺑﻠﯽ‬ ‫02=<‪K‬‬ ‫‪K‬‬ ‫01- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫2‪F1+F‬‬ ‫11- ﭘﺎﯾﺎن‬ ‫3‪F‬‬ ‫3‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫1+‪K‬‬ ‫‪K‬‬ ‫2‪F‬‬ ‫1‪F‬‬ ‫3‪F‬‬ ‫14‬ ‫2‪F‬‬ ‫2‪F‬‬ ‫ﭘﺎﯾﺎن‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار (ﺷﺮط ﺣﻠﻘﻪ در ﭘﺎﯾﺎن(‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ دﻧﺒﺎﻟﮥ ﻓﯿﺒﻮﻧﺎﭼﯽ را ﺗﺎ زﻣﺎن درﺧﻮاﺳﺖ ﮐﺎرﺑﺮ ﺗﻮﻟﯿﺪ و ﭼﺎپ ﻧﻤﺎﯾﺪ:‬ ‫24‬ ‫)1+‪F(n+2)=F(n)+F(n‬‬ ‫1- 1‬ ‫1‪ F‬و 1‬ ‫… ,31 ,8 ,5 ,3 ,2 ,1 ,1‬ ‫2‪F‬‬ ‫2- 1‪ F‬و 2‪ F‬را ﭼﺎپ ﮐﻦ.‬ ‫3-2‪F1+F‬‬ ‫3‪F‬‬ ‫4- 3‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫5- 2‪F‬‬ ‫1‪F‬‬ ‫6- 3‪F‬‬ ‫2‪F‬‬ ‫7- ﭼﺎپ ﮐﻦ »آﯾﺎ اداﻣﻪ ﯾﺎﺑﺪ؟«‬ ‫8- ‪ ANS‬را ﺑﺨﻮان‬ ‫9- اﮔﺮ ‪ ANS=YES‬اﺳﺖ، ﺑﺮو ﺑﻪ 3.‬ ‫01- ﭘﺎﯾﺎن‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫1‪ F‬و 2‪ F‬و 3‪ :F‬ﺟﻤﻼت دﻧﺒﺎﻟﻪ‬ ‫‪ :ANS‬درﺧﻮاﺳﺖ اداﻣﻪ‬ ‫ﺷﺮوع‬ ‫1‪ F‬و 1‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار )ﺷﺮط ﺣﻠﻘﻪ در ﭘﺎﯾﺎن(‬ ‫1‬ ‫1- 1‬ ‫1‪ F‬و 1‬ ‫2‪F‬‬ ‫1‪ F‬و 2‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫2- 1‪ F‬و 2‪ F‬را ﭼﺎپ ﮐﻦ.‬ ‫3-2‪F1+F‬‬ ‫3‪F‬‬ ‫2‪F1+F‬‬ ‫4- 3‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫5- 2‪F‬‬ ‫2‪F‬‬ ‫2‪F‬‬ ‫8- ‪ ANS‬را ﺑﺨﻮان‬ ‫9- اﮔﺮ ‪ ANS=YES‬اﺳﺖ، ﺑﺮو ﺑﻪ 3.‬ ‫1‪F‬‬ ‫3‪F‬‬ ‫7- ﭼﺎپ ﮐﻦ »آﯾﺎ اداﻣﻪ ﯾﺎﺑﺪ؟«‬ ‫2‪F‬‬ ‫ﭼﺎپ ﮐﻦ »آﯾﺎ اداﻣﻪ ﯾﺎﺑﺪ؟«‬ ‫01- ﭘﺎﯾﺎن‬ ‫‪ ANS‬را ﺑﺨﻮان‬ ‫ﭘﺎﯾﺎن‬ ‫34‬ ‫3‪F‬‬ ‫3‪ F‬را ﭼﺎپ ﮐﻦ‬ ‫1‪F‬‬ ‫6- 3‪F‬‬ ‫2‪F‬‬ ‫ﺑﻠﯽ‬ ‫ﺧﯿﺮ‬ ‫‪ANS=YES‬‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ دو ﻋﺪد ‪ A‬و ‪ B‬را درﯾﺎﻓﺖ ﻧﻤﻮده، اﻋﺪاد زوج ﺑﯿﻦ آﻧﻬﺎ را ﭼﺎپ‬ ‫ﮐﻨﺪ.‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫1- ‪ A‬و ‪ B‬را ﺑﺨﻮان.‬ ‫2- اﮔﺮ ‪ A>B‬آﻧﮕﺎه‬ ‫‪B‬‬ ‫‪TEMP‬‬ ‫‪B‬‬ ‫‪A‬‬ ‫‪TEMP‬‬ ‫‪ A‬و ‪ :B‬اﻋﺪاد ورودي‬ ‫‪A‬‬ ‫3- اﮔﺮ ‪ A/2*2A‬آﻧﮕﺎه 1+‪A‬‬ ‫وﮔﺮﻧﻪ 2+‪A‬‬ ‫‪A‬‬ ‫‪A‬‬ ‫4- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ A<B‬دﺳﺘﻮرات 5 ﺗﺎ 6 را اﺟﺮا ﮐﻦ.‬ ‫5- ‪ A‬را ﭼﺎپ ﮐﻦ.‬ ‫6- 2+‪A‬‬ ‫7- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫8- ﭘﺎﯾﺎن‬ ‫44‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪A‬‬ ‫‪ :TEMP‬ﻣﺘﻐﯿﺮ ﮐﻤﮑﯽ‬ ‫ﺷﺮوع‬ ‫‪G‬‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫ﺧﯿﺮ‬ ‫‪ A‬و ‪ B‬را ﺑﺨﻮان‬ ‫‪A<B‬‬ ‫ﺑﻠﯽ‬ ‫ﺑﻠﯽ‬ ‫ﭘﺎﯾﺎن‬ ‫‪ A‬را ﭼﺎپ ﮐﻦ‬ ‫‪B‬‬ ‫2+‪A‬‬ ‫‪A>B‬‬ ‫‪TEMP‬‬ ‫‪A‬‬ ‫‪A‬‬ ‫ﺧﯿﺮ‬ ‫‪TEMP‬‬ ‫‪B‬‬ ‫‪A‬‬ ‫ﺑﻠﯽ‬ ‫1+‪A‬‬ ‫ﺧﯿﺮ‬ ‫‪A/2*2A‬‬ ‫2+‪A‬‬ ‫‪A‬‬ ‫‪G‬‬ ‫54‬ ‫‪A‬‬ ‫1- ‪ A‬و ‪ B‬را ﺑﺨﻮان.‬ ‫2- اﮔﺮ ‪ A>B‬آﻧﮕﺎه‬ ‫ﺑﺮرﺳﯽ درﺳﺘﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫‪B‬‬ ‫ﺷﻤﺎره دﺳﺘﻮر‬ ‫1‬ ‫‪TEMP‬‬ ‫3‬ ‫‪A‬‬ ‫وﮔﺮﻧﻪ 2+‪A‬‬ ‫‪A‬‬ ‫‪A‬‬ ‫4- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ A<B‬دﺳﺘﻮرات 5 ﺗﺎ 6 را اﺟﺮا ﮐﻦ.‬ ‫5- ‪ A‬را ﭼﺎپ ﮐﻦ.‬ ‫8- ﭘﺎﯾﺎن‬ ‫‪A‬‬ ‫5‬ ‫6‬ ‫8-‬ ‫6-‬ ‫7‬ ‫4‬ ‫5‬ ‫6‬ ‫6-‬ ‫4-‬ ‫7‬ ‫4‬ ‫5‬ ‫6‬ ‫7‬ ‫4‬ ‫8‬ ‫64‬ ‫8-‬ ‫4‬ ‫3- اﮔﺮ ‪ A/2*2A‬آﻧﮕﺎه 1+‪A‬‬ ‫7- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫01-‬ ‫3-‬ ‫2‬ ‫‪B‬‬ ‫‪A‬‬ ‫‪TEMP‬‬ ‫6- 2+‪A‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫ﺧﺮوﺟﯽ‬ ‫4-‬ ‫2-‬ ‫1- ‪ A‬و ‪ B‬را ﺑﺨﻮان.‬ ‫2- اﮔﺮ ‪ A>B‬آﻧﮕﺎه‬ ‫ﺑﺮرﺳﯽ درﺳﺘﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫‪B‬‬ ‫74‬ ‫ﺷﻤﺎره دﺳﺘﻮر‬ ‫1‬ ‫‪A‬‬ ‫‪A‬‬ ‫‪A‬‬ ‫4- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ A<B‬دﺳﺘﻮرات 5 ﺗﺎ 6 را اﺟﺮا ﮐﻦ.‬ ‫5- ‪ A‬را ﭼﺎپ ﮐﻦ.‬ ‫6- 2+‪A‬‬ ‫7- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫8- ﭘﺎﯾﺎن‬ ‫‪A‬‬ ‫0‬ ‫4‬ ‫3- اﮔﺮ ‪ A/2*2A‬آﻧﮕﺎه 1+‪A‬‬ ‫وﮔﺮﻧﻪ 2+‪A‬‬ ‫2-‬ ‫3‬ ‫3‬ ‫‪B‬‬ ‫‪A‬‬ ‫‪TEMP‬‬ ‫3‬ ‫2-‬ ‫2‬ ‫‪TEMP‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫ﺧﺮوﺟﯽ‬ ‫5‬ ‫6‬ ‫0‬ ‫2‬ ‫7‬ ‫4 ‫5‬ ‫6‬ ‫7‬ ‫4‬ ‫8‬ ‫2‬ ‫4‬ ‫1- ‪ A‬و ‪ B‬را ﺑﺨﻮان.‬ ‫ﺷﻤﺎره دﺳﺘﻮر‬ ‫1‬ ‫2- اﮔﺮ ‪ A>B‬آﻧﮕﺎه‬ ‫ﺑﺮرﺳﯽ درﺳﺘﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫‪B‬‬ ‫4‬ ‫‪A‬‬ ‫8‬ ‫3- اﮔﺮ ‪ A/2*2A‬آﻧﮕﺎه 1+‪A‬‬ ‫وﮔﺮﻧﻪ 2+‪A‬‬ ‫‪A‬‬ ‫‪A‬‬ ‫4- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ A<B‬دﺳﺘﻮرات 5 ﺗﺎ 6 را اﺟﺮا ﮐﻦ.‬ ‫5- ‪ A‬را ﭼﺎپ ﮐﻦ.‬ ‫8- ﭘﺎﯾﺎن‬ ‫84‬ ‫3‬ ‫‪B‬‬ ‫‪A‬‬ ‫‪TEMP‬‬ ‫7- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫3‬ ‫4‬ ‫2‬ ‫‪TEMP‬‬ ‫6- 2+‪A‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪A‬‬ ‫4‬ ‫ﺧﺮوﺟﯽ‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ ﯾﮏ ﻋﺪد در ﻣﺒﻨﺎي 01 ﺧﻮاﻧﺪه، آن را ﺑﻪ ﻣﺒﻨﺎي 2 ﺑﺒﺮد.‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫1- 0‬ ‫‪ S‬و0‬ ‫2- ‪ N‬را ﺑﺨﻮان.‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 0‪ N‬اﺳﺖ، دﺳﺘﻮرات 4 ﺗﺎ 8 را ﺗﮑﺮار ﮐﻦ.‬ ‫4- 2/‪N‬‬ ‫5- 2*‪N-M‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :S‬ﻋﺪد در ﻣﺒﻨﺎي 2‬ ‫‪M‬‬ ‫‪ :I‬ﺷﻤﺎرﻧﺪه‬ ‫‪R‬‬ ‫6- اﮔﺮ 0 ‪ I ‬اﺳﺖ آﻧﮕﺎه 01*‪P‬‬ ‫7- ‪S+R*P‬‬ ‫‪S‬‬ ‫8- 1+‪I‬‬ ‫9- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫‪I‬و‪M‬‬ ‫01- ‪ S‬را ﭼﺎپ ﮐﻦ.‬ ‫11- ﭘﺎﯾﺎن‬ ‫94‬ ‫‪I‬و1‬ ‫‪P‬‬ ‫‪N‬‬ ‫‪P‬‬ ‫‪ :P‬ﺗﻮان 01‬ ‫‪ :N‬ﻋﺪد در ﻣﺒﻨﺎي 01‬ ‫‪ :M‬ﺧﺎرج ﻗﺴﻤﺖ ﺗﻘﺴﯿﻢ ﺑﺮ 2‬ ‫‪ :R‬ﺑﺎﻗﯿﻤﺎﻧﺪه‬ ‫ﺷﺮوع‬ ‫ﺑﺮرﺳﯽ ﭼﻨﺪ اﻟﮕﻮرﯾﺘﻢ ﺗﮑﺮار‬ ‫0‬ ‫‪S‬و 0‬ ‫‪I‬و 1‬ ‫‪ N‬را ﺑﺨﻮان‬ ‫ﺧﯿﺮ‬ ‫0‪N‬‬ ‫‪M‬‬ ‫1+‪I‬‬ ‫ﺑﻠﯽ‬ ‫‪N‬‬ ‫2/‪N‬‬ ‫‪I‬‬ ‫2*‪N-M‬‬ ‫‪S+R*P‬‬ ‫‪S‬‬ ‫‪R‬‬ ‫ﺑﻠﯽ‬ ‫01*‪P‬‬ ‫‪P‬‬ ‫‪ S‬را ﭼﺎپ ﮐﻦ‬ ‫‪M‬‬ ‫0‪I‬‬ ‫05‬ ‫‪P‬‬ ‫ﺧﯿﺮ‬ ‫ﭘﺎﯾﺎن‬ ‫‪ S‬و0‬ ‫• 1- 0‬ ‫‪I‬و1‬ ‫‪P‬‬ ‫1‬ ‫2- ‪ N‬را ﺑﺨﻮان.‬ ‫ﺑﺮرﺳﯽ درﺳﺘﯽ اﻟﮕﻮرﯾﺘﻢ‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 0‪ N‬اﺳﺖ، دﺳﺘﻮرات 4 ﺗﺎ 8 را ﺗﮑﺮار ﮐﻦ.‬ ‫4- 2/‪N‬‬ ‫5- 2*‪N-M‬‬ ‫‪M‬‬ ‫0‬ ‫0‬ ‫2‬ ‫3‬ ‫3‬ ‫‪R‬‬ ‫7- ‪S+R*P‬‬ ‫‪S‬‬ ‫8- 1+‪I‬‬ ‫9- ﭘﺎﯾﺎن ﺣﻠﻘﻪ‬ ‫‪I‬و‪M‬‬ ‫01- ‪ S‬را ﭼﺎپ ﮐﻦ.‬ ‫1‬ ‫5‬ ‫‪P‬‬ ‫1‬ ‫6‬ ‫7‬ ‫1‬ ‫8‬ ‫‪N‬‬ ‫1‬ ‫1‬ ‫9‬ ‫3‬ ‫4‬ ‫0‬ ‫5‬ ‫1‬ ‫6‬ ‫7‬ ‫8‬ ‫9‬ ‫3‬ ‫01‬ ‫15‬ ‫1‬ ‫4‬ ‫6- اﮔﺮ 0 ‪ I ‬اﺳﺖ آﻧﮕﺎه 01*‪P‬‬ ‫11- ﭘﺎﯾﺎن‬ ‫ﺷﻤﺎره دﺳﺘﻮر‬ ‫‪S‬‬ ‫‪I‬‬ ‫‪N‬‬ ‫‪M‬‬ ‫‪R‬‬ ‫‪P‬‬ ‫01‬ ‫11‬ ‫2‬ ‫0‬ ‫• ﺑﺎزاي ﻫﺮ ﺣﻠﻘﮥ ﺗﮑﺮار ﺷﻤﺎرﻧﺪة ﺟﺪاﮔﺎﻧﻪ اي اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار ﺗﻮ در ﺗﻮ‬ ‫• در اﺟﺮاي ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار ﺗﻮ در ﺗﻮ ﺑﺎزاي ﻫﺮ ﺑﺎر اﺟﺮاي ﺣﻠﻘﻪ ﺑﯿﺮوﻧﯽ، ﺣﻠﻘﻪ ﺗﮑﺮار‬ ‫دروﻧﯽ ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ اﺟﺮا ﻣﯽ ﺷﻮد.‬ ‫• ﻣﺜﺎل:‬ ‫5- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 01<‪ M‬اﺳﺖ، دﺳﺘﻮرات 6 ﺗﺎ 21 را اﺟﺮا ﮐﻦ.‬ ‫6- ...‬ ‫7- 1‬ ‫‪N‬‬ ‫8- ﺗﺎ زﻣﺎﻧﯿﮑﻪ 5<‪ N‬اﺳﺖ، دﺳﺘﻮرات 9 ﺗﺎ 01 را اﺟﺮا ﮐﻦ.‬ ‫9- ...‬ ‫01- 1+‪N‬‬ ‫‪N‬‬ ‫11- ﭘﺎﯾﺎن ﺣﻠﻘﻪ 5<‪N‬‬ ‫21- 1+‪M‬‬ ‫‪M‬‬ ‫31- ﭘﺎﯾﺎن ﺣﻠﻘﻪ 01<‪M‬‬ ‫25‬ ‫• ﻣﺜﺎل: اﻟﮕﻮرﯾﺘﻤﯽ ﮐﻪ اﻋﺪاد اول ﮐﻮﭼﮑﺘﺮ از ﯾﮏ ﻋﺪد ورودي )‪ (N‬را ﺑﺮ اﺳﺎس ﺗﻌﺪاد‬ ‫ﻣﻘﺴﻮم ﻋﻠﯿﻪ ﻫﺎ ﺗﺸﺨﯿﺺ ﻣﯽ دﻫﺪ و ﭼﺎپ ﻣﯽ ﮐﻨﺪ.‬ ‫1- 1‬ ‫‪I‬‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار ﺗﻮ در ﺗﻮ‬ ‫2- ‪ N‬را ﺑﺨﻮان.‬ ‫3- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ I<=N‬اﺳﺖ، دﺳﺘﻮرات 4 ﺗﺎ 11 را ﺗﮑﺮار ﮐﻦ.‬ ‫4- 1‬ ‫‪ J‬و0‬ ‫‪K‬‬ ‫5- ﺗﺎ زﻣﺎﻧﯿﮑﻪ ‪ J<=I‬اﺳﺖ، دﺳﺘﻮرات 6 ﺗﺎ 8 را ﺗﮑﺮار ﮐﻦ.‬ ‫6- ‪I-(I/J)*J‬‬ ‫‪R‬‬ ‫7- اﮔﺮ 0=‪ R‬آﻧﮕﺎه 1+‪K‬‬ ‫8- 1+‪J‬‬ ‫‪J‬‬ ‫9- ﭘﺎﯾﺎن ﺣﻠﻘﻪ ‪J<=I‬‬ ‫01- اﮔﺮ 2=‪ K‬آﻧﮕﺎه ﭼﺎپ ﮐﻦ ‪ I‬اول اﺳﺖ.‬ ‫11- 1+‪I‬‬ ‫‪I‬‬ ‫21- ﭘﺎﯾﺎن ﺣﻠﻘﮥ ‪I<=N‬‬ ‫31- ﭘﺎﯾﺎن‬ ‫35‬ ‫‪K‬‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫‪ :I‬ﺷﻤﺎرﻧﺪه اﻋﺪاد‬ ‫‪ :N‬ﻋﺪد ﻣﻮرد ﻧﻈﺮ‬ ‫‪ :K‬ﺗﻌﺪاد ﻣﻘﺴﻮم ﻋﻠﯿﻪ ﻫﺎي ﻋﺪد‬ ‫‪ :J‬ﺷﻤﺎرﻧﺪة ﻋﻤﻞ ﺗﻘﺴﯿﻢ‬ ‫‪ :R‬ﺑﺎﻗﯿﻤﺎﻧﺪه ﺗﻘﺴﯿﻢ‬ ‫ﺷﺮوع‬ ‫1‬ ‫‪I‬‬ ‫‪ N‬را ﺑﺨﻮان‬ ‫ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار ﺗﻮ در ﺗﻮ‬ ‫‪A‬‬ ‫ﺧﯿﺮ‬ ‫‪I<=N‬‬ ‫ﺑﻠﯽ‬ ‫1‬ ‫‪B‬‬ ‫ﺑﻠﯽ‬ ‫‪J<=I‬‬ ‫‪I-(I/J)*J‬‬ ‫ﺑﻠﯽ‬ ‫1+‪K‬‬ ‫‪R‬‬ ‫ﺧﯿﺮ‬ ‫ﺑﻠﯽ‬ ‫ﺧﯿﺮ‬ ‫2=‪K‬‬ ‫‪ I‬را ﭼﺎپ ﮐﻦ‬ ‫‪K‬‬ ‫‪B‬‬ ‫‪K‬‬ ‫ﺧﯿﺮ‬ ‫0=‪R‬‬ ‫1+‪J‬‬ ‫45‬ ‫‪J‬و0‬ ‫ﭘﺎﯾﺎن‬ ‫‪J‬‬ ‫‪I‬‬ ‫1+‪I‬‬ ‫‪A‬‬ ‫دﺳﺘﻪ ﺑﻨﺪي زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ‬ ‫زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ‬ ‫ﺳﻄﺢ زﺑﺎن:‬ ‫– ﺳﻄﺢ ﭘﺎﯾﯿﻦ: )‪(Macro-Assembler, Assembler‬‬ ‫• دﺳﺘﺮﺳﯽ ﻣﺴﺘﻘﯿﻢ ﺑﻪ ﺣﺎﻓﻈﻪ )زﺑﺎن ﻣﺎﺷﯿﻦ(‬ ‫• ﮐﺎر ﮐﺮدن ﺑﺎ ﻣﻔﺎﻫﯿﻢ ﺑﯿﺖ، ﺑﺎﯾﺖ و آدرس )ﺑﺎ اﺳﺘﻔﺎده از ﻣﻔﻬﻮم ﺑﺎﯾﻨﺮي(‬ ‫– 0010 0000 0000 0100‬ ‫– 1010 0000 0000 0001‬ ‫– ﺳﻄﺢ ﻣﯿﺎﻧﯽ: )++‪(Java, Forth, C, C‬‬ ‫– ﺳﻄﺢ ﺑﺎﻻ: )‪(P...
View Full Document

{[ snackBarMessage ]}