lecture 1.pdf

‫ﻣﺪرس ‪ :‬ﻧﻮري‬
‫ﻣﻬﺮ ‪88‬‬
‫ﻋﻀﻮﻳﺖ در ﮔﺮوه درس‬
‫‪ y‬ﺑﻪ آدرس ‪http://groups.google.com/group/pascal‐88‐1‬‬
‫رﻓﺘﻪ و ﻋﻀﻮ ﮔﺮوه درس ﺷﻮﻳﺪ‪.‬‬
‫‪ y‬اﻃﻼﻋﻴﻪﻫﺎي ﻣﺮﺑﻮط ﺑﻪ درس از ﻃﺮﻳﻖ اﻳﻦ ﮔﺮوه ﺑﻪ اﻃﻼع داﻧﺸﺠﻮﻳﺎن‬
‫ﻣﻲرﺳﺪ‪.‬‬
‫‪ y‬ﺗﻤﺮﻳﻦﻫﺎ و ﺳﺎﻳﺮ ﻣﻨﺎﺑﻊ ﻣﺮﺑﻮط ﺑﻪ درس در آدرس‬
‫‪ http://ce.sharif.edu/courses/88‐89/1/ce151a/‬ﻗﺮار‬
‫ﻣﻲﮔﻴﺮد‪.‬‬
‫‪2‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻣﺤﺎﺳﺒﻪ ﻧﻤﺮه ﻛﻞ‬
‫‪3‬‬
‫‪ y‬ﺗﻤﺮﻳﻦ‬
‫‪ y‬ﻣﻴﺎن ﺗﺮم‬
‫‪ y‬ﭘﺮوژه ﻧﻬﺎﻳﻲ‬
‫‪ 2‬ﻧﻤﺮه‬
‫‪ 6‬ﻧﻤﺮه‬
‫‪ 3‬ﻧﻤﺮه‬
‫‪ y‬ﭘﺎﻳﺎن ﺗﺮم‬
‫‪ 9‬ﻧﻤﺮه‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫اﺟﺰاي ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫‪ y‬ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ در اﺑﻌﺎد ﻣﺨﺘﻠﻒ ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮﻧﺪ‪:‬‬
‫‪ Main Frame y‬ﻫﺎي در اﺑﻌﺎد ﻳﻚ ﺳﺎﺧﺘﻤﺎن‬
‫‪ y‬ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي دﺳﺘﻲ )ﻣﻮﺑﺎﻳﻞ‪ Pocket PC ،‬و ‪(...‬‬
‫‪ y‬اﺟﺰاي ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫‪ y‬ﺳﺨﺖاﻓﺰار‬
‫‪ y‬ﻧﺮماﻓﺰار‬
‫‪4‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫اﺟﺰاي ﺳﺨﺖ اﻓﺰاري ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫‪5‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻧﺮماﻓﺰار‬
‫‪ y‬ﻧﺮماﻓﺰار ﺑﺮﻧﺎﻣﻪاي اﺳﺖ ﻛﻪ ﻳﻚ ﻛﺎر ﻣﺸﺨﺺ را اﻧﺠﺎم ﻣﻲدﻫﺪ‪.‬‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎﻣﭙﻴﻮﺗﺮي ﺑﻪ دو دﺳﺘﻪ اﺻﻠﻲ ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﻧﺪ‪:‬‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪﻫﺎي ﺳﻴﺴﺘﻤﻲ‪ :‬ﻛﺎر ﻣﺪﻳﺮﻳﺖ ﻛﺎﻣﭙﻴﻮﺗﺮ را ﺑﺮﻋﻬﺪه دارﻧﺪ‪ .‬ﻣﺜﻞ ﺳﻴﺴﺘﻢ‬
‫ﻋﺎﻣﻞ وﻳﻨﺪوز‪.‬‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪﻫﺎي ﻛﺎرﺑﺮدي‪ :‬ﺑﺮاي اﻧﺠﺎم ﻳﻚ ﻫﺪف ﺧﺎص‪ .‬ﻣﺜﻞ وﻳﺮاﻳﺸﮕﺮ ﻣﺘﻦ‪،‬‬
‫ﻣﺮورﮔﺮ وب و ﺑﺎزيﻫﺎي ﻛﺎﻣﭙﻴﻮﺗﺮي‪.‬‬
‫‪6‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫زﺑﺎن ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫زﺑﺎن ﻛﺎﻣﭙﻴﻮﺗﺮ دﻧﺒﺎﻟﻪاي از ﺻﻔﺮﻫﺎ و ﻳﻚﻫﺎﺳﺖ‪.‬‬
‫اﻳﻦ زﺑﺎن‪ ،‬زﺑﺎن ﻣﺎﺷﻴﻦ ﺧﻮاﻧﺪه ﻣﻲﺷﻮد‪.‬‬
‫ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎي اوﻟﻴﻪ ﺑﺎ زﺑﺎن ﻣﺎﺷﻴﻦ ﺑﺮﻧﺎﻣﻪرﻳﺰي ﻣﻲﺷﺪﻧﺪ‪.‬‬
‫ﺑﺮاي ﺳﺎده ﺳﺎﺧﺘﻦ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‪ ،‬زﺑﺎن اﺳﻤﺒﻠﻲ ﻣﻌﺮﻓﻲ ﺷﺪ‪.‬‬
‫‪ y‬ﺑﻪ ﺟﺎي ﻛﺪ دﺳﺘﻮرات‪ ،‬ﻧﺎمﻫﺎي ﻣﻌﺎدﻟﺸﺎن ذﻛﺮ ﺷﻮد‪.‬‬
‫‪ y‬ﺑﺎ اﺳﺘﻔﺎده از اﺳﻤﺒﻠﺮ ﺑﺮﻧﺎﻣﻪ اﺳﻤﺒﻠﻲ ﺑﻪ زﺑﺎن ﻣﺎﺷﻴﻦ ﺗﺒﺪﻳﻞ ﻣﻲﺷﺪ‪.‬‬
‫‪7‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫زﺑﺎنﻫﺎي ﺳﻄﺢ ﺑﺎﻻ‬
‫‪ y‬ﻫﻨﻮز ﻓﺎﺻﻠﻪ زﻳﺎدي ﺗﺎ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ آﺳﺎن وﺟﻮد داﺷﺖ‪.‬‬
‫‪ y‬زﺑﺎنﻫﺎي ﺳﻄﺢ ﺑﺎﻻﻳﻲ ﻣﺜﻞ ‪ C ،Pascal ،Cobol ،Fortran ،Basic‬و‬
‫‪ C++‬ﻣﻌﺮﻓﻲ ﺷﺪ‪.‬‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪﻫﺎي ﻧﻮﺷﺘﻪ ﺷﺪه ﺑﻪ زﺑﺎنﻫﺎي ﺳﻄﺢ ﺑﺎﻻ ﺗﻮﺳﻂ ﻛﺎﻣﭙﺎﻳﻠﺮ‬
‫)‪ (Compiler‬ﺑﻪ زﺑﺎن ﻣﺎﺷﻴﻦ ﺗﺮﺟﻤﻪ ﻣﻲﺷﻮد‪.‬‬
‫‪8‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫زﺑﺎن ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫‪ y‬زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪﺳﺎزي‬
‫‪ y‬ﺗﻌﺪاد زﻳﺎد‬
‫‪ y‬اﺳﺎس ﻣﺸﺘﺮك‪ :‬ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن دﻳﺪ ﻳﻜﺴﺎﻧﻲ ﺑﻪ زﺑﺎنﻫﺎي ﻣﺨﺘﻠﻒ دارﻧﺪ‪.‬‬
‫‪ y‬ﺗﻮاﻧﺎﻳﻲ ﻣﺸﺎﺑﻪ‪ :‬ﺗﻘﺮﻳﺒﺎً ﻫﺮ ﺑﺮﻧﺎﻣﻪاي را ﻣﻲﺗﻮان ﺑﺎ ﻫﺮ زﺑﺎﻧﻲ ﻧﻮﺷﺖ‪ ،‬ﺑﻌﻀﻲ‬
‫ﺳﺎدهﺗﺮ و ﺑﻌﻀﻲ ﺳﺨﺖﺗﺮ‪.‬‬
‫‪9‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻣﺮاﺣﻞ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‬
‫‪ y‬ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ وﻳﺮاﻳﺸﮕﺮ ﻣﺘﻦ‪.‬‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ ﺷﺪه ﻛﺪ ﻣﻨﺒﻊ )‪ (Source Code‬ﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد‪.‬‬
‫‪ y‬ﺑﺮرﺳﻲ درﺳﺘﻲ ﺑﺮﻧﺎﻣﻪ و رﻋﺎﻳﺖ اﺻﻮل زﺑﺎن و ﺗﺒﺪﻳﻞ ﻛﺮدن ﺑﻪ زﺑﺎن‬
‫ﻣﺎﺷﻴﻦ‪ .‬اﻳﻦ ﻛﺎر ﺗﻮﺳﻂ ﻛﺎﻣﭙﺎﻳﻠﺮ اﻧﺠﺎم ﻣﻲﺷﻮد‪.‬‬
‫‪ y‬اﻳﻦ ﺑﺮﻧﺎﻣﻪ‪ ،‬ﺑﺮﻧﺎﻣﻪ ﻫﺪف )‪ (Object Program‬ﻧﺎم دارد‪.‬‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪ ﻫﺪف ﺑﺎ ﻛﺘﺎﺑﺨﺎﻧﻪﻫﺎي اﺳﺘﻔﺎده ﺷﺪه از زﺑﺎن‪ ،‬ﺗﺮﻛﻴﺐ ﺷﺪه و ﺑﺮﻧﺎﻣﻪ‬
‫ﻗﺎﺑﻞ اﺟﺮاي ﻣﺎﺷﻴﻦ را ﻣﻲﺳﺎزد‪ .‬اﻳﻦ ﻛﺎر ﺗﻮﺳﻂ ‪ Linker‬اﻧﺠﺎم ﻣﻲﺷﻮد‪.‬‬
‫‪10‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻣﺮاﺣﻞ اﺟﺮا‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪ ‪ ،Loader‬ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ اﺟﺮا را در ﺣﺎﻓﻈﻪ اﺻﻠﻲ ﺑﺎرﮔﺬاري ﻣﻲﻛﻨﺪ‪.‬‬
‫‪ y‬ﺑﻌﺪ از ﺑﺎرﮔﺬاري‪ ،‬ﺑﺮﻧﺎﻣﻪ ﺗﻮﺳﻂ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻗﺎﺑﻞ اﺟﺮاﺳﺖ‪.‬‬
‫‪11‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻣﺮاﺣﻞ اﺟﺮاي ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﺑﻪ زﺑﺎن ﺳﻄﺢ ﺑﺎﻻ‬
‫‪12‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﭼﺮﺧﻪ ﺗﺤﻠﻴﻞ‪-‬ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‪-‬اﺟﺮا‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻓﺮاﻳﻨﺪ ﺣﻞ ﻳﻚ ﻣﺴﺄﻟﻪ اﺳﺖ‪.‬‬
‫‪ y‬ﻣﺮاﺣﻞ ﺗﻬﻴﻪ ﻳﻚ ﺑﺮﻧﺎﻣﻪ‬
‫‪ y‬ﺗﺤﻠﻴﻞ ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﺗﻌﻴﻴﻦ ﻧﻴﺎزﻫﺎي ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﻃﺮاﺣﻲ ﻣﺮاﺣﻞ دﻗﻴﻖ راهﺣﻞ ﻣﺴﺄﻟﻪ )اﻟﮕﻮرﻳﺘﻢ(‬
‫‪13‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﭼﺮﺧﻪ ﺗﺤﻠﻴﻞ‪-‬ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‪-‬اﺟﺮا‬
‫‪14‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﺗﺤﻠﻴﻞ ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﻓﻬﻢ دﻗﻴﻖ ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﺷﻨﺎﺳﺎﻳﻲ ﻧﻴﺎزﻣﻨﺪيﻫﺎي ﻣﺴﺄﻟﻪ‬
‫‪ y‬آﻳﺎ ﺑﺮﻧﺎﻣﻪ ﺑﻪ وروديﻫﺎﻳﻲ از ﻛﺎرﺑﺮ ﻧﻴﺎز دارد؟‬
‫‪ y‬آﻳﺎ ﺑﺮﻧﺎﻣﻪ ﺑﺮ روي دادهﻫﺎ اﻋﻤﺎﻟﻲ را اﻧﺠﺎم ﻣﻲدﻫﺪ؟ ﭼﻪ اﻋﻤﺎﻟﻲ و ﺑﺮ روي ﭼﻪ‬
‫ﻧﻮع دادهﻫﺎﻳﻲ؟‬
‫‪ y‬آﻳﺎ ﺑﺮﻧﺎﻣﻪ ﺧﺮوﺟﻲﻫﺎﻳﻲ ﺑﺮاي ﻛﺎرﺑﺮ دارد؟ ﭼﻪ ﺧﺮوﺟﻲﻫﺎﻳﻲ و ﺑﻪ ﭼﻪ ﺷﻜﻠﻲ؟‬
‫‪ y‬اﮔﺮ ﻣﺴﺄﻟﻪ دﺷﻮار اﺳﺖ‪ ،‬ﺷﻜﺴﺘﻦ آن ﺑﻪ زﻳﺮ ﻣﺴﺄﻟﻪﻫﺎﻳﻲ و ﺗﺤﻠﻴﻞ ﺟﺪاﮔﺎﻧﻪ‬
‫آنﻫﺎ )ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﺳﺎﺧﺖﻳﺎﻓﺘﻪ(‬
‫‪15‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻃﺮاﺣﻲ اﻟﮕﻮرﻳﺘﻢ‬
‫‪ y‬ﻣﺮﺣﻠﻪ ﺑﻌﺪ از ﺗﺤﻠﻴﻞ ﻣﺴﺄﻟﻪ‪ ،‬ﻃﺮاﺣﻲ اﻟﮕﻮرﻳﺘﻢ اﺳﺖ‪.‬‬
‫‪ y‬اﮔﺮ ﻣﺴﺄﻟﻪ ﺑﻪ زﻳﺮﻣﺴﺄﻟﻪﻫﺎﻳﻲ ﺷﻜﺴﺘﻪ ﺷﺪه اﺳﺖ‪ ،‬ﺑﺮاي آنﻫﺎ اﻟﮕﻮرﻳﺘﻢ‬
‫ﻃﺮاﺣﻲ ﺷﻮد‪.‬‬
‫‪ y‬درﺳﺘﻲ اﻟﮕﻮرﻳﺘﻢ ﺑﺮرﺳﻲ ﺷﻮد‪.‬‬
‫‪ y‬ﺑﺮرﺳﻲ درﺳﺘﻲ اﻟﮕﻮرﻳﺘﻢ ﺑﺎ دادهﻫﺎي آزﻣﺎﻳﺸﻲ‬
‫‪ y‬ﺑﺮرﺳﻲ درﺳﺘﻲ اﻟﮕﻮرﻳﺘﻢ ﺑﺎ ﺗﺤﻠﻴﻞ رﻳﺎﺿﻲ‬
‫‪ y‬ﻧﻮﺷﺘﻦ اﻟﮕﻮرﻳﺘﻢ ﺑﻪ زﺑﺎن ﺳﻄﺢ ﺑﺎﻻ )ﭘﺎﺳﻜﺎل(‬
‫‪ y‬ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ‬
‫‪16‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫ﺗﺮﺟﻤﻪ ﺑﺮﻧﺎﻣﻪ ﺗﻮﺳﻂ ﻛﺎﻣﭙﺎﻳﻠﺮ‬
‫در ﺻﻮرت ﺑﺮوز ﺧﻄﺎ‪ ،‬ﺑﻌﺪ از رﻓﻊ ﺧﻄﺎ دوﺑﺎره ﺑﺮﻧﺎﻣﻪ ﺗﺮﺟﻤﻪ ﻣﻲﺷﻮد‪.‬‬
‫ﺗﺒﺪﻳﻞ ﺑﺮﻧﺎﻣﻪ ﺳﻄﺢ ﺑﺎﻻ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ اﺟﺮا‬
‫اﺟﺮاي ﺑﺮﻧﺎﻣﻪ‬
‫‪ y‬ﺑﺮرﺳﻲ درﺳﺘﻲ ﻛﺎر ﺑﺮﻧﺎﻣﻪ )ﻋﺪم وﺟﻮد ﺧﻄﺎي زﻣﺎن اﺟﺮا و ﺧﻄﺎي ﻣﻨﻄﻘﻲ(‬
‫‪17‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻣﺜﺎل‪ :‬ﻣﺤﺎﺳﺒﻪ ﻣﺤﻴﻂ و ﻣﺴﺎﺣﺖ ﻣﺴﺘﻄﻴﻞ‬
‫‪ y‬اﻟﮕﻮرﻳﺘﻤﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻣﺤﻴﻂ و ﻣﺴﺎﺣﺖ ﻳﻚ ﻣﺴﺘﻄﻴﻞ را ﻣﺤﺎﺳﺒﻪ ﻛﻨﺪ‪.‬‬
‫‪ y‬راﺑﻄﻪﻫﺎي ﻻزم‬
‫)‪Perimeter = 2 . (Length + Width‬‬
‫‪Area = Length . Width‬‬
‫‪ y‬ﭘﺎراﻣﺘﺮﻫﺎي ورودي‬
‫‪ y‬دادهﻫﺎي ﺧﺮوﺟﻲ‬
‫‪18‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﻣﺤﺎﺳﺒﻪ ﻣﺤﻴﻂ و ﻣﺴﺎﺣﺖ ﻣﺴﺘﻄﻴﻞ‬
‫‪ Length (١‬را ﺑﺨﻮان‬
‫‪ Width (٢‬را ﺑﺨﻮان‬
‫‪Perimeter Å 2.(Length + Width) (٣‬‬
‫‪Area Å Length . Width (۴‬‬
‫‪19‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﺗﻌﻴﻴﻦ ب‪.‬م‪.‬م ﻳﻚ ﻋﺪد‬
‫‪ (١‬ﺷﺮوع‬
‫‪(٢‬‬
‫‪(٣‬‬
‫‪(۴‬‬
‫‪(۵‬‬
‫‪(۶‬‬
‫‪(٧‬‬
‫‪(٨‬‬
‫‪20‬‬
‫‪ u‬و ‪ v‬را ﺑﺨﻮان‬
‫اﮔﺮ ‪ u<v‬آﻧﮕﺎه ‪ t Å u‬در ﻏﻴﺮاﻳﻨﺼﻮرت ‪t Å v‬‬
‫اﮔﺮ ‪ u mod t = 0‬و ‪ v mod t = 0‬آﻧﮕﺎه ﺑﺮو ﺑﻪ ‪7‬‬
‫‪t Å t‐1‬‬
‫ﺑﺮو ﺑﻪ ‪4‬‬
‫‪ t‬را ﭼﺎپ ﻛﻦ‬
‫ﺧﺮوج‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫م در ﭘﺎﺳﻜﺎل‬.‫م‬.‫ﺗﺎﺑﻊ ﻣﺤﺎﺳﺒﻪ ب‬
Function gcd(u, v: integer) : integer;
Var
t: integer;
Begin
if u < v then t := u else t := v;
while (u mod t <> 0) or (v mod t <> 0) do
t := t ‐1;
gcd := t
End;
‫ﻧﻮرﯼ‬: ‫ﻣﺪرس‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
21
‫ﺧﻄﻮط ﺑﺮﻧﺎﻣﻪ‬
‫‪ (١‬دﺳﺘﻮرات )‪ : (Statements‬ﻣﻬﻢ ﺑﺮاي ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫‪ (٢‬ﻓﺎﺻﻠﻪﻫﺎ )‪(Blanks‬‬
‫‪ (٣‬ﺗﻮﺿﻴﺤﺎت )‪(Comments‬‬
‫‪22‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﺗﻮﺿﻴﺤﺎت در ﻣﺘﻦ ﺑﺮﻧﺎﻣﻪ‬
Program add;
Begin
write(10 + 5)
End.
Program add;
{This is a program to show
how to add two numbers.
It is a simple calculator.
Begin
write(10 + 5) (*Here we add two numbers*)
End.
‫ﻧﻮرﯼ‬: ‫ﻣﺪرس‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
23
‫ﺧﻄﺎﻫﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‬
‫‪ y‬ﺧﻄﺎﻫﺎي ﻧﺤﻮي )‪(Syntax‬‬
‫‪ y‬ﺧﻄﺎﻫﺎي زﻣﺎن اﺟﺮا )‪(Run‐time errors‬‬
‫‪ y‬ﺧﻄﺎﻫﺎي ﻣﻨﻄﻘﻲ )‪(Bugs) (Logical errors‬‬
‫‪24‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﺧﻄﺎي ‪Syntax‬‬
‫;‪Program add‬‬
‫‪Begin‬‬
‫‪write(10 + 5).‬‬
‫‪End.‬‬
‫‪25‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﺧﻄﺎي ‪Run‐time‬‬
‫اﮔﺮ ﻣﻘﺪار ‪ x‬ﺻﻔﺮ ﺑﺎﺷﺪ ﭼﻪ‬
‫اﺗﻔﺎﻗﻲ ﻣﻲاﻓﺘﺪ؟‬
‫‪26‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫‪Begin‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫;)‪write(10 / x‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪End.‬‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬
‫ﺧﻄﺎي ﻣﻨﻄﻘﻲ‬
‫}‪Begin {computing 10 x 10 ‬‬
‫)‪write(‘The square of 10 is ‘, 10*0‬‬
‫‪End.‬‬
‫از ﻟﺤﺎظ ‪ Syntax‬درﺳﺖ اﺳﺖ‪.‬‬
‫وﻟﻲ از ﻟﺤﺎظ ﻣﻨﻄﻘﻲ ﭼﻄﻮر؟‬
‫‪27‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﯽ ﭘﺎﺳﮑﺎل – داﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﯽ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮرﯼ‬