lecture 3.pdf

‫ﻣﺪرس ‪ :‬ﻧﻮري‬
‫ﻣﻬﺮ ‪88‬‬
‫ﻣﻄﺎﻟﺐ ﺟﻠﺴﻪ ﻗﺒﻞ‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫‪y‬‬
‫‪2‬‬
‫ﺳﺎﺧﺘﺎر ﻛﻠﻲ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﭘﺎﺳﻜﺎل‬
‫دﺳﺘﻮرات ورودي و ﺧﺮوﺟﻲ‬
‫دو ﻧﻮع داده )ﺻﺤﻴﺢ و اﻋﺸﺎري(‬
‫دﺳﺘﻮر اﻧﺘﺴﺎب‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺳﺎﺧﺘﺎر ﻛﻠﻲ ﺑﺮﻧﺎﻣﻪ‬
program TITLE;
const
const = value;
const = value;
var
variable list : type;
begin
program statements;
program statement
end.
‫ﻧﻮري‬: ‫ﻣﺪرس‬
‫ﺑﺨﺶ ﺗﻌﺎرﻳﻒ‬
‫ﺑﺪﻧﻪ اﺻﻠﻲ ﺑﺮﻧﺎﻣﻪ‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
3
‫ ﺧﺮوﺟﻲ‬/ ‫دﺳﺘﻮرات ورودي‬
y Read a Line = Readln
y Write a Line= Writeln
y ReadLn(a, b);
y Write(‘A simple message’);
‫ﻧﻮري‬: ‫ﻣﺪرس‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
4
‫ﻧﻤﺎﻳﺶ رﺷﺘﻪﻫﺎي ﻃﻮﻻﻧﻲ‬
‫‪ y‬ﺑﻬﺘﺮ اﺳﺖ رﺷﺘﻪﻫﺎي ﻃﻮﻻﻧﻲ را در ﭼﻨﺪ ﺧﻂ ﻧﻤﺎﻳﺶ دﻫﻴﻢ‪.‬‬
‫;)’‪WriteLn(‘This is a great program‬‬
‫;)’‪WriteLn(‘It calculates the sinus of an angle‬‬
‫‪ y‬اﮔﺮ ﻻزم اﺳﺖ ﻳﻚ رﺷﺘﻪ ﻃﻮﻻﻧﻲ در ﻳﻚ ﺧﻂ ﭼﺎپ ﺷﻮد‪ ،‬ﻻزم ﻧﻴﺴﺖ ﻫﻤﻪ‬
‫آن رﺷﺘﻪ در ﺑﺮﻧﺎﻣﻪ ﻧﻴﺰ در ﻳﻚ ﺧﻂ ﻧﻮﺷﺖ‪.‬‬
‫;)’‪Write(‘This line displays‬‬
‫;)’ ‪Write(‘the value of X(‘, X, ‘) and‬‬
‫;)’‪WriteLn(‘the value of Y(‘, Y, ‘).‬‬
‫‪5‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺳﻮال‬
‫‪ y‬ﭼﮕﻮﻧﻪ ﻣﻲﺗﻮان ﻋﻼﻣﺖ ’ را در ﺧﺮوﺟﻲ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻧﻤﺎﻳﺶ داد؟‬
‫;)’‪WriteLn(’It’’s rainy now.‬‬
‫;)’‪WriteLn(’I’ll go.‬‬
‫‪6‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻧﻮع ﻋﺪدي ﺻﺤﻴﺢ و اﻋﺸﺎري‬
‫;‪program DataTypes‬‬
‫‪var‬‬
‫;‪a, b : Integer‬‬
‫;‪r, z : Real‬‬
‫‪begin‬‬
‫;‪a := 10‬‬
‫;)‪b := a + sqr(5‬‬
‫;‪z := 25.5663‬‬
‫‪r := a / 5‬‬
‫‪end.‬‬
‫‪7‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﺑﺨﺶ ﺗﻌﺮﻳﻒ ﺑﺮﻧﺎﻣﻪاي ﺑﺎ ﻧﺎم ‪ Mine‬را ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺛﺎﺑﺘﻲ ﺑﺎ ﻧﺎم ‪MY_PI‬‬
‫ﺑﺎ ﻣﻘﺪار ‪ 3.14159‬داﺷﺘﻪ ﺑﺎﺷﺪ و ﻣﺘﻐﻴﺮﻫﺎي ‪ Area ،Radius‬و‬
‫‪ Circumf‬از ﻧﻮع اﻋﺸﺎري و ﻣﺘﻐﻴﺮ ‪ NumCirc‬از ﻧﻮع ﺻﺤﻴﺢ داﺷﺘﻪ‬
‫ﺑﺎﺷﺪ‪.‬‬
‫‪8‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﭘﺎﺳﺦ‬
program DataTypes;
const
MY_PI = 3.14159;
var
Radius : Real;
NumCirc : Integer;
Area, Circumf : Real;
‫ﻧﻮري‬: ‫ﻣﺪرس‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
9
‫دﺳﺘﻮر اﻧﺘﺴﺎب‬
‫;)‪b := a + sqr(5‬‬
‫;‪z := 25.5663‬‬
‫)‪z := 12 + sqr(b‬‬
‫‪10‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻋﺒﺎرات‬
‫‪ y‬ﭼﻬﺎر ﻋﻤﻞ اﺻﻠﻲ‬
‫‪+y‬‬
‫‪-‬‬
‫*‬
‫‪/‬‬
‫‪ y‬ﺣﺎﺻﻞ ‪ * ، - ، +‬ﻫﻤﺎﻧﻨﺪ ﻋﻤﻠﻮﻧﺪﻫﺎﺳﺖ‬
‫‪10 + 20.4 y‬‬
‫‪152 – 42 y‬‬
‫‪742.4 * 98 y‬‬
‫‪ y‬ﺣﺎﺻﻞ ﺗﻘﺴﻴﻢ‪ ،‬ﻫﻤﻴﺸﻪ ﺣﻘﻴﻘﻲ اﺳﺖ‪.‬‬
‫‪10 / 5 = 2 y‬‬
‫‪10 / 5 = 2.0 y‬‬
‫‪10 / 4 = 2.5 y‬‬
‫‪11‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫اوﻟﻮﻳﺖﻫﺎ‬
‫‪.١‬‬
‫‪.٢‬‬
‫‪.٣‬‬
‫‪.۴‬‬
‫‪.۵‬‬
‫‪12‬‬
‫اﺑﺘﺪا ﻋﺒﺎرات داﺧﻞ ﭘﺮاﻧﺘﺰﻫﺎ ﻣﺤﺎﺳﺒﻪ ﻣﻲﺷﻮﻧﺪ‪.‬‬
‫ﭘﺮاﻧﺘﺰﻫﺎي ﺗﻮ در ﺗﻮ از داﺧﻞ ﺣﺴﺎب ﻣﻲﺷﻮﻧﺪ‪.‬‬
‫ﻋﻤﻞﮔﺮﻫﺎي ‪ / ،div ،mod‬و *‬
‫ﻋﻤﻞﮔﺮﻫﺎي ‪ -‬و ‪+‬‬
‫ﻋﻤﻞﮔﺮﻫﺎي ﺑﺎ ﻳﻚ اوﻟﻮﻳﺖ از ﺳﻤﺖ ﭼﭗ‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻣﺜﺎل‬
‫)‪A := 1 / (1 + X * X‬‬
‫‪13‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﺗﺮﺗﻴﺐ ﻋﻤﻞﮔﺮﻫﺎ‬
‫‪b2 – 4ac‬‬
‫‪b * b – 4 * a * c‬‬
‫)‪X + Y * C * K – (L mod D‬‬
‫‪6‬‬
‫‪5‬‬
‫‪2‬‬
‫‪2‬‬
‫‪5‬‬
‫‪18‬‬
‫‪10‬‬
‫‪1‬‬
‫‪20‬‬
‫‪38‬‬
‫‪14‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫‪37‬‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺳﻪ ﻋﺪد را از ورودي درﻳﺎﻓﺖ ﻛﺮده و ﻣﻴﺎﻧﮕﻴﻦ آنﻫﺎ‬
‫را ﻣﺤﺎﺳﺒﻪ ﻛﻨﺪ‪ .‬ﭘﻴﺎمﻫﺎي ﻻزم ﺑﺮاي ﻛﺎرﺑﺮ را ﻧﻤﺎﻳﺶ دﻫﻴﺪ‪.‬‬
‫‪15‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺿﺮاﻳﺐ ﻣﻌﺎدﻟﻪ درﺟﻪ دو را درﻳﺎﻓﺖ ﻛﺮده و‬
‫ﺟﻮابﻫﺎي آن را ﻧﻤﺎﻳﺶ دﻫﺪ‪.‬‬
‫‪16‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬
‫ﻣﺴﺄﻟﻪ‬
‫‪ y‬ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ دو ﻋﺪد را درﻳﺎﻓﺖ ﻛﺮده و ﻣﺎﻛﺰﻳﻤﻢ و ﻣﻴﻨﻴﻤﻢ آنﻫﺎ‬
‫را ﻣﺤﺎﺳﺒﻪ ﻛﻨﺪ‪.‬‬
‫‪17‬‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫ﻣﺪرس‪: ‬ﻧﻮري‬