ﻣﺪرس :ﻧﻮري آﺑﺎن 88 اﻧﻮاع زﻳﺮﺑﺎزه yﮔﺎﻫﻲ اوﻗﺎت اﺳﺘﻔﺎده از زﻳﺮﺑﺎزهﻫﺎ ﺑﺮاي اﻓﺰاﻳﺶ دﻗﺖ ﺑﺮﻧﺎﻣﻪ ﻣﻨﺎﺳﺐ ﻣﻲﺑﺎﺷﺪ. yاﺳﺘﻔﺎده از زﻳﺮﺑﺎزهﻫﺎ ﺑﺎﻋﺚ ﺟﻠﻮﮔﻴﺮي از ﺑﺮوز ﺑﺮﺧﻲ ﺧﻄﺎﻫﺎ ﺧﻮاﻫﺪ ﺷﺪ. yﺑﺮﻧﺎﻣﻪ زﻳﺮ در ﻫﺮ دو ﺧﻂ اﻧﺘﺴﺎب ﺧﻄﺎي ﻛﺎﻣﭙﺎﻳﻞ ﺧﻮاﻫﺪ داﺷﺖ. type var ;’Letter = ‘A’ .. ‘Z ;’NextChar :‘A’ .. ‘Z ;DaysInMonth = 1..31 ;InDay : 1..31 var begin ;NextChar : Letter ;’NextChar := ‘a ;InDay : DaysInMonth InDay := 50 begin end. ;’NextChar := ‘a InDay := 50 end. 2 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري Syntaxﺗﻌﺮﻳﻒ زﻳﺮﺑﺎزه type Maxvalue .. subrange-type = minvalue type ’LowCase = ‘a’..‘z 3 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري اﻧﻮاع زﻳﺮﺑﺎزه yزﻳﺮﺑﺎزهﻫﺎ ﺑﻪ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺲ اﻣﻜﺎن ﺑﺮرﺳﻲ ﻣﻌﺘﺒﺮ ﺑﻮدن ﻣﻘﺎدﻳﺮ ﻣﺘﻐﻴﺮﻫﺎ را ﻣﻲدﻫﻨﺪ. yﺑﻪﻃﻮر ﻋﺎدي ،ﺑﺮرﺳﻲ ﻗﺮار ﮔﺮﻓﺘﻦ ﻣﻘﺎدﻳﺮ در ﺑﺎزه ﻣﻮرد ﻧﻈﺮ در زﻣﺎن ﻛﺎﻣﭙﺎﻳﻞ اﺗﻔﺎق ﻣﻲاﻓﺘﺪ. yﻳﻌﻨﻲ اﮔﺮ ﻛﺎﻣﭙﺎﻳﻠﺮ ﻋﻤﻠﻴﺎت اﻧﺘﺴﺎب ﻏﻴﺮ ﻣﻌﺘﺒﺮي را ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﺪ از ﻛﺎﻣﭙﺎﻳﻞ ﺑﺮﻧﺎﻣﻪ ﺟﻠﻮﮔﻴﺮي ﻣﻲﻛﻨﺪ. yوﻟﻲ اﮔﺮ در زﻣﺎن اﺟﺮا ﭼﻨﻴﻦ اﺗﻔﺎﻗﻲ ﺑﻴﻔﺘﺪ ،ﺑﺮﻧﺎﻣﻪ ﺑﺪون ﻣﺸﻜﻞ اداﻣﻪ ﻣﻲﻳﺎﺑﺪ. yﻣﺜﻼً اﮔﺮ در دﺳﺘﻮر ) ،ReadLn(InDayﻛﺎرﺑﺮ ﻣﻘﺪار 50را وارد ﻛﻨﺪ، ﺑﺮﻧﺎﻣﻪ ﻛﺎر ﺧﻮد را اداﻣﻪ ﻣﻲدﻫﺪ. 4 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري Range Checkدر زﻣﺎن اﺟﺮا yاﮔﺮ ﺑﺨﻮاﻫﻴﻢ در زﻣﺎن اﺟﺮا ﻧﻴﺰ ﻋﻤﻠﻴﺎت ﺑﺮرﺳﻲ اﻋﺘﺒﺎر ﻣﻘﺎدﻳﺮ اﻧﺠﺎم ﺷﻮد از دﺳﺘﻮراﻟﻌﻤﻞ } {$R+اﺳﺘﻔﺎده ﻣﻲﻛﻨﻴﻢ. }{$R+ type ;’Letter = ‘A’ .. ‘Z ;DaysInMonth = 1..31 var ;NextChar : Letter ;InDay : DaysInMonth begin ;)ReadLn(NextChar )ReadLn(InDay end. 5 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري دﺳﺘﻮراﻟﻌﻤﻞ }{$R+ {$R+} yﻳﻚ Directiveﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد. Directive yﻫﺎ ﻛﻠﻤﺎﺗﻲ ﺑﻪ ﺻﻮرت $R ،$N ،$Eو ...ﻫﺴﺘﻨﺪ ﻛﻪ ﺗﻨﻈﻴﻤﺎت ﻛﺎﻣﭙﺎﻳﻠﺮ را ﺗﻐﻴﻴﺮ ﻣﻲدﻫﻨﺪ. yﻫﺮﭼﻨﺪ اﻳﻦ دﺳﺘﻮراﻟﻌﻤﻞﻫﺎ ﺑﻪ ﺻﻮرت ﺗﻮﺿﻴﺢ ) (commentﻣﻲآﻳﻨﺪ ،وﻟﻲ ﺗﻮﺳﻂ ﻛﺎﻣﭙﺎﻳﻠﺮ ﺧﻮاﻧﺪه و اﺟﺮا ﻣﻲﺷﻮﻧﺪ. {$R+} yﻋﻤﻠﻴﺎت Range Checkرا ﻓﻌﺎل ﻣﻲﺳﺎزد. {$R-} yﻋﻤﻠﻴﺎت Range Checkرا ﻏﻴﺮ ﻓﻌﺎل ﻣﻲﺳﺎزد. yﺑﻪ ﺻﻮرت ﭘﻴﺶﻓﺮض ﻋﻤﻠﻴﺎت Range Checkﻏﻴﺮﻓﻌﺎل اﺳﺖ {$R-} y 6 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري اﻧﻮاع داده ﭘﻴﺸﺮﻓﺘﻪ )ﺻﺤﻴﺢ( 7 ﺑﺎزه ﻧﻮع 0..255 Byte -128..127 ShortInt -32768..32767 Integer 0..65535 Word -2147483648...2147483647 LongInt ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري اﻧﻮاع داده ﭘﻴﺸﺮﻓﺘﻪ )اﻋﺸﺎري( 8 ﺑﺎزه ﻧﻮع 1.5E-45..3.4E38 Single 2.9E-39..1.7E38 Real 5.0E-324..1.7E308 Double 1.9E-4951..1.1E4932 Extended ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري اﻧﻮاع داده ﭘﻴﺸﺮﻓﺘﻪ )اﻋﺸﺎري( yﺑﺮاي اﺳﺘﻔﺎده از اﻧﻮاع داده اﻋﺸﺎري ﺑﺠﺰ ،Realﺑﺎﻳﺪ از دﺳﺘﻮراﻟﻌﻤﻞ زﻳﺮ اﺳﺘﻔﺎده ﻛﻨﻴﺪ. }{$N+,E- 9 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري اﻧﺘﺴﺎب ﻣﻘﺎدﻳﺮ دادهﻫﺎ yدر ﻋﺒﺎرتﻫﺎي رﻳﺎﺿﻲ yاﻧﻮاع ﺻﺤﻴﺢ ﻗﺎﺑﻞ اﻧﺘﺴﺎب ﺑﻪ ﻫﻢ ﻫﺴﺘﻨﺪ. yاﻧﻮاع اﻋﺸﺎري ﻗﺎﺑﻞ اﻧﺘﺴﺎب ﺑﻪ ﻫﻢ ﻫﺴﺘﻨﺪ. yﺑﺮاي اﻧﺘﺴﺎب ﺑﺎﻳﺪ yاﻧﻮاع ﺑﺎ ﻫﻢ ﻗﺎﺑﻞ اﻧﻄﺒﺎق ﺑﺎﺷﻨﺪ. yﻣﻘﺪار ﻣﺤﺎﺳﺒﻪ ﺷﺪه در ﻧﻮع داده ﻗﺮار ﺑﮕﻴﺮد. yﻋﺪد ﺻﺤﻴﺢ در ﻣﺘﻐﻴﺮ ﺣﻘﻴﻘﻲ ﻗﺎﺑﻞ اﻧﺘﺴﺎب اﺳﺖ. 10 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﺗﺮﺗﻴﺐ ﺗﻌﺎرﻳﻒ در ﭘﺎﺳﻜﺎل yدر ﭘﺎﺳﻜﺎل اﺳﺘﺎﻧﺪارد ﺗﻌﺎرﻳﻒ ﺑﺎﻳﺪ ﺑﻪ ﺗﺮﺗﻴﺐ زﻳﺮ ﺑﺎﺷﻨﺪ. yوﻟﻲ در ﺗﻮرﺑﻮ ﭘﺎﺳﻜﺎل ،ﻻزم ﻧﻴﺴﺖ اﻳﻦ ﺗﺮﺗﻴﺐ رﻋﺎﻳﺖ ﺷﻮد ،ﻓﻘﻂ ﻛﺎﻓﻲ اﺳﺖ ﻫﺮ ﭼﻴﺰ ﻗﺒﻞ از اﺳﺘﻔﺎده ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﺪ. Constant declarations Type declarations Variable declarations Procedure and Function declarations 11 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﮔﻮﻧﻪﻫﺎي ﺷﻤﺎرﺷﻲ Enumerated Types yﺑﺮاي اﻓﺰاﻳﺶ ﻗﺪرت ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ،ﭘﺎﺳﻜﺎل ﺑﻪ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺲ اﺟﺎزه ﺗﻌﺮﻳﻒ اﻧﻮاع داده ﺟﺪﻳﺪ را ﻣﻲدﻫﺪ. yدر اﻳﻦ ﻧﻮع دادهﻫﺎ ،ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺲ ﻣﻘﺎدﻳﺮ ﻣﻤﻜﻦ ﻗﺎﺑﻞ اﻧﺘﺴﺎب ﺑﻪ ﻣﺘﻐﻴﺮﻫﺎ را ﻣﺸﺨﺺ ﻛﺮده و ﻣﺘﻐﻴﺮﻫﺎي ﺗﻌﺮﻳﻒ ﺷﺪه از آن ﻧﻮع ،ﻓﻘﻂ ﻣﻲﺗﻮاﻧﺪ اﻳﻦ ﻣﻘﺎدﻳﺮ را ﺑﮕﻴﺮد. 12 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﮔﻮﻧﻪﻫﺎي ﺷﻤﺎرﺷﻲ type Days = (Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday); var Day : Days; begin if day = Saturday then WriteLn(‘Sat’); WriteLn(Ord(day)); if Sunday < Monday then … if Wednesday = Wednesday then … if day < Sunday then … end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 13 Syntaxﺗﻌﺮﻳﻒ ﮔﻮﻧﻪ ﺷﻤﺎرﺷﻲ type ;)enumerated-type = (identifier-list type ;)class = (Freshman, Sophomore, Junior, Senior ;)TDay = (Tuesday, Thursday اﮔﺮ ﺗﻌﺮﻳﻒ TDayﺑﻪ ﻫﻤﺮاه ﺗﻌﺮﻳﻒ Daysدرﺻﻔﺤﻪ ﻗﺒﻞ در ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﺑﺎﺷﻨﺪ، ﺑﺮﻧﺎﻣﻪ ﻛﺎﻣﭙﺎﻳﻞ ﻧﺨﻮاﻫﺪ ﺷﺪ ،زﻳﺮا ﻫﺮ ﻧﺎم )ﻣﺜﻞ (Tuesdayﻓﻘﻂ ﻳﻚ ﺑﺎر ﻗﺎﺑﻞ اﺳﺘﻔﺎده اﺳﺖ. 14 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري ﻛﺎر ﺑﺎ ﮔﻮﻧﻪﻫﺎي ﺷﻤﺎرﺷﻲ type 0 1 2 Days = (Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday); 3 4 5 6 var Today, Tomorrow : Days; begin Today := Friday; Tomorrow := Saturday; WriteLn(Today = Friday); WriteLn(Tomorrow = Saturday); WriteLn(Today > Tomorrow); WriteLn(Today <> Wednesday); WriteLn(Today >= Sunday) end. ﻧﻮري: ﻣﺪرس ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 15 ﻛﺎر ﺑﺎ ﮔﻮﻧﻪﻫﺎي ﺷﻤﺎرﺷﻲ type 0 1 2 Days = (Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday); 3 4 5 6 var Today, Tomorrow : Days; begin Today := Friday; Tomorrow := Saturday; WriteLn(Ord(today)); WriteLn(Ord(tomorrow)); WriteLn(Ord(Succ(Today))); WriteLn(Ord(Pred(Today))) end. ﻧﻮري: ﻣﺪرس ﺗﻌﺮﻳﻒ ﻧﺸﺪه ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 16 ﻣﺘﻐﻴﺮﻫﺎي ﺷﻤﺎرﺷﻲ در دﺳﺘﻮرات ورودي/ﺧﺮوﺟﻲ yﻣﺘﻐﻴﺮﻫﺎي از ﻧﻮع ﺷﻤﺎرﺷﻲ را ﻧﻤﻲﺗﻮان در دﺳﺘﻮرات ورودي و ﺧﺮوﺟﻲ اﺳﺘﻔﺎده ﻛﺮد )دﺳﺘﻮرات Writeو .(Read yﺑﺮاي ﻧﻤﺎﻳﺶ ﻣﻘﺪار ﻣﺘﻐﻴﺮﻫﺎي ﺷﻤﺎرﺷﻲ ﻣﻲﺗﻮان case day of از caseاﺳﺘﻔﺎده ﻛﺮد. ;)’Saturday: Write(‘Sat . . . yﺑﺮاي درﻳﺎﻓﺖ ﻣﻘﺪار ﻳﻚ ﻣﺘﻐﻴﺮ ﺷﻤﺎرﺷﻲ از ﻛﺎرﺑﺮ ﻣﻲﺗﻮان ﺑﻪ ﺻﻮرت زﻳﺮ ﻋﻤﻞ ﻛﺮد. 17 end ;)Read(D if D = ‘Sat’ then Day := Saturday else if D = ‘Sun’ then Day := Sunday … ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري زﻳﺮﺑﺎزهاي از ﮔﻮﻧﻪﻫﺎي ﺷﻤﺎرﺷﻲ ﻣﻲﺗﻮان زﻳﺮﺑﺎزهاي از ﻳﻚ ﮔﻮﻧﻪ ﺷﻤﺎرﺷﻲ را، ﻫﻤﺎﻧﻨﺪ ﺳﺎﻳﺮ اﻧﻮاع ﺗﺮﺗﻴﺒﻲy .ﺗﻌﺮﻳﻒ ﻛﺮد type Days = (Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday); WeekDays = Saturday..Wednesday; var SchoolDay : WeekDays; Begin SchoolDay := Monday; SchoolDay := Friday; end. ﻧﻮري: ﻣﺪرس Constant out of range ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ 18 ﺗﻤﺮﻳﻦ yﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ﺳﺮي زﻳﺮ ﺗﺎ ﺟﻤﻠﻪ Sin(x) ،100را ﻣﺤﺎﺳﺒﻪ ﻛﺮده و ﺳﭙﺲ ﺑﺎ ﻣﻘﺪار واﻗﻌﻲ ) Sin(xﻣﻘﺎﻳﺴﻪ و ﺗﻔﺎوت را ﭼﺎپ ﻛﻨﺪ. x3 x5 x7 sin(x) = x − + − + ... !3! 5! 7 19 ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل – داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ ﻣﺪرس: ﻧﻮري
© Copyright 2025 Paperzz