0% found this document useful (0 votes)
7 views

Algorithm

Uploaded by

amir3837com
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Algorithm

Uploaded by

amir3837com
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

‫اﻟﮕﻮرﻳﺘﻢ و ﻓﻠﻮﭼﺎرت‬

‫• در زﻧﺪﮔﻲ روزﻣﺮه‪ ،‬اﻧﺴﺎن ﺑﺎ ﻣﺴﺎﺋﻞ ﻣﺨﺘﻠﻔﻲ روﺑﺮوﺳﺖ و ﺑﺮاي ﻫﺮ ﻛﺪام از اﻳﻦ‬


‫ﻣﺴﺎﺋﻞ )ﺣﻞ ﻣﺸﻜﻼت( راه ﺣﻠﻲ و روﺷﻲ را ﺑﺮ ﻣﻲﮔﺰﻳﻨﺪ‪ .‬ﻣﺴﺎﺋﻠﻲ از ﻗﺒﻴﻞ راه رﻓﺘﻦ‪،‬‬
‫ﻏﺬا ﺧﻮردن‪ ،‬ﺧﻮاﺑﻴﺪن و ﻏﻴﺮه ﻛﻪ ﺑﺸﺮ ﺗﻘﺮﻳﺒﺎً ﻫﺮ روز آﻧﻬﺎ را ﭘﻴﺶ روي ﺧﻮد دارد‪.‬‬

‫• ﻫﻤﻪ اﻳﻦ ﻣﺴﺎﺋﻞ ﻧﻴﺎز ﺑﻪ روﺷﻲ ﺑﺮاي ﺣﻞ ﻛﺮدن دارﻧﺪ ﻣﺜﻼ راه رﻓﺘﻦ ﺑﺎﻳﺪ ﺑﺎ ﺗﺮﺗﻴـﺐ‬
‫ﺧﺎﺻﻲ و ﻣﺮاﺣﻞ ﻣﻌﻴﻨﻲ اﻧﺠﺎم ﺷﻮد ﺗـﺎ ﻣﺴـﺌﻠﻪ راه رﻓـﺘﻦ ﺑـﺮاي ﺑﺸـﺮ ﺣـﻞ ﺷـﻮد‪.‬‬
‫اﺻﻄﻼﺣﺎً ﺑﻪ اﻳﻦ ﻣﺮاﺣﻞ ﻗﺪم ﺑﻪ ﻗـﺪم ﺑـﺮاي ﺣـﻞ ﻣﺴـﺌﻠﻪ را اﻟﮕـﻮرﻳﺘﻢ آن ﻣﺴـﺌﻠﻪ‬
‫ﻣﻲﻧﺎﻣﻨﺪ‬

‫• ﻛﻠﻤﻪ اﻟﮕﻮرﻳﺘﻢ از ﻧﺎم داﻧﺸﻤﻨﺪ ﭘﺮآوازه اﻳﺮاﻧﻲ ﺑﻪ ﻧﺎم اﻟﺨﻮارزﻣﻲ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ‪.‬‬

‫‪1‬‬
‫اﻟﮕﻮرﻳﺘﻢ و ﻓﻠﻮﭼﺎرت‬
‫• ﺷﻨﺎﺧﺖ ﻣﺴﺌﻠﻪ‬
‫– ﺑﺮرﺳﻲ داده ﻫﺎ و ﻳﺎ ﻣﻌﻠﻮﻣﺎت)ورودﻳﻬﺎ(‪ ،‬ﻣﺠﻬﻮﻻت )ﺧﺮوﺟﻴﻬﺎ( و ﻳﺎﻓﺘﻦ ارﺗﺒﺎط‬
‫ﻣﻨﻄﻘﻲ ﺑﻴﻦ داده ﻫﺎ و ﻣﺠﻬﻮﻻت )ﺗﺤﻠﻴﻞ راه ﺣﻞ(‬

‫– ﻣﺜﺎل ‪ :‬ﻳﺎﻓﺘﻦ ﻣﺴﺎﺣﺖ ﻳﻚ ﻣﺜﻠﺚ ﺑﺎ داﺷﺘﻦ اﻧﺪازه ﻗﺎﻋﺪه و ارﺗﻔﺎع آن‬


‫• داده ﻫﺎ )ورودي(‬
‫– اﻧﺪازه ارﺗﻔﺎع و ﻗﺎﻋﺪه ﻣﺜﻠﺚ‬
‫• ﻣﺠﻬﻮﻻت )ﺧﺮوﺟﻲ(‬
‫– ﻣﺴﺎﺣﺖ ﻣﺜﻠﺚ‬
‫• راﺑﻄﻪ ﻣﻨﻄﻘﻲ ‪:‬‬
‫– روش ﻣﺤﺎﺳﺒﻪ ﻣﺴﺎﺣﺖ ﻣﺜﻠﺚ )ارﺗﻔﺎع ‪ x‬ﻗﺎﻋﺪه ‪(2/1x‬‬
‫– اﻏﻠﺐ‪ ،‬ﻣﺴﺎﺋﻞ داراي راه ﺣﻠﻬﺎي ﮔﻮﻧﺎﮔﻮﻧﻲ ﻣﻲ ﺑﺎﺷﻨﺪ‪ ،‬ﻳﺎﻓﺘﻦ ﺑﻬﺘﺮﻳﻦ راه ﺣﻞ ﺑﻪ‬
‫اﺑﺘﻜﺎر‪ ،‬ﺗﻤﺮﻳﻦ و از ﻫﻤﻪ ﻣﻬﻤﺘﺮ ﺗﺠﺮﺑﻪ ﺑﺴﺘﮕﻲ دارد‪.‬‬

‫‪2‬‬
‫ﺗﻌﺮﻳﻒ اﻟﮕﻮرﻳﺘﻢ‬
‫• ﺗﻌﺪادي دﺳﺘﻮراﻟﻌﻤﻞ ﭘﺸﺖ ﺳﺮﻫﻢ ﻛﻪ ﻣﺮاﺣﻞ ﻣﺨﺘﻠﻒ ﻛﺎري را‬
‫ﺑﺎ زﺑﺎﻧﻲ دﻗﻴﻖ و ﺑﺎ ﺟﺰﺋﻴﺎت ﻛﺎﻓﻲ ﺑﻴﺎن ﻧﻤﺎﻳﺪ ﺑﻄﻮرﻳﻜﻪ ﺗﺮﺗﻴﺐ‬
‫ﻣﺮاﺣﻞ و ﺧﺎﺗﻤﻪ ﭘﺬﻳﺮ ﺑﻮدن ﻋﻤﻠﻴﺎت در آن ﻛﺎﻣﻼ“ ﻣﺸﺨﺺ‬
‫ﺷﺪه ﺑﺎﺷﺪ را اﻟﮕﻮرﻳﺘﻢ ﮔﻮﻳﻨﺪ‪.‬‬

‫‪3‬‬
‫ﻣﺮاﺣﻞ اﻟﮕﻮرﻳﺘﻢ‬
‫ﺑﺮاي ﺣﻞ ﻳﻚ ﻣﺴﺌﻠﻪ ﺑﺎﻳﺪ اﻟﮕﻮرﻳﺘﻢ آن ﻣﺴﺌﻠﻪ را ﻣﺸـﺨﺺ ﻛﻨـﻴﻢ‬
‫)ﻳﺎ ﺑﻴﺎﺑﻴﻢ(‪ .‬ﻛﻪ اﺻﻄﻼﺣﺎً ﻃﺮاﺣـﻲ اﻟﮕـﻮرﻳﺘﻢ ﺑـﺮاي آن ﻣﺴـﺌﻠﻪ‬
‫ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد‪ .‬در ﻃﺮاﺣﻲ اﻟﮕﻮرﻳﺘﻢ ﻣﻌﻤﻮﻻً ﺳﻪ ﻣﺮﺣﻠﻪ زﻳـﺮ را‬
‫از ﻫﻢ ﺟﺪا ﻣﻲﻛﻨﻨﺪ‪:‬‬
‫– ﺧﻮاﻧﺪن دادهﻫﺎ‬
‫– اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت‬
‫– ﺧﺮوﺟﻲﻫﺎ‬

‫‪4‬‬
‫ﻣﺠﺮي اﻟﮕﻮرﻳﺘﻢ‬
‫• اﻟﮕﻮرﻳﺘﻢ ﻫﺎ ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﻪ دو ﺻﻮرت اﻧﺠﺎم ﺷﻮﻧﺪ‬
‫– ﺗﻮﺳﻂ ﻣﺎﺷﻴﻦ )ﻛﺎﻣﭙﻴﻮﺗﺮ(‬
‫• ﺑﻌﺪ از ﺗﺒﺪﻳﻞ ﺷﺪن ﺑﻪ زﺑﺎن ﻣﻨﺎﺳﺐ ﺑﺮاي ﻣﺎﺷﻴﻦ ﺑﻄﻮر اﺗﻮﻣﺎﺗﻴﻚ ﺗﻮﺳﻂ‬
‫ﻣﺎﺷﻴﻦ ﻗﺎﺑﻞ اﺟﺮا ﻫﺴﺘﻨﺪ‪.‬‬
‫– ﺗﻮﺳﻂ اﻧﺴﺎن‬
‫• ﺑﺮاي ﺣﺼﻮل اﻃﻤﻴﻨﺎن از ﻋﻤﻠﻜﺮد ﺻﺤﻴﺢ اﻟﮕﻮرﻳﺘﻢ‪ ،‬ﮔﺎﻫﻲ ﺧﻮدﻣﺎن آن را‬
‫ﺑﺼﻮرت دﺳﺘﻲ دﻧﺒﺎل ﻧﻤﻮده و در واﻗﻊ ﺧﻮد ﻣﺠﺮي اﻟﮕﻮرﻳﺘﻢ ﻣﻲ ﺷﻮﻳﻢ‪.‬‬

‫‪5‬‬
‫ﻛﺎرﺑﺮد اﻟﮕﻮرﻳﺘﻢ‬
‫• ﻫﻤﻪ ﻣﺎ در ﻃﻲ روز ﺑﺮاي اﻧﺠﺎم ﻛﺎرﻫﺎي روزﻣﺮه از روش‬
‫اﻟﮕﻮرﻳﺘﻤﻲ) و ﻳﺎ ﻣﻨﻄﻘﻲ( اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﻢ‪.‬‬
‫– ﻣﺎﻧﻨﺪ ﻣﻄﺎﻟﻌﻪ ﻛﺘﺎب‬
‫– ﺗﻌﻮﻳﺾ ﭼﺮخ ﭘﻨﺠﺮ ﺷﺪه‬
‫– ﭘﺨﺘﻦ ﻏﺬا‬
‫– ﭘﺨﺘﻦ ﻛﻴﻚ و ‪....‬‬
‫• در واﻗﻊ ﺑﺮاي اﻧﺠﺎم ﻫﺮ ﻳﻚ از اﻳﻦ ﻛﺎرﻫﺎ‪ ،‬ﻻزم اﺳﺖ ﺗﻌﺪادي‬
‫دﺳﺘﻮراﻟﻌﻤﻠﻬﺎي ﺳﺎده ﺗﺮ را ﺑﻪ ﺗﺮﺗﻴﺐ ﻣﻨﺎﺳﺐ اﺟﺮاء ﻛﺮده ﺗﺎ ﺑﻪ‬
‫ﻧﺘﻴﺠﻪ ﻣﻄﻠﻮب ﺑﺮﺳﻴﻢ‪.‬‬

‫‪6‬‬
‫اﺟﺰاي اﺻﻠﻲ اﻟﮕﻮرﻳﺘﻢ‬
‫ﻫﺮ ﻣﺴﺎﻟﻪ راه ﺣﻞ و اﻟﮕﻮرﻳﺘﻢ ﺧﺎص ﺧﻮد را دارد‪.‬‬ ‫•‬
‫ﻣﻲ ﺗﻮان ﺑﺮاي ﺣﻞ ﻳﻚ ﻣﺴﺎﻟﻪ روﺷﻬﺎي ﮔﻮﻧﺎﮔﻮﻧﻲ را اراﺋﻪ داد‪.‬‬ ‫•‬
‫اﻣﺎ ﺗﻤﺎم اﻟﮕﻮرﻳﺘﻢ ﻫﺎ داراي اﻳﻦ اﺟﺰاء ﻫﺴﺘﻨﺪ‪:‬‬ ‫•‬
‫‪ .1‬ﻧﻘﻄﻪ ﺷﺮوع‪ :‬ﺣﻞ ﻣﺴﺎﻟﻪ از ﻛﺠﺎ آﻏﺎز ﻣﻲ ﮔﺮدد‬
‫ﻓﻘﻂ ﻳﻚ ﻧﻘﻄﻪ ﺷﺮوع در اﻟﮕﻮرﻳﺘﻢ وﺟﻮد دارد‬ ‫•‬
‫‪ .2‬ﻧﻘﻄﻪ ﭘﺎﻳﺎن‪ :‬ﺟﺎﻳﻲ ﻛﻪ ﻣﺮاﺣﻞ ﺣﻞ ﻣﺴﺎﻟﻪ ﭘﺎﻳﺎن ﻣﻲ ﭘﺬﻳﺮد‪.‬‬
‫ﺑﻪ ﻫﺮ ﺣﺎل اﻟﮕﻮرﻳﺘﻢ ﺑﺎﻳﺴﺘﻲ در ﻳﻚ ﻧﻘﻄﻪ ﺧﺎﺗﻤﻪ ﻳﺎﺑﺪ‪.‬‬ ‫•‬
‫ﻣﻲ ﺗﻮان ﭼﻨﺪﻳﻦ ﻧﻘﻄﻪ ﭘﺎﻳﺎن ﺑﺮاي اﻟﮕﻮرﻳﺘﻢ داﺷﺖ‪.‬‬ ‫•‬
‫‪ .3‬دﺳﺘﻮراﻟﻌﻤﻠﻬﺎ و ﻳﺎ ﺟﻤﻼت اﺟﺮاﻳﻲ‬

‫‪7‬‬
‫روﺷﻬﺎي ﺑﻴﺎن اﻟﮕﻮرﻳﺘﻢ‬
‫• اﻟﮕﻮرﻳﺘﻢ را ﻣﻲ ﺗﻮان ﺑﻪ ﺻﻮرﺗﻬﺎي ﻣﺨﺘﻠﻔﻲ ﺑﻴﺎن ﻛﺮد‪:‬‬
‫‪ .1‬ﺑﻴﺎن اﻟﮕﻮرﻳﺘﻢ ﺑﺎ ﺟﻤﻼت ﻓﺎرﺳﻲ‬

‫‪ .2‬ﺑﻴﺎن رﻳﺎﺿﻲ اﻟﮕﻮرﻳﺘﻢ‬

‫‪ .3‬ﺑﻴﺎن اﻟﮕﻮرﻳﺘﻢ ﺗﻮﺳﻂ ﺷﻜﻠﻬﺎ )ﻓﻠﻮﭼﺎرت(‬

‫‪8‬‬
‫ﻣﺘﻐﻴﺮ)‪(Variable‬‬
‫ﺑﻪ ﺧﺎﻧﻪ اي از ﺣﺎﻓﻈﻪ ﻛﻪ داده ﻫﺎ و اﻃﻼﻋﺎت ورودي ﻳﺎ ﺧﺮوﺟﻲ و ﻳﺎ اﻃﻼﻋﺎت‬ ‫•‬
‫ﻣﻮﻗﺖ را در ﺧﻮد ﻧﮕﻪ ﻣﻲ دارد ﻣﺘﻐﻴﺮ ﮔﻔﺘﻪ ﻣﻲ ﺷﻮد‪.‬‬
‫ﻣﻘﺪار ﻣﺘﻐﻴﺮ ﻣﻲ ﺗﻮاﻧﺪ در ﻃﻮل اﺟﺮاي اﻟﮕﻮرﻳﺘﻢ ﺗﻐﻴﻴﺮ داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬ ‫•‬
‫‪0‬‬

‫‪11100001‬‬
‫‪1‬‬
‫‪A‬‬
‫‪2‬‬

‫‪i‬‬
‫‪1 1 0 1 0 0 0 1‬‬

‫‪N‬‬

‫‪9‬‬
‫ﻣﺜﺎﻟﻲ از ﻳﻚ اﻟﮕﻮرﻳﺘﻢ‬
‫اﻟﮕﻮرﻳﺘﻢ ﻣﺤﺎﺳﺒﻪ و ﭼﺎپ ﻣﺠﻤﻮع دو ﻋﺪد ‪ 10‬و ‪20‬‬ ‫•‬
‫ﺷﺮوع‬ ‫‪.1‬‬
‫ﻋﺪد ‪ 10‬را در ﺧﺎﻧﻪ )ﻣﺘﻐﻴﺮ( ‪ A‬ﻗﺮار ﺑﺪه‬ ‫‪.2‬‬
‫ﻋﺪد ‪ 20‬را در ﺧﺎﻧﻪ ‪ B‬ﻗﺮار ﺑﺪه‬ ‫‪.3‬‬
‫ﻣﺤﺘﻮﻳﺎت ﺧﺎﻧﻪ ﻫﺎي ‪ A , B‬را ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻛﻦ و در ﺧﺎﻧﻪ ‪ C‬ﻗﺮار ﺑﺪه‬ ‫‪.4‬‬
‫ﻣﻘﺪار ﺧﺎﻧﻪ ‪ C‬را ﺑﻌﻨﻮان ﻧﺘﻴﺠﻪ ﭼﺎپ ﻛﻦ‬ ‫‪.5‬‬
‫ﭘﺎﻳﺎن‬ ‫‪.6‬‬

‫‪10‬‬
‫اﺳﺘﻔﺎده از ﺑﻴﺎن رﻳﺎﺿﻲ‬
‫• ﺑﻴﺎن اﻟﮕﻮرﻳﺘﻢ در ﻗﺎﻟﺐ ﺟﻤﻼت ﻧﻮﺷﺘﺎري ﻃﻮﻻﻧﻲ و ﻓﻬﻢ اﻟﮕﻮرﻳﺘﻢ‬
‫را دﺷﻮار ﻣﻲ ﺳﺎزد‪.‬‬
‫• اﻟﮕﻮرﻳﺘﻢ ﻣﺤﺎﺳﺒﻪ و ﭼﺎپ ﻣﺠﻤﻮع دو ﻋﺪد ‪ 10‬و ‪20‬‬
‫‪ .1‬ﺷﺮوع‬
‫‪A10‬‬ ‫‪.2‬‬
‫‪B20‬‬ ‫‪.3‬‬
‫‪C A+B‬‬ ‫‪.4‬‬
‫ﭼﺎپ ﻣﻘﺪار ‪C‬‬ ‫‪.5‬‬
‫ﭘﺎﻳﺎن‬ ‫‪.6‬‬
‫‪11‬‬
‫اﻧﻮاع ﺟﻤﻼت ﻣﻮرد اﺳﺘﻔﺎده در اﻟﮕﻮرﻳﺘﻢ ﻫﺎ‬
‫ﺟﻤﻼت ﺷﺮﻃﻲ‬ ‫•‬
‫ﺟﻤﻼت ﻋﻤﻠﻴﺎﺗﻲ ) ﻳﺎ ﻣﺤﺎﺳﺒﺎﺗﻲ(‬ ‫•‬
‫ﺟﻤﻼت ورودي ‪ /‬ﺧﺮوﺟﻲ‬ ‫•‬
‫ﺟﻤﻼت ﺗﻮﺿﻴﺤﻲ‬ ‫•‬

‫‪12‬‬
‫ﻣﺜﺎل‬
‫• اﻟﮕﻮرﻳﺘﻤﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ اﻋﺪاد زوج دو رﻗﻤﻲ را ﭼﺎپ‬
‫ﻛﻨﺪ‪.‬‬
‫)ﻣﻲ داﻧﻴﻢ ﻛﻪ ﻛﻮﭼﻜﺘﺮﻳﻦ ﻋﺪد زوج دو رﻗﻤﻲ ‪ 10‬و اﻋﺪاد زوج ﺑﻪ اﻧﺪازه ‪ 2‬واﺣﺪ از ﻫﻢ ﻓﺎﺻﻠﻪ دارﻧﺪ(‬

‫ﺷﺮوع‬ ‫‪.1‬‬
‫‪J  10‬‬ ‫‪.2‬‬
‫‪ J‬را ﭼﺎپ ﻛﻦ‬ ‫‪.3‬‬
‫‪JJ+2‬‬ ‫‪.4‬‬
‫اﮔﺮ ‪ J <=98‬اﺳﺖ آﻧﮕﺎه ﺑﻪ ﻣﺮﺣﻠﻪ ‪ 3‬ﺑﺮو‬ ‫‪.5‬‬
‫ﭘﺎﻳﺎن‬ ‫‪.6‬‬

‫‪13‬‬
‫ﻣﺜﺎل ‪ :‬اﻟﮕﻮرﻳﺘﻤﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ دو ﻋﺪد از ورودي درﻳﺎﻓﺖ ﻛﺮده ﻣﺠﻤﻮع دو ﻋﺪد را‬
‫ﻣﺤﺎﺳﺒﻪ و ﭼﺎپ ﻧﻤﺎﻳﺪ‪.‬‬

‫ورودﻳﻬﺎ‬ ‫اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت‬ ‫ﺧﺮوﺟﻲﻫﺎ‬

‫‪a , b‬‬ ‫ﺟﻤﻊ دو ﻋﺪد‬ ‫ﻣﺠﻤﻮع دو ﻋﺪد‬

‫‪1‬ـ ﺷﺮوع‬
‫‪2‬ـ ‪ b ,a‬را ﺑﺨﻮان‪.‬‬
‫‪3‬ـ ﻣﺠﻤﻮع ‪ b , a‬را ﻣﺤﺎﺳﺒﻪ و در ‪ sum‬ﻗﺮار ﺑﺪه‪.‬‬
‫‪4‬ـ ‪ sum‬را در ﺧﺮوﺟﻲ ﭼﺎپ ﻛﻦ‬
‫‪5‬ـ ﭘﺎﻳﺎن‬
‫‪14‬‬
‫ﻣﺜﺎل‪ :‬اﻟﮕﻮرﻳﺘﻤﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺳﻪ ﻋﺪد از ورودي درﻳﺎﻓﺖ ﻛﺮده ﻣﺠﻤﻮع وﻣﻴﺎﻧﮕﻴﻦ‬
‫ﺳﻪ ﻋﺪد را ﻣﺤﺎﺳﺒﻪ و ﭼﺎپ ﻛﻨﺪ‪.‬‬
‫ورودﻳﻬﺎ‬ ‫اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت‬ ‫ﺧﺮوﺟﻲﻫﺎ‬
‫‪a‬‬ ‫ﻣﺤﺎﺳﺒﻪ ﻣﺠﻤﻮع‬ ‫ﭼﺎپ ﻣﺠﻤﻮع‬
‫‪b ,c‬‬ ‫ﻣﺤﺎﺳﺒﻪ ﻣﻴﺎﻧﮕﻴﻦ‬ ‫ﭼﺎپ ﻣﻴﺎﻧﮕﻴﻦ‬

‫‪1‬ـ ﺷﺮوع‬
‫‪2‬ـ ﺳﻪ ﻋﺪد از ورودي ﺑﺨﻮان‬
‫‪3‬ـ ﻣﺠﻤﻮع ﺳﻪ ﻋﺪد را ﻣﺤﺎﺳﺒﻪ و در ‪ sum‬ﻗﺮار ﺑﺪه‪.‬‬
‫‪4‬ـ ‪ sum‬را ﺑﺮ ﺳﻪ ﺗﻘﺴﻴﻢ ﻛﺮده‪،‬در ‪ ave‬ﻗﺮار ﺑﺪه‪.‬‬
‫‪5‬ـ ‪ ave , sum‬را در ﺧﺮوﺟﻲ ﭼﺎپ ﻛﻦ‪.‬‬
‫‪6‬ـ ﭘﺎﻳﺎن‪.‬‬ ‫‪15‬‬
‫ﻣﺜﺎل‬
‫اﻟﮕﻮرﻳﺘﻤﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ اﻋﺪاد زوج از ‪ 1000‬ﺗﺎ ‪ 2000‬را ﺗﻮﻟﻴﺪ‬ ‫•‬
‫ﻛﺮده و ﻣﺠﻤﻮع آﻧﻬﺎ را ﻫﻢ ﻣﺤﺎﺳﺒﻪ ﻛﻨﺪ‪.‬‬
‫ﺷﺮوع‬ ‫‪.1‬‬
‫‪S 0 ، J  1000‬‬ ‫‪.2‬‬
‫‪ J‬را ﭼﺎپ ﻛﻦ و ‪S  S + J‬‬ ‫‪.3‬‬
‫‪JJ+2‬‬ ‫‪.4‬‬
‫اﮔﺮ ‪ J <= 2000‬اﺳﺖ آﻧﮕﺎه ﺑﻪ ﻣﺮﺣﻠﻪ ‪ 3‬ﺑﺮو در ﻏﻴﺮ اﻳﻨﺼﻮرت ﻣﻘﺪار ‪ S‬را ﭼﺎپ‬ ‫‪.5‬‬
‫ﻛﻦ‬
‫ﭘﺎﻳﺎن‬ ‫‪.6‬‬

‫‪16‬‬
‫ﻧﻜﺘﻪ‬
‫اﮔﺮ ﺑﺨﻮاﻫﻴﻢ ﻣﻘﺪار ﺣﺎﺻﻞ ﺟﻤﻌﻲ را ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﻢ )ﻣﺎﻧﻨﺪ ﻣﺜﺎل‬ ‫•‬
‫ﻗﺒﻞ ﻛﻪ ﻣﺠﻤﻮع اﻋﺪاد زوج از ‪ 1000‬ﺗﺎ ‪(2000‬‬
‫اﺑﺘﺪا ﻣﺘﻐﻴﺮي ) ﻣﺎﻧﻨﺪ ‪ (S‬در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ و ﻣﻘﺪار اوﻟﻴﻪ آن را ﺻﻔﺮ ﻣﻲ ﮔﺪارﻳﻢ )ﻳﻌﻨﻲ اﻳﻨﻜﻪ‬ ‫–‬
‫ﻫﻨﻮز ﻫﻴﭻ ﻣﺠﻤﻮﻋﻲ را ﺣﺴﺎب ﻧﻜﺮده اﻳﻢ( ‪S 0 ،‬‬
‫ﺳﭙﺲ ﺗﻚ ﺗﻚ ﺟﻤﻼﺗﻲ را ﻛﻪ ﻗﺮار اﺳﺖ ﺑﺎ ﻫﻢ ﺟﻤﻊ ﻛﻨﻴﻢ را ﺗﻮﻟﻴﺪ ﻛﺮده ) ﺑﺎ ﻛﻤﻚ ﻳﻚ ﻣﺘﻐﻴﺮ‬ ‫–‬
‫دﻳﮕﺮ‪ ،‬ﻣﺜﻼ ‪ J‬در ﻣﺜﺎل ﻗﺒﻠﻲ( و ﺑﺎ ﻣﺘﻐﻴﺮ ‪ S‬ﺟﻤﻊ ﻧﻤﻮده و ﺣﺎﺻﻞ را در ‪ S‬ﻗﺮار ﻣﻲ دﻫﻴﻢ ) در واﻗﻊ‬
‫ﻣﻘﺪار ﺟﺪﻳﺪ را ﺑﻪ ﺣﺎﺻﻞ ﻗﺒﻠﻲ ﻣﻲ اﻓﺰاﻳﻴﻢ – ﻣﺎﻧﻨﺪ اﻧﺒﺎره( ‪S  S + J ،‬‬
‫در ﻧﻬﺎﻳﺖ ﺣﺎﺻﻞ ﻣﺠﻤﻮع در اﻳﻦ ﻣﺘﻐﻴﺮ ‪ S‬ﻗﺮار ﻣﻲ ﮔﻴﺮد‪.‬‬ ‫–‬

‫‪S‬‬ ‫‪J‬‬

‫‪+‬‬

‫‪17‬‬
‫وﻳﮋﮔﻴﻬﺎي ﻳﻚ اﻟﮕﻮرﻳﺘﻢ ﺧﻮب‬
‫اﮔﺮ ﭼﻪ ﻳﻚ ﻣﺴﺎﻟﻪ راه ﺣﻠﻬﺎي ﻣﺨﺘﻠﻔﻲ دارد‪ ،‬ﻣﻬـﻢ ﻳﺎﻓﺘﻦ ﺑﻬﺘﺮﻳﻦ راه ﺣﻞ اﺳﺖ‬
‫• ﺳﺎدﮔﻲ‬
‫ﺣﺘﻲ اﻻﻣﻜﺎن ﺳﺎده و ﻋﺎري از اﺑﻬﺎم و ﭘﻴﭽﻴﺪﮔﻲ ﺑﺎﺷﺪ‪.‬‬ ‫–‬
‫در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺗﻤﺎم ﺣﺎﻻت ﺧﺎص‬ ‫•‬
‫اﻟﮕﻮرﻳﺘﻢ ﺑﺘﻮاﻧﺪ در ﺑﺮاﺑﺮ ﺣﺎﻻت و ﺷﺮاﻳﻂ ﻣﺨﺘﻠﻒ ﭘﺎﺳﺦ و ﺟﻮاب ﻣﻨﺎﺳﺒﻲ اراﺋﻪ‬ ‫–‬
‫دﻫﺪ‪.‬‬
‫ﺑﻄﻮر ﻣﺜﺎل ﻫﻨﮕﺎم ﺣﻞ ﻣﻌﺎدﻟﻪ درﺟﻪ دوم ﺣﺎﻟﺘﻬﺎي ﻣﻨﻔﻲ زﻳﺮ رادﻳﻜﺎل را در ﻧﻈﺮ‬ ‫–‬
‫ﺑﮕﻴﺮد‪.‬‬
‫روان ﺑﻮدن ﻣﺘـﻦ اﻟﮕﻮرﻳﺘﻢ‬ ‫•‬
‫دﺳﺘﻮراﻟﻌﻤﻠﻬﺎ ﮔﻮﻳﺎ ﺑﻮده و ﻣﻨﻈﻮر آﻧﻬﺎ ﺑﺴﺎدﮔﻲ درك ﺷﻮد‪.‬‬ ‫–‬
‫ﺣﺪاﻗﻞ ﺑﻮدن ﺗﻌﺪاد دﺳﺘﻮرات و ﺟﻤﻼت‬ ‫•‬
‫‪18‬‬
‫اﻳﺠﺎد ﺣﻠﻘﻪ ﻫﺎي ﺗﻜﺮار)‪(Loops‬‬
‫ﮔﺎﻫﻲ اوﻗﺎت ﺑﺮاي ﺣﻞ ﻣﺴﺎﻟﻪ ﺑﺎﻳﺪ ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻣﺮﺣﻠﻪ از دﺳﺘﻮرات را ﺗﻜﺮار ﻧﻤﻮد‪.‬‬ ‫•‬
‫ﺑﻪ ﻣﺮاﺣﻠﻲ از اﻟﮕﻮرﻳﺘﻢ ﻛﻪ اﺟﺮاي آﻧﻬﺎ ﭼﻨﺪﻳﻦ ﺑﺎر ﺗﻜﺮار ﻣﻲ ﺷﻮد ﺣﻠﻘﻪ )‪ (Loop‬و ﻳﺎ ﺣﻠﻘﻪ ﺗﻜﺮار ﮔﻔﺘﻪ‬ ‫•‬
‫ﻣﻲ ﺷﻮد‬
‫ﺑﻄﻮر ﻛﻠﻲ ﺣﻠﻘﻪ ﻫﺎي ﺗﻜﺮار از اﺟﺰاي زﻳﺮ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ‪:‬‬ ‫•‬
‫ﺷﻤﺎرﻧﺪه ﺣﻠﻘﻪ )‪(Counter‬‬ ‫–‬
‫ﻳﻚ ﻣﺘﻐﻴﺮ ﻛﻤﻜﻲ ﻛﻪ ﭘﻴﺶ از ﺷﺮوع ﺣﻠﻘﻪ ﺑﻪ آن ﻣﻘﺪار اوﻟﻴﻪ داده ﻣﻲ ﺷﻮد‬ ‫•‬
‫از ﻃﺮﻳﻖ آن ﻣﻲ ﺗﻮان ﺗﻌﺪاد دﻓﻌﺎت ﺗﻜﺮار ﺣﻠﻘﻪ را ﻧﺸﺎن داد‪.‬‬ ‫•‬
‫ﮔﺎم اﻓﺰاﻳﺶ )‪(Step‬‬ ‫–‬
‫ﻣﻘﺪاري ﻛﻪ ﭘﺲ از ﻫﺮ ﺑﺎر ﻣﺮاﺣﻞ ﺣﻠﻘﻪ ﺑﻪ ﺷﻤﺎرﻧﺪه اﺿﺎﻓﻪ ﻣﻲ ﺷﻮد‪.‬‬ ‫•‬
‫ﺷﺮط ﭘﺎﻳﺎﻧﻲ‬ ‫–‬
‫ﻣﻘﺪار و ﻳﺎ ﻣﺘﻐﻴﺮي اﺳﺖ ﻛﻪ ﭘﺲ از اﺟﺮاي دﺳﺘﻮرات ﺣﻠﻘﻪ ﺑﺎ ﺷﻤﺎرﻧﺪه ﺣﻠﻘﻪ ﻣﻘﺎﻳﺴﻪ ﻣﻲ‬ ‫•‬
‫ﮔﺮدد و زﻣﺎن ﭘﺎﻳﺎن اﺟﺮاي دﺳﺘﻮرات ﺣﻠﻘﻪ را ﻣﺸﺨﺺ ﻣﻲ ﺳﺎزد‪.‬‬
‫ﺑﺪﻧﻪ ﺣﻠﻘﻪ‬ ‫–‬
‫دﺳﺘﻮراﻟﻌﻤﻠﻬﺎ و ﺟﻤﻼﺗﻲ ﻛﻪ ﻋﻤﻠﻴﺎت اﺻﻠﻲ ﺣﻠﻘﻪ را ﺗﺸﻜﻴﻞ ﻣﻲ دﻫﻨﺪ‪.‬‬ ‫•‬
‫‪19‬‬
‫ﻓﻠﻮﭼﺎرت)‪ (Flowchart‬ﻳﺎ ﻧﻤﻮدار ﮔﺮدﺷﻲ‬
‫ﻓﻠﻮﭼﺎرت‪ ،‬ﺑﻴﺎن ﺗﺼﻮﻳﺮي اﻟﮕﻮرﻳﺘﻢ ﺑﺎ ﻛﻤﻚ ﻣﺠﻤﻮﻋﻪ اي اﺳﺘﺎﻧﺪارد از‬ ‫•‬
‫اﺷﻜﺎل ﺳﺎده ﻣﻲ ﺑﺎﺷﺪ‬
‫ﻓﻠﻮﭼﺎرت ﻳﻜﻲ از روﺷﻬﺎي ﺑﺮﻗﺮاري ارﺗﺒﺎط ﻣﻨﻄﻘﻲ ﺑﻴﻦ ﻣﺮاﺣﻞ ﻣﺨﺘﻠﻒ‬ ‫•‬
‫ﺣﻞ ﻣﺴﺎﻟﻪ اﺳﺖ‪.‬‬
‫اﺷﻜﺎل اﺳﺘﺎﻧﺪارد ﻣﻮﺟﻮد‪:‬‬ ‫•‬
‫ﺷﺮوع‬ ‫درﻳﺎﻓﺖ داده‬
‫از ورودي‬ ‫دﺳﺘﻮرات ﻣﻘﺪار دﻫﻲ‬
‫و ﻣﺤﺎﺳﺒﺎﺗﻲ‬

‫ﭼﺎپ داده در‬


‫ﺗﺼﻤﻴﻢ ﮔﻴﺮي‬
‫ﭘﺎﻳﺎن‬ ‫ﺧﺮوﺟﻲ‬ ‫ﺧﻴﺮ‬
‫)ﺷﺮط(‬

‫ﺑﻠﻪ‬
‫‪20‬‬
‫ﺷﺮوع‬
‫ﻓﻠﻮﭼﺎرت‬
‫ﻣﺜﺎل‪ :‬ﺑﺎ درﻳﺎﻓﺖ ‪ N‬از ورودي‪،‬‬
‫‪ N‬را ﺑﮕﻴﺮ‬ ‫ﻣﺠﻤﻮع زﻳﺮ را ﺣﺴﺎب‬
‫ﻛﻨﺪ‪.‬‬
‫‪S0‬‬
‫‪I1‬‬

‫‪S = 1+2+3+ …+N‬‬


‫‪S S + I‬‬

‫‪II+1‬‬

‫‪I <= N‬‬


‫ﺑﻠﻪ‬
‫ﺧﻴﺮ‬

‫‪S‬‬

‫ﭘﺎﻳﺎن‬
‫‪21‬‬
‫ﺷﺮوع‬
‫ﻣﺜﺎل‬
‫ﻣﺜﺎل‪ :‬ﺑﺎ درﻳﺎﻓﺖ ‪ N‬از ورودي ‪،‬‬
‫‪ N‬را ﺑﮕﻴﺮ‬
‫ﻓﺎﻛﺘﻮرﻳﻞ آﻧﺮا ﻣﺤﺎﺳﺒﻪ و‬
‫‪P1‬‬
‫‪I1‬‬
‫ﭼﺎپ ﻛﻨﺪ‪.‬‬
‫‪PP*I‬‬
‫‪N! = 1*2*3*….*(N-1)*N‬‬
‫‪II+1‬‬

‫‪I <= N‬‬


‫ﺑﻠﻪ‬
‫ﺧﻴﺮ‬

‫‪P‬‬

‫ﭘﺎﻳﺎن‬
‫‪22‬‬
‫ﺷﺮوع‬ ‫ﻣﺜﺎل‬
‫‪N‬‬ ‫ﻋﺪد ﻃﺒﻴﻌﻲ ‪ N‬را درﻳﺎﻓﺖ‬ ‫•‬
‫ﻛﻨﺪ و ﻣﻌﻴﻦ ﻛﻨﺪ ﻛﻪ ‪N‬‬
‫‪I2‬‬
‫ﻋﺪدي اول اﺳﺖ ﻳﺎ ﺧﻴﺮ؟‬
‫‪R  N MOD I‬‬

‫ﺑﻠﻪ‬
‫‪R=0‬‬
‫ﺧﻴﺮ‬
‫‪II+1‬‬ ‫‪ N‬اول ﻧﻴﺴﺖ‬

‫ﺑﻠﻪ‬
‫<‪I‬‬ ‫‪N‬‬

‫ﺧﻴﺮ‬

‫‪ N‬اول اﺳﺖ‬

‫ﭘﺎﻳﺎن‬ ‫‪23‬‬
‫ﺷﺮوع‬
‫ﻣﺜﺎل‬
‫‪N‬‬
‫ﻋﺪد ﻃﺒﻴﻌﻲ ‪ N‬را درﻳﺎﻓﺖ‬ ‫•‬
‫‪I2‬‬
‫ﻛﻨﺪ و ﻣﻌﻴﻦ ﻛﻨﺪ ﻛﻪ ‪N‬‬
‫‪S 1‬‬
‫ﻋﺪدي ﻛﺎﻣﻞ اﺳﺖ ﻳﺎ ﺧﻴﺮ؟‬
‫‪R  N MOD I‬‬

‫ﺑﻠﻪ‬ ‫ﻋﺪد ﻛﺎﻣﻞ اﺳﺖ ﻛﻪ‬ ‫•‬


‫‪R=0‬‬ ‫‪S S + I‬‬
‫ﺧﻮدش ﺑﺮاﺑﺮ ﺑﺎ ﻣﺠﻤﻮع‬
‫ﺧﻴﺮ‬ ‫ﻣﻘﺴﻮم ﻋﻠﻴﻪ ﻫﺎي ﻛﻮﭼﻜﺘﺮ‬
‫‪II+1‬‬ ‫از ﺧﻮدش ﺑﺎﺷﺪ‪.‬‬
‫ﺑﻠﻪ‬
‫‪I <= N/2‬‬
‫‪6  1,2,3‬‬
‫ﺧﻴﺮ‬ ‫‪6 = 1+2+3‬‬
‫ﺑﻠﻪ‬
‫‪S=N‬‬ ‫‪28  1,2,4,7,14‬‬
‫ﺧﻴﺮ‬ ‫‪28 = 1+2+4+7+14‬‬
‫‪ N‬ﻛﺎﻣﻞ ﻧﻴﺴﺖ‬ ‫‪ N‬ﻛﺎﻣﻞ اﺳﺖ‬
‫‪18  1,2,3,6,9‬‬
‫‪18 <> 1+2+3+6+9‬‬
‫ﭘﺎﻳﺎن‬ ‫‪24‬‬
‫ﻣﺜﺎل‬
‫ﺷﺮوع‬
‫ﻋﺪد ﻃﺒﻴﻌﻲ ‪ N‬را درﻳﺎﻓﺖ‬ ‫•‬
‫‪N‬‬
‫ﻛﻨﺪ و ﻣﻘﻠﻮب آﻧﺮا در‬
‫ﺧﺮوﺟﻲ ﭼﺎپ ﻛﻨﺪ‪.‬‬
‫‪R  N MOD 10‬‬
‫‪Q  N DIV 10‬‬

‫‪R‬‬ ‫ﺑﻄﻮر ﻣﺜﺎل ‪:‬‬ ‫•‬

‫ﺑﻠﻪ‬ ‫‪9527  7259‬‬


‫‪Q=0‬‬
‫ﺧﻴﺮ‬
‫ﭘﺎﻳﺎن‬

‫‪N Q‬‬

‫‪25‬‬
‫ريشه ھای يک معادله درجه دوم‬ ‫مثال ‪:‬‬
‫‪AX²+BX+C=0‬‬ ‫•‬
‫‪D=B²-4AC‬‬ ‫•‬
‫اگر ‪ ،D<0‬معادله ريشه ندارد‬ ‫•‬
‫اگر ‪ ،D=0‬حاصل عبارت ‪ –B/2A‬را در ‪X1‬و ‪ X2‬قرار بده‬ ‫•‬
‫حاصل عبارت)‪ (− B + D ) /(2 A‬را در ‪ X1‬قرار بده‬ ‫•‬
‫حاصل عبارت‪ (−B − D ) / 2 A‬را در ‪ X2‬قرار بده‬ ‫•‬
‫مقادير ‪ X1‬و ‪ X2‬را نمايش بده‬ ‫•‬
‫شروع‬

A,B,C

2
D←B −4∗A∗C

Y
D<0 “No root”
N
X1← -B/2A Y
D=0
X2← X1
N
X 1 ← (− B + D ) / 2 A
X 2 ← (− B − D ) / 2 A

X1,X2

‫پايان‬
‫ﻓﻠﻮﭼﺎرﺗﻲ رﺳﻢ ﻛﻨﻴﺪ ﻛﻪ ﻳﻚ ﻋﺪد ﺑﺰرﮔﺘﺮ از ﺻﻔﺮ را ﺧﻮاﻧﺪه ﺳﭙﺲ ﺑﻪ ﺗﻌﺪاد‬ ‫ﻣﺜﺎل ‪:‬‬
‫آن ﻋﺪد‪ ,‬اﻋﺪاد دﻳﮕﺮي را ﺧﻮاﻧﺪه ﻣﺠﻤﻮع و ﻣﻴﺎﻧﮕﻴﻦ آﻧﻬﺎ را ﻧﻤﺎﻳﺶ دﻫﺪ‪.‬‬

‫شروع‬ ‫‪ N‬عدد خوانده شده‬ ‫•‬


‫‪C‬شمارنده‬ ‫•‬
‫‪N‬‬
‫‪S‬مجموع‬ ‫•‬
‫‪C←0‬‬
‫‪S←0‬‬
‫‪A‬اعداد‬ ‫•‬

‫‪Y‬‬
‫‪C=N‬‬ ‫‪S, S / N‬‬
‫‪N‬‬
‫‪A‬‬
‫پايان‬

‫‪S←S+A‬‬

‫‪C ← C +1‬‬
‫مثال ‪:8‬‬
‫الگوريتم برنامه ای را بنويسيد که ‪ 10‬عدد را گرفته و تعيين کند کدام‬
‫شروع‬ ‫زوج و کدام فرد است‪.‬‬
‫‪C←0‬‬

‫‪p‬‬
‫‪k ← p mod 2‬‬

‫‪y‬‬
‫”‪P, “even‬‬ ‫‪K=0‬‬
‫‪n‬‬
‫”‪P, “odd‬‬

‫‪C ← C+1‬‬

‫‪y‬‬
‫‪C< 10‬‬
‫‪n‬‬
‫پايان‬
‫اﻟﮕﻮرﻳﺘﻢ ﺑﺮﻧﺎﻣﻪ اي را ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻳﻚ ﻋﺪد ﻣﺜﺒﺖ را ﺧﻮاﻧﺪه و‬ ‫ﻣﺜﺎل ‪:‬‬
‫ﺗﻌﺪاد ارﻗﺎم ﻋﺪد را ﻧﺸﺎن دﻫﺪ‪.‬‬
‫شروع‬

‫‪N‬‬

‫‪S ←0‬‬ ‫)تعداد ارقام(‬

‫)‪N ← (N / 10‬‬

‫‪S ← S+1‬‬

‫‪Y‬‬
‫‪N>0‬‬

‫‪N‬‬
‫‪S‬‬

‫پايان‬
‫ﺷﺮوع‬
‫ﻣﺜﺎل‬
‫‪M, N‬‬ ‫ﺑﻪ ﻛﻤﻚ ﺟﻤﻊ ﻫﺎي ﻣﺘﻮاﻟﻲ‪ ،‬ﺣﺎﺻﻞ ﺿﺮب‬
‫دو ﻋﺪد ﻃﺒﻴﻌﻲ ‪ M,N‬را ﺑﺪﺳﺖ آورده و‬
‫‪I 1‬‬ ‫ﭼﺎپ ﻛﻨﺪ‪.‬‬
‫‪S0‬‬

‫‪SS+M‬‬ ‫‪M*N = M + M + …… + M‬‬

‫‪II+1‬‬
‫‪ N‬ﻣﺮﺗﺒﻪ‬
‫ﺑﻠﻪ‬
‫‪I <= N‬‬
‫ﺧﻴﺮ‬

‫‪S‬‬

‫ﭘﺎﻳﺎن‬
‫‪31‬‬
‫ﺷﺮوع‬
‫ﻣﺜﺎل‬
‫‪M, N‬‬ ‫ﺑﻪ ﻛﻤﻚ ﺿﺮﺑﻬﺎي ﻣﺘﻮاﻟﻲ ﻣﻘﺪار ﺗﻮان ‪MN‬را‬
‫ﺑﺪﺳﺖ آورده و ﭼﺎپ ﻛﻨﺪ‪.‬‬
‫)‪ M, N‬اﻋﺪاد ﻃﺒﻴﻌﻲ ﻣﻲ ﺑﺎﺷﻨﺪ(‬
‫‪I 1‬‬

‫‪P1‬‬

‫‪MN = M * M * …… * M‬‬
‫‪PP*M‬‬

‫‪II+1‬‬
‫‪ N‬ﻣﺮﺗﺒﻪ‬
‫ﺑﻠﻪ‬
‫‪I <= N‬‬
‫ﺧﻴﺮ‬

‫‪P‬‬

‫ﭘﺎﻳﺎن‬
‫‪32‬‬
‫ﻣﺜﺎل‬
‫ﺷﺮوع‬
‫ﻋﺪد ﻃﺒﻴﻌﻲ ‪ N‬را درﻳﺎﻓﺖ‬ ‫•‬
‫‪N‬‬
‫ﻛﻨﺪ و ﻣﺠﻤﻮع ارﻗﺎم آﻧﺮا‬
‫‪S0‬‬ ‫در ﺧﺮوﺟﻲ ﭼﺎپ ﻛﻨﺪ‪.‬‬

‫‪R  N MOD 10‬‬


‫‪Q  N DIV 10‬‬

‫ﺑﻄﻮر ﻣﺜﺎل ‪:‬‬ ‫•‬


‫‪S S+R‬‬

‫‪90527  9+0+5+2+7‬‬
‫ﺑﻠﻪ‬
‫‪Q=0‬‬
‫ﺧﻴﺮ‬
‫‪S‬‬

‫‪N Q‬‬ ‫ﭘﺎﻳﺎن‬

‫‪33‬‬
‫ﻣﺜﺎل‬
‫ﺷﺮوع‬

‫‪N‬‬ ‫ﻋﺪد ﻃﺒﻴﻌﻲ ‪ N‬را درﻳﺎﻓﺖ ﻛﻨﺪ و‬ ‫•‬


‫ﻣﻘﺪار ﺳﺮي زﻳﺮ را ﺑﺪﺳﺖ آورد‪.‬‬
‫‪S0‬‬
‫‪I 1‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫=‪S‬‬ ‫‪+‬‬ ‫‪+‬‬ ‫‪+ ....... +‬‬
‫‪S ← S +‬‬
‫‪1‬‬
‫)‪I ( I + 1‬‬
‫‪1* 2 2 * 3 3 * 4‬‬ ‫)‪N ( N + 1‬‬

‫‪I I + 1‬‬

‫ﺑﻠﻪ‬ ‫‪I<= N‬‬


‫ﺧﻴﺮ‬

‫‪S‬‬

‫ﭘﺎﻳﺎن‬
‫‪34‬‬
‫ﻣﺜﺎل‬
‫ﺷﺮوع‬

‫‪N‬‬ ‫ﻋﺪد ﻃﺒﻴﻌﻲ ‪ N‬را درﻳﺎﻓﺖ ﻛﻨﺪ و‬ ‫•‬


‫ﻣﻘﺪار ﺳﺮي زﻳﺮ را ﺑﺪﺳﺖ آورد‪.‬‬
‫‪S0‬‬
‫‪K  +1‬‬
‫‪I 1‬‬
‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪N +2‬‬
‫=‪S‬‬ ‫‪−‬‬ ‫‪+‬‬ ‫‪−‬‬ ‫‪+ .......‬‬
‫*‪S ←S+ K‬‬
‫‪I +2‬‬ ‫‪1* 2 2 * 3 3 * 4 4 * 5‬‬ ‫)‪N ( N + 1‬‬
‫)‪I ( I + 1‬‬

‫‪I I + 1‬‬
‫‪K-K‬‬

‫ﺑﻠﻪ‬ ‫‪I<= N‬‬


‫ﺧﻴﺮ‬

‫‪S‬‬

‫ﭘﺎﻳﺎن‬
‫‪35‬‬
‫ﻣﺜﺎل ‪ :‬اﻟﮕﻮرﻳﺘﻢ ﺑﺮﻧﺎﻣﻪ اي را ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻳﻚ ﻋﺪد ﻣﺜﺒﺖ را ﺧﻮاﻧﺪه ﻓﺎﻛﺘﻮرﻳﻞ آن را ﻧﻤﺎﻳﺶ‬
‫دﻫﺪ‪.‬‬

‫• ﻓﺎﻛﺘﻮرﻳﻞ ﻳﻚ ﻋﺪد ﻳﻌﻨﻲ ﺣﺎﺻﻞ ﺿﺮب اﻋﺪاد ‪ 1‬ﺗﺎ آن ﻋﺪد‬


‫• ﻓﺎﻛﺘﻮرﻳﻞ ﻋﺪد ﺻﻔﺮ ﺑﺮاﺑﺮ ﻳﻚ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬
• A ‫شمارنده‬
‫شروع‬

FACT ← 1

A ←1

Y
A>N FACT

N
‫پايان‬
FACT ← FACT * A

A ← A+ 1

You might also like