0% found this document useful (0 votes)
9 views37 pages

Algorithm

Uploaded by

amir3837com
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views37 pages

Algorithm

Uploaded by

amir3837com
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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