UOK CP Practical2
UOK CP Practical2
داﻧﺸﮑﺪه ﮐﺸﺎورزي
ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ
ﻣﺪرس:
دﮐﺘﺮ ﮐﺎوه ﻣﻼزاده
ﻣﻘﺪﻣﻪ
oدﺳﺘﻮرات MATLABدر ﭘﻨﺠﺮه ي دﺳﺘﻮر ﺑﻪ ﻃﻮر ﻋﺎدي ﺑﻪ ﺗﺮﺗﯿﺒﯽ ﮐﻪ ﻧﻮﺷﺘﻪ ﺷﺪه اﻧﺪ اﺟﺮا ﻣﯽ ﺷﻮﻧﺪ.
اﻣﺎ در ﻣﻮارد ﺑﺴﯿﺎري اﺟﺮاي دﺳﺘﻮرات ﻧﯿﺎز ﺑﻪ اﻧﺸﻌﺎب ﺑﻪ ﻣﺴﯿﺮﻫﺎي ﻣﺨﺘﻠﻒ ﯾﺎ اﺟﺮاي ﻣﮑﺮر ﻣﺠﻤﻮﻋﻪ
اي از دﺳﺘﻮرات دارد .ﻋﻼوه ﺑﺮ اﯾﻦ ،اﻧﺸﻌﺎب و ﺗﮑﺮار ﻣﻤﮑﻦ اﺳﺖ ﺑﺴﺘﮕﯽ ﺑﻪ ﺷﺮاﯾﻄﯽ ﻣﺎﻧﻨﺪ ﻣﻘﺪار
داده ﻫﺎي ورودي داﺷﺘﻪ ﺑﺎﺷﺪ .در ﯾﮏ زﺑﺎن ﺳﺎﺧﺘﺎر ﯾﺎﻓﺘﻪ ،ﻣﯽﺗﻮان روي اﺟﺮا ﯾﮏ ﯾﺎ ﭼﻨﺪ دﺳﺘﻮر و
ﻫﻤﭽﻨﯿﻦ ﺗﻘﺪم و ﺗﺎﺧﺮ آﻧﻬﺎ ﮐﻨﺘﺮل داﺷﺖ .ﺣﻠﻘﻪ ﻫﺎ و ﺷﺮط ﻫﺎ از ﻣﺒﺎﻧﯽ ﻫﺮ زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﻫﺴﺘﻨﺪ
ﮐﻪ ﺑﺮاي ﮐﻨﺘﺮل روﻧﺪ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﺑﻪ ﮐﺎر ﻣﯽ روﻧﺪ.
1
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺳﺎﺧﺘﺎرﻫﺎي MATLABﺑﺮاي ﮐﻨﺘﺮل ﺑﺮﻧﺎﻣﻪ
ﺳﺎﺧﺘﺎرﻫﺎي ﺗﺼﻤﯿﻢ
if-else-end
switch-case-otherwise-end
for-end
ﺣﻠﻘﻪ ﻫﺎي ﺗﮑﺮار
while-end
break
return,keyboard
ﺗﻮﻗﻒ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ
)pause, pause(n
waitforbuttonpress
2
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺳﺎﺧﺘﺎر if-end
oدﺳﺘﻮرات ﺷﺮﻃﯽ در ﻣﺘﻠﺐ ﺑﺎ ifﺷﺮوع ﻣﯽ ﺷﻮﻧﺪ و ﺑﺎ endﺧﺎﺗﻤﻪ ﻣﯽ ﯾﺎﺑﻨﺪ .ﺑﺪﯾﻦ ﻣﻌﻨﯽ ﮐﻪ در
ﺻﻮرت درﺳﺖ ﺑﻮدن ﺷﺮط ﯾﺎ ﺷﺮاﯾﻄﯽ ﺧﺎص ﺑﺎﯾﺪ ﭼﻨﺪ دﺳﺘﻮر اﺟﺮا ﺷﻮد .ﮔﺮاﻣﺮ آن ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ:
3
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺳﺎﺧﺘﺎر if-else-end
oﻫﺮﮔﺎه ﺑﺨﻮاﻫﯿﻢ ﺑﺮﻧﺎﻣﻪ در ﺻﻮرت ﺑﺮﻗﺮار ﺑﻮدن ﯾﺎ ﺑﺮﻗﺮار ﻧﺒﻮدن ﺷﺮط ﺧﺎﺻﯽ ﯾﮏ ﯾﺎ ﭼﻨﺪ دﺳﺘﻮر ﺧﺎص را
اﺟﺮا ﻧﻤﺎﯾﺪ ،از ﺑﻠﻮك if-else-endاﺳﺘﻔﺎده ﻣﯽﮐﻨﯿﻢ .ﺷﮑﻞ ﮐﻠﯽ اﺳﺘﻔﺎده از اﯾﻦ دﺳﺘﻮر ﺑﻪ ﺻﻮرت زﯾﺮ
اﺳﺖ:
4
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﯾﮏ ﻋﺪد را ﺑﻪ ﻋﻨﻮان ورودي ﺑﮕﯿﺮد و ﺗﻌﯿﯿﻦ ﮐﻨﺪ ﻓﺮد اﺳﺖ ﯾﺎ زوج؟
if rem(n,2)==0
)'disp(' n is even
else
)'disp(' n is odd
end
5
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺷﺮط ﻫﺎي ﺗﻮدرﺗﻮ
oاﮔﺮ ﺗﻌﺪاد ifﻫﺎي ﺗﻮ در ﺗﻮ زﯾﺎد ﺑﺎﺷﺪ ،ﻣﯽﺗﻮان از ﮔﺮاﻣﺮ زﯾﺮ اﺳﺘﻔﺎده ﻧﻤﻮد:
6
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
;)'x=input('Enter x :
if x>0
;y=1
elseif x<0
;y=-1
else
;y=0
;end
)disp(y
7
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
8
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺳﺎﺧﺘﺎر switch-case-otherwise-end
oوﻗﺘﯽ ﺗﻌﺪاد ﺷﺎﺧﻪﻫﺎي ﺷﺮط زﯾﺎد ﺑﺎﺷﺪ ،ﻣﯽﺗﻮان از اﯾﻦ ﺳﺎﺧﺘﺎري اﺳﺘﻔﺎده ﻧﻤﻮد .از اﯾﻦ ﺳﺎﺧﺘﺎر ﺑﺮاي
ﺗﺼﻤﯿﻢ ﮔﯿﺮي ﭼﻨﺪﮔﺎﻧﻪ ﺑﺮاﺳﺎس ﻣﻘﺎدﯾﺮ ﻣﺨﺘﻠﻒ ﯾﮏ ﻣﺘﻐﯿﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﮔﺮاﻣﺮ آن ﺑﻪ ﺻﻮرت زﯾﺮ
اﺳﺖ ﮐﻪ در آن selectorﯾﮏ ﻋﺒﺎرت ﺟﺒﺮي ﯾﺎ ﻣﻨﻄﻘﯽ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎﺷﺪ:
)switch (selector
)case (value_1
statements_1 oﻧﮑﺘﻪ :ﺑﻌﺪ از اﺟﺮاي ﻫﺮ ﯾﮏ از دﺳﺘﻮرات ،روﻧﺪ
)case (value_2
statements_2 اﺟﺮاي ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﺑﻌﺪ از endﻣﻨﺘﻘﻞ ﻣﯽ ﺷﻮد و
........................... ﺳﺎﯾﺮ caseﻫﺎ ﮐﻨﺘﺮل ﻧﻤﯽ ﺷﻮﻧﺪ .اﺳﺘﻔﺎده از
............................
)case (value_n otherwiseﻧﯿﺰ اﺧﺘﯿﺎري اﺳﺖ.
statements_n
otherwise statements default
end
9
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﯾﮏ ﻋﺪد را ﺑﻪ ﻋﻨﻮان ورودي ﺑﮕﯿﺮد و ﺗﻌﯿﯿﻦ ﮐﻨﺪ ﭼﻪ راﺑﻄﻪ اي ﺑﺎ ﻣﻀﺮب 4
دارد؟
10
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ اﻋﺪاد ﺑﯿﻦ 0و 9را ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓﯽ ﺑﮕﯿﺮد و زوج ،ﻓﺮد و ﺻﻔﺮ ﺑﻮدن آن را
ﻣﺸﺨﺺ ﻧﻤﺎﯾﺪ.
)d=floor(10*rand
switch d
}case {2, 4, 6, 8
;)'disp('even
}case {1, 3, 5, 7, 9
;)'disp('odd
otherwise
;)'disp('zero
end
11
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺣﻠﻘﻪ ﻫﺎ
oﺑﺰرﮔﺘﺮﯾﻦ اﻣﮑﺎن ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ ﮐﻪ ﺑﯿﺶ از ﻫﻤﻪ ﺑﺮاي اﻧﺴﺎن ﻣﻔﯿﺪ اﺳﺖ ،ﻗﺎﺑﻠﯿﺖ اﻧﺠﺎم ﮐﺎرﻫﺎي
ﺗﮑﺮاري ﺑﻪ دﻓﻌﺎت ﻓﺮاوان ﺑﻮده اﺳﺖ .ﺑﻪ ﻣﻨﻈﻮر اﻧﺠﺎم ﻣﮑﺮر ﯾﮏ ﺳﺮي از ﻋﻤﻠﯿﺎت ﺟﺒﺮي ،ﻣﺎﺗﺮﯾﺴﯽ،
ﻣﻨﻄﻘﯽ و ﺳﯿﻤﺒﻮﻟﯿﮏ ﺑﻪ ﺗﻌﺪاد ﻣﺸﺨﺺ در MATLABدو ﺳﺎﺧﺘﺎر وﺟﻮد دارد ﮐﻪ ﻋﺒﺎرﺗﻨﺪ از:
12
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
oاﯾﻦ ﺣﻠﻘﻪ اﯾﻦ اﻣﮑﺎن را ﺑﻪ وﺟﻮد ﻣﯽ آورد ﮐﻪ ﺗﻌﺪادي از دﺳﺘﻮرات ﺑﻪ ﺗﻌﺪاد دﻓﻌﺎت از ﻗﺒﻞ ﺗﻌﯿﯿﻦ
ﺷﺪه ﺗﮑﺮار ﺷﻮﻧﺪ .ﺷﮑﻞ ﮐﻠﯽ ﺣﻠﻘﻪ forﺑﺼﻮرت زﯾﺮ اﺳﺖ:
for variable = array
statements end
oﻫﺮ ﭼﻨﺪ ﮐﻪ در ﺣﺎﻟﺖ ﮐﻠﯽ arrayﻣﯽ ﺗﻮاﻧﺪ ﯾﮏ آراﯾﻪ دو ﺑﻌﺪي ﺑﺎﺷﺪ ،وﻟﯽ ﻣﻌﻤﻮﻻ ﺑﻪ ﺻﻮرت ﯾﮏ ﺑﺮدار
ﺳﻄﺮي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد ﮐﻪ در ﻫﺮ ﺑﺎر ﺗﮑﺮار ﺣﻠﻘﻪ ﯾﮏ ﻣﻘﺪار arrayدر variableﻗﺮار ﻣﯽ
ﮔﯿﺮد .ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ ﺣﻠﻘﻪ ﺑﻪ ﺗﻌﺪاد دراﯾﻪ ﻫﺎي arrayﺗﮑﺮار ﻣﯽ ﺷﻮد.
13
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
s=0;
for i=50:1:3000;
s=s+i;
end
disp('the sum of numbers between 50 and 3000 is: ')
disp(s)
14
ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن- ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
را ﺣﺴﺎب ﮐﻨﺪ؟3000 ﺗﺎ100 ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻣﺠﻤﻮع اﻋﺪاد زوج و ﻓﺮد ﺑﯿﻦo
15
ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن- ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ
http://agri.uok.ac.ir/kmollazade
ﺣﻠﻘﻪ ﻫﺎي ﻣﺘﺪاﺧﻞ )ﺗﻮ در ﺗﻮ(
oدر داﺧﻞ ﺣﻠﻘﻪ ﻫﺎي forﻣﯽ ﺗﻮان ﺑﻪ ﺗﻌﺪاد دﻟﺨﻮاه ﺣﻠﻘﻪ ﻫﺎي forدﯾﮕﺮي ﻧﻮﺷﺖ ﮐﻪ ﺑﻪ آن ﺣﻠﻘﻪ ﻫﺎي
ﺗﻮ در ﺗﻮ ﻣﯽ ﮔﻮﯾﻨﺪ .در ﺣﻠﻘﻪ ﻫﺎي ﻣﺘﺪاﺧﻞ ،ﺣﻠﻘﻪ داﺧﻠﯽ ﺑﺎﯾﺪ ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ درون ﺣﻠﻘﻪ ﺑﯿﺮوﻧﯽ ﻗﺮار ﮔﯿﺮد.
oﺗﻮﺟﻪ :1در ﺣﻠﻘﻪ ﻫﺎي ﺗﻮ در ﺗﻮ ،ﻫﺮ ﺣﻠﻘﻪ ﺑﺎﯾﺴﺘﯽ ﻣﺘﻐﯿﺮ ﺷﻤﺎرﻧﺪه ي ﻣﺘﻤﺎﯾﺰي داﺷﺘﻪ ﺑﺎﺷﺪ.
oﺗﻮﺟﻪ :2در داﺧﻞ ﺣﻠﻘﻪ forﻣﺠﺎز ﺑﻪ ﺗﻐﯿﯿﺮ ﻣﺘﻐﯿﺮ ﺷﻤﺎرﻧﺪه ﺣﻠﻘﻪ ﻧﯿﺴﺘﯿﻢ.
16
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻣﺎﺗﺮﯾﺴﯽ ﻣﺮﺑﻌﯽ 5×5ﺑﺴﺎزد ﮐﻪ ﻣﻘﺪار ﻫﺮ دراﯾﻪ آن ﺑﺮاﺑﺮ ﻣﺠﻤﻮع ﺷﻤﺎره
ﺳﻄﺮ و ﺳﺘﻮن آن ﺑﺎﺷﺪ؟
clear,clc
;)a=zeros(5,5
for m=1:5
for n=1:5
;a(m,n)=m+n
end
end
)disp(a
17
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺣﻠﻘﻪ ) whileﺳﺎﺧﺘﺎر (while-end
oاﯾﻦ ﺣﻠﻘﻪ ﺑﻪ ﻣﻨﻈﻮر ﺗﮑﺮار اﺟﺮاي ﻣﺠﻤﻮﻋﻪ اي از دﺳﺘﻮرات ﺗﺎ زﻣﺎن ﺑﺮﻗﺮار ﺑﻮدن ﺷﺮاﯾﻄﯽ ﺧﺎص ﺑﻪ ﮐﺎر
ﻣﯽ رود .اﯾﻦ ﺣﻠﻘﻪ ﺑﻪ ﺗﻌﺪاد دﻓﻌﺎت ﻧﺎﻣﺤﺪود ﺗﮑﺮار ﻣﯽ ﺷﻮد .ﺷﮑﻞ ﮐﻠﯽ ﺣﻠﻘﻪ whileﺑﻪ ﺻﻮرت زﯾﺮ
اﺳﺖ:
statements end
18
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻣﺮﺑﻊ اﻋﺪاد ﻃﺒﯿﻌﯽ را ﺑﻪ ﺷﺮﻃﯽ ﮐﻪ ﻣﺮﺑﻊ ﺷﺎن ﮐﻤﺘﺮ از 50ﺑﺎﺷﺪ ،ﻧﻤﺎﯾﺶ
دﻫﺪ؟
;i = 1
)disp(i^2
;i = i + 1
end
19
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﺟﺬرﻫﺎي ﻣﺘﻮاﻟﯽ x= 10000را ﺗﺎ زﻣﺎﻧﯽ ﮐﻪ ) (x-1ﺑﺰرﮔﺘﺮ ﻣﺴﺎوي 1ﺑﺎﺷﺪ ،ﺣﺴﺎب
ﮐﻨﺪ؟
;x=10000
while (x-1)>=1
;)x=sqrt(x
)disp(x
end
20
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
;i=1
while i>=0
;i=i+1
;)y=log10(i
)disp(y
end
oﺗﻮﺟﻪ :ﺑﺮاي ﻣﺘﻮﻗﻒ ﮐﺮدن ﻧﺘﯿﺠﻪ اﯾﻦ ﻧﻮع ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﺑﺎﯾﺪ ctrlو cرا ﻫﻢ زﻣﺎن ﻓﺸﺎر دﻫﯿﻢ.
21
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
دﺳﺘﻮر break
oﺑﺎ دﺳﺘﻮر breakﻣﯽﺗﻮان ﯾﮏ ﺣﻠﻘﻪ whileﯾﺎ forرا ﺷﮑﺴﺖ .در اﯾﻨﺼﻮرت اﺟﺮاي ﺑﺮﻧﺎﻣﻪ از ﻧﺨﺴﺘﯿﻦ
دﺳﺘﻮر ﺑﻌﺪ از ﺣﻠﻘﻪ اداﻣﻪ ﺧﻮاﻫﺪ ﯾﺎﻓﺖ.
oﻣﺜﺎل :ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻣﺠﻤﻮع اﻋﺪاد از 1ﺗﺎ 10000را ﺗﺎ زﻣﺎﻧﯽ ﮐﻪ ﻣﺠﻤﻮع ﮐﻤﺘﺮ از 20000را
ﺣﺴﺎب ﮐﻨﺪ و ﻣﻌﻠﻮم ﮐﻨﺪ اﯾﻦ ﻣﺠﻤﻮع از ﯾﮏ ﺗﺎ ﭼﻪ ﻋﺪدي اﺳﺖ؟
;s=0
for m=1:10000
;s=s+m
if s>20000
;break
end
end
)disp(s),disp(m
22
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
oﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺑﺮﻧﺎﻣﻪ در ﺣﯿﻦ اﺟﺮا ﺑﻪ دﺳﺘﻮر pauseﺑﺮﺳﺪ ﻣﺘﻮﻗﻒ ﻣﯽ ﻣﺎﻧﺪ ﺗﺎ اﯾﻨﮑﻪ ﺷﻤﺎ ﺻﻔﺤﻪ ﮐﻠﯿﺪ را ﻓﺸﺎر دﻫﯿﺪ
و ﺳﭙﺲ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ از دﺳﺘﻮر ﺑﻌﺪ از pauseاداﻣﻪ ﻣﯽ ﯾﺎﺑﺪ pause(n) .ﺗﻮﻗﻒ ﺑﻪ ﻣﺪت nﺛﺎﻧﯿﻪ اﺳﺖ.
oﻣﺜﺎل :در ﺑﺮﻧﺎﻣﻪ زﯾﺮ ،ﻫﺮ ﺑﺎر ﭘﺲ از ﻧﻤﺎﯾﺶ ﻣﻘﺎدﯾﺮ xو ،yﺑﺮﻧﺎﻣﻪ ﻣﺘﻮﻗﻒ ﻣﯽ ﺷﻮد ﺗﺎ اﯾﻨﮑﻪ ﮐﻠﯿﺪي روي ﺻﻔﺤﻪ
ﮐﻠﯿﺪ ﻓﺸﺮده ﺷﻮد .دﺳﺘﻮر breakﻧﯿﺰ ﺑﺎﻋﺚ ﺧﺎرج ﺷﺪن از ﺣﻠﻘﻪ forﺷﺪه و ﺑﺮﻧﺎﻣﻪ ﭘﺎﯾﺎن ﻣﯽ ﯾﺎﺑﺪ.
;k=0
for x=0:0.2:1
if k>=5
disp('k>=5'); break
end
;k=k+1
;)y=exp(-x
)disp('k= '), disp(k), disp('y='), disp(y
pause
end
23
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﺳﺎﺧﺖ ﻓﺎﯾﻞ ﺗﺎﺑﻌﯽ )(function file
oﮔﺎﻫﯽ اوﻗﺎت ﻣﻤﮑﻦ اﺳﺖ ﻧﯿﺎز ﺑﻪ ﺗﻮاﺑﻌﯽ ﺑﺎ ﮐﺎرﺑﺮدي ﺧﺎص داﺷﺘﻪ ﺑﺎﺷﯿﻢ ﮐﻪ در ﻣﺘﻠﺐ ﺗﻌﺮﯾﻒ
ﻧﺸﺪه اﻧﺪ و ﻧﯿﺎز اﺳﺖ ﮐﻪ اﯾﻦ ﺗﻮاﺑﻊ را ﺗﻌﺮﯾﻒ ﮐﻨﯿﻢ و ﯾﺎ ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻗﺼﺪ اﺳﺘﻔﺎده از زﯾﺮاﻟﮕﻮرﯾﺘﻢ را
دارﯾﻢ ،ﺑﺎﯾﺪ زﯾﺮاﻟﮕﻮرﯾﺘﻢ ﻫﺎ را ﺑﻪ ﺻﻮرت function fileﺗﺒﺪﯾﻞ ﻧﻤﺎﯾﯿﻢ.
oﯾﮏ ﻓﺎﯾﻞ ﺗﺎﺑﻌﯽ ﻣﺎﻧﻨﺪ ﯾﮏ m-fileاﺳﺖ ﺑﺎ اﯾﻦ ﺗﻔﺎوت ﮐﻪ ﺧﻂ اول آن ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ:
)function [outputs]=name(inputs
oدر اﯾﻦ ﺧﻂ ﻫﺮ ﯾﮏ از ﺧﺮوﺟﯽ ﻫﺎ و ورودي ﻫﺎ را در ﯾﮏ ﻣﺘﻐﯿﺮ ﺟﺪاﮔﺎﻧﻪ ﻗﺮار ﻣﯽ دﻫﯿﻢ .در ﺻﻮرﺗﯽ ﮐﻪ
ﯾﮏ ﺧﺮوﺟﯽ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ،دﯾﮕﺮ ﻧﯿﺎزي ﺑﻪ ﺑﺮاﮐﺖ ﻧﯿﺴﺖ name .ﻧﯿﺰ ﻧﺎم ﺗﺎﺑﻊ اﺳﺖ ﮐﻪ ﺑﻬﺘﺮ اﺳﺖ ﺑﯿﻦ
9ﺗﺎ 20ﮐﺎراﮐﺘﺮ ﺑﺎﺷﺪ و ﻧﺎم آن ﻫﺎ ﻧﺒﺎﯾﺪ ﻣﺸﺎﺑﻪ ﺗﻮاﺑﻊ ﻣﻮﺟﻮد در ﻣﺘﻠﺐ ﺑﺎﺷﺪ.
24
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي در MATLABﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ دو ﻋﺪد ﻃﺒﯿﻌﯽ mو nرا درﯾﺎﻓﺖ ﻧﻤﻮده و ﺗﺮﮐﯿﺐ آن دو را
ﻣﺤﺎﺳﺒﻪ ﻧﻤﺎﯾﺪ؟ از ﻣﻔﻬﻮم زﯾﺮاﻟﮕﻮرﯾﺘﻢ اﺳﺘﻔﺎده ﻧﻤﺎﯾﯿﺪ.
25
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
اداﻣﻪ ﻣﺜﺎل ﻗﺒﻞ
)function [p]=FACT(T
;p=1
for I=1:1:T
;p=p*I
end
end
oﺑﺮﻧﺎﻣﻪ اﺻﻠﯽ
;)' m=input('Input m:
;)' n=input ('Input n:
;)A=FACT(m
;)B=FACT(n
;)C=FACT(m-n
;)S=A/(B*C
)' disp ('The answer is:
)disp (S
26
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
ﻣﺜﺎل
oﺑﺮﻧﺎﻣﻪ اي در MATLABﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻋﺪد ﻃﺒﯿﻌﯽ Nرا ﺳﻮال ﻧﻤﻮده N ،ﻋﺪد را ﯾﮑﯽ ﯾﮑﯽ درﯾﺎﻓﺖ و
ﻣﻌﯿﻦ ﮐﻨﺪ ﮐﺪاﻣﯿﮏ ﺗﺎم ﻫﺴﺘﻨﺪ؟ از ﻣﻔﻬﻮم زﯾﺮاﻟﮕﻮرﯾﺘﻢ اﺳﺘﻔﺎده ﻧﻤﺎﯾﯿﺪ.
27
ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ -ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن
http://agri.uok.ac.ir/kmollazade
اداﻣﻪ ﻣﺜﺎل ﻗﺒﻞ
28
ﮔﺮوه ﻣﻬﻨﺪﺳﯽ ﺑﯿﻮﺳﯿﺴﺘﻢ– داﻧﺸﮕﺎه ﮐﺮدﺳﺘﺎن- ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ راﯾﺎﻧﻪ
http://agri.uok.ac.ir/kmollazade