دستور Case انواع داده تکمیل مطالب گذشته ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﭘﺎﺳﻜﺎل -ﺟﻠﺴﻪ ﺷﺸﻢ ﻣﺪرس :ﻧﻮري داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ آﺑﺎن 1 / 26 آبان 88 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور Case انواع داده تکمیل مطالب گذشته انواع داده انواع مختلف داده • Integer • Real • Boolean • Char • String 2 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور نوع داده • • • تکمیل مطالب گذشته Case انواع داده نوع داده Char ﻛﻮﭼﻚﺗﺮﻳﻦ ﻧﻮع داده اﺳﺖ )ﻳﻚ ﺑﺎﻳﺖ(. ﺑﺮاي ذﺧﻴﺮه ﻛﺎراﻛﺘﺮﻫﺎي ﻧﻤﺎﻳﺸﻲ )ﻣﺜﻞ ﺣﺮف ،رﻗﻢ و ﻋﻼﻳﻢ ﺧﺎص( اﺳﺘﻔﺎده ﻣﻲﺷﻮد. ﻫﺮ ﻛﺎراﻛﺘﺮ در داﺧﻞ ﻳﻚ (’) Signle Quoteﻗﺮار ﻣﻲﮔﻴﺮد. • از ﻧﻤﻮﻧﻪﻫﺎي ﻛﺎراﻛﺘﺮ ﻣﻲﺗﻮان ﺑﻪ و ’&’ اﺷﺎره ﻛﺮد. • ﻓﺎﺻﻠﻪ ﺧﺎﻟﻲ ﻳﻚ ﻛﺎراﻛﺘﺮ اﺳﺖ و ﺑﺎ • ﻳﻜﻲ از ﭘﺮﻛﺎرﺑﺮدﺗﺮﻳﻦ ﻣﺠﻤﻮﻋﻪ ﻛﺎراﻛﺘﺮﻫﺎ ،ﻣﺠﻤﻮﻋﻪ اﺳﻜﻲ )(ASCII اﺳﺖ. 3 / 26 Char آبان 88 ’’$’ ’+’ ،’*’ ،’0’ ،’a’ ،’A ’ ’ ﻧﺸﺎن داده ﻣﻲﺷﻮد. برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور Case جدول 4 / 26 تکمیل مطالب گذشته نوع داده کاراکترهای ASCII آبان 88 انواع داده برنامهنویسی پاسکال Char )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case مجموعه کاراکترهای انواع داده نوع داده ASCII • ﻫﺮ ﻳﻚ از 128ﻣﻘﺪار ﻣﺠﻤﻮﻋﻪ ﻛﺎراﻛﺘﺮﻫﺎي ASCIIﻧﺸﺎندﻫﻨﺪه ﻳﻜﻲ از ﻛﺎراﻛﺘﺮﻫﺎﺳﺖ. • ﻣﺜﻼً ﻣﻘﺪار 65ﻧﻤﺎﻳﻨﺪه ’ ’Aو ﻣﻘﺪار 43ﻧﻤﺎﻳﻨﺪه ’ ’+اﺳﺖ. • ﻫﺮ ﻛﺎراﻛﺘﺮ ،ﻣﺤﻞ ﻣﺸﺨﺼﻲ در ﺗﺮﺗﻴﺐ ﺑﻴﻦ ﻛﺎراﻛﺘﺮﻫﺎ در اﻳﻦ ﻣﺠﻤﻮﻋﻪ دارد. 5 / 26 آبان 88 Char برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case مجموعه کاراکترهای انواع داده نوع داده ASCII • ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ ﻣﻘﺪار ﻣﻲﺗﻮان ﻛﺎراﻛﺘﺮﻫﺎ را ﺑﺎ ﻫﻢ ﻣﻘﺎﻳﺴﻪ ﻛﺮد. • ﻣﺜﻼً ’ ’Bﻛﻪ ﺑﺎ ﻣﻘﺪار 66ﻣﺸﺨﺺ ﻣﻲﺷﻮد از ’ ’Aﺑﺰرﮔﺘﺮ اﺳﺖ. • ’ ’+از ’ ’Aﻛﻮﭼﻜﺘﺮ اﺳﺖ زﻳﺮا 43از 65ﻛﻮﭼﻜﺘﺮ اﺳﺖ. • 32ﻛﺎراﻛﺘﺮ اول ﺟﺪول ﻛﺎراﻛﺘﺮﻫﺎي ASCIIﻗﺎﺑﻞ ﭼﺎپ ﻧﻴﺴﺘﻨﺪ. • 14اﻣﻴﻦ ﻛﺎراﻛﺘﺮ )ﻛﺎراﻛﺘﺮ (13ﻛﺎراﻛﺘﺮ ﺧﻂ ﺟﺪﻳﺪ اﺳﺖ. 6 / 26 آبان 88 Char برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور مجموعه کاراکترهای • تکمیل مطالب گذشته Case انواع داده نوع داده ASCII ﺗﺎﺑﻊ Ordﺷﻤﺎره ﺗﺮﺗﻴﺐ ﻳﻚ ﻛﺎراﻛﺘﺮ را در ﻣﺠﻤﻮﻋﻪ ﺑﺮﻣﻲﮔﺮداﻧﺪ. ASCII • ﻣﺜﻼً )’ Ord(’Bﻣﻘﺪار 66را ﺑﺮﻣﻲﮔﺮداﻧﺪ. • ﺗﺎﺑﻊ Chrﻛﺎراﻛﺘﺮ ﺑﺎ ﺷﻤﺎره ﺗﺮﺗﻴﺐ داده ﺷﺪه را ﺑﺮﻣﻲﮔﺮداﻧﺪ. • ﻣﺜﻼً ) Chr(66ﻛﺎراﻛﺘﺮ ’ ’Bرا ﺑﺮﻣﻲﮔﺮداﻧﺪ. 7 / 26 آبان 88 Char برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور Case تکمیل مطالب گذشته انواع داده نوع داده استفاده از متغیرهای کاراکتری Char var ;A, B : Char ;Ch : Char begin ;’A := ’A ;’A := ’B ;’*’ =A : ;))WriteLn(Ord(A ;B := A }’ ’{ ;)Ch := Chr(32 ;)ReadLn(Ch )Read(Ch end. 8 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور Case انواع داده تکمیل مطالب گذشته نوع داده نوع داده رشته • ﻳﻚ رﺷﺘﻪ دﻧﺒﺎﻟﻪاي ﺑﻪ ﻃﻮل ﺻﻔﺮ ﻳﺎ ﺑﻴﺸﺘﺮ از ﻛﺎراﻛﺘﺮﻫﺎﺳﺖ. • رﺷﺘﻪﻫﺎ در ﭘﺎﺳﻜﺎل در ﺑﻴﻦ دو ﻋﻼﻣﺖ ’ ﻗﺮار ﻣﻲﮔﻴﺮد. • رﺷﺘﻪ ﺑﻪ ﻃﻮل ﺻﻔﺮ ،رﺷﺘﻪ ﺗﻬﻲ ) (nullﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد و ﺑﻪ ﺻﻮرت ” ﻧﻤﺎﻳﺶ داده ﻣﻲﺷﻮد. • ﻫﺮ ﻛﺎراﻛﺘﺮ در ﻳﻚ رﺷﺘﻪ ،ﻣﺤﻞ ﻣﺸﺨﺼﻲ دارد. • اوﻟﻴﻦ ﻛﺎراﻛﺘﺮ در رﺷﺘﻪ در ﻣﺤﻞ ،1دوﻣﻴﻦ ﻛﺎراﻛﺘﺮ در ﻣﺤﻞ 2و ...ﻗﺮار دارﻧﺪ. • ﻃﻮل ﻳﻚ رﺷﺘﻪ ،ﺗﻌﺪاد ﻛﺎراﻛﺘﺮﻫﺎي ﺗﺸﻜﻴﻞ دﻫﻨﺪه آن اﺳﺖ. 9 / 26 آبان 88 برنامهنویسی پاسکال Char )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case استفاده از متغیرهای کاراکتری انواع داده نوع داده Char var ;A, B : String ;St : String begin ;’A := ’ABCDEF ;’A := ’B ;’)A := ’*(ABC ;)WriteLn(A ;B := A ;)ReadLn(A )Read(A, B end. 10 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری انواع داده دستور شرط تکمیل مطالب گذشته Case دستور چند انتخابیif تو در تو بهif تبدیل if Single then if Gender = ’M’then if (Age >= 18) and Age <= 26) then WriteLn(’Current person satisfies the critieria if Single and (Gender = ’M’) and (Age >= 18) and Age <= 26) then WriteLn(’Current person satisfies the critieria.’) نوری:)دانشگاه صنعتی شریف( مدرس برنامهنویسی پاسکال 88 آبان 11 / 26 دستور تکمیل مطالب گذشته Case انواع داده دستور شرط مثال • • • 12 / 26 اﮔﺮ در ﺗﺎﺑﺴﺘﺎن ﺑﻴﺸﺘﺮ از 2000$درآﻣﺪ داﺷﺘﻴﺪ و ﻧﻤﺮه ﺷﻤﺎ از 1300ﺑﻴﺸﺘﺮ ﺷﺪ ،ﻣﻲﺗﻮاﻧﻴﺪ ﺑﻪ داﻧﺸﮕﺎه ﻣﻮرد ﻋﻼﻗﻪ ﺧﻮد ﺑﺮوﻳﺪ. اﮔﺮ ﻧﻤﺮه ﺷﻤﺎ از 1300ﻛﻤﺘﺮ ﺷﺪ وﻟﻲ ﺣﻘﻮق ﺷﻤﺎ ﺑﻴﺸﺘﺮ از 2000$ﺑﺎﺷﺪ ،داﻧﺸﮕﺎه ﺧﻮد را ﺑﻪ ﺷﻤﺎ ﭘﻴﺸﻨﻬﺎد ﻣﻲﻛﻨﻨﺪ. اﮔﺮ ﺣﻘﻮق ﺷﻤﺎ در ﺗﺎﺑﺴﺘﺎن از 2000$ﺑﻴﺸﺘﺮ ﻧﺒﻮد ،ﻓﻘﻂ ﻣﻲﺗﻮاﻧﻴﺪ ﺑﻪ داﻧﺸﮕﺎه ﻣﺤﻞ ﺳﻜﻮﻧﺖﺗﺎن ﺑﺮوﻳﺪ. آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری انواع داده تکمیل مطالب گذشته دستور شرط Case دستور ( تو در توif) مثال if Earning > 2000 then if SAT > 1300 then WriteLn(’Apply to first-choice college.’) else WriteLn(’Apply to parents alma mater.’) else WriteLn(’Apply to local college.’) نوری:)دانشگاه صنعتی شریف( مدرس برنامهنویسی پاسکال 88 آبان 13 / 26 انواع داده تکمیل مطالب گذشته دستور شرط Case دستور ( چند انتخابیif) مثال if (Earning > 2000) and (SAT > 1300) then WriteLn(’Apply to first-choice college.’) else if (Earning > 2000) then WriteLn(’Apply to parents alma mater.’) else WriteLn(’Apply to local college.’) نوری:)دانشگاه صنعتی شریف( مدرس برنامهنویسی پاسکال 88 آبان 14 / 26 دستور تکمیل مطالب گذشته Case نتیجه عبارات ریاضی محاسبه عبارات B 2 102 div 100 102 mod 100 Z - (A + B div 2) + W * Y A div + W Y انواع داده 7 div 2 / 3 Z 7 / 2 div 3 - * + 15 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case نتیجه عبارات ریاضی مدار کوتاه در عبارات بولی • • 16 / 26 انواع داده در ﺗﻮرﺑﻮ ﭘﺎﺳﻜﺎل ،ﺑﻪ ﺻﻮرت ﭘﻴﺶﻓﺮض در اوﻟﻴﻦ زﻣﺎﻧﻲ ﻛﻪ ﻧﺘﻴﺠﻪ ﻳﻚ ﻋﺒﺎرت ﺑﻮﻟﻲ ﻣﺸﺨﺺ ﺑﺎﺷﺪ ،ﻛﺎر ﻣﺤﺎﺳﺒﻪ آن ﺧﺎﺗﻤﻪ ﻣﻲﻳﺎﺑﺪ. در ﺻﻮرت ﻧﻴﺎز ﻣﻲﺗﻮان اﻳﻦ ﺗﻨﻈﻴﻢ را ﺗﻐﻴﻴﺮ داد. آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case انواع داده نتیجه عبارات ریاضی مدار کوتاه در عبارات بولی if (X <> 0) and (Y / X > 50) then . . . • • اﮔﺮ X = 0و ﺷﺮط دوم ﺑﺮرﺳﻲ ﺷﻮد )ﻛﻪ در ﺣﺎﻟﺖ ﻋﺎدي ﺑﺮرﺳﻲ ﻧﻤﻲﺷﻮد( ،ﺧﻄﺎي ﺗﻘﺴﻴﻢ ﺑﺮ ﺻﻔﺮ رخ ﻣﻲدﻫﺪ. ﺑﺮاي ﻋﺪم ﺑﺮوز ﭼﻨﻴﻦ ﻣﺸﻜﻠﻲ ﺑﺎ ﻛﺎﻣﭙﺎﻳﻠﺮﻫﺎي ﺑﺪون ﻣﺪار ﻛﻮﺗﺎه، ﻣﻲﺗﻮان ﺷﺮط را ﺑﻪ ﺻﻮرت زﻳﺮ ﺗﻐﻴﻴﺮ داد. if (X <> 0) then if (Y / X > 50) then . . . 17 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case انواع داده دستور دستور Case • • • 18 / 26 Case اﻳﻦ دﺳﺘﻮر ،ﻣﺎﻧﻨﺪ ifﻣﻲﺗﻮاﻧﺪ ﺑﺮاي اﻧﺘﺨﺎب ﻳﻜﻲ از ﭼﻨﺪ ﺣﺎﻟﺖ اﺳﺘﻔﺎده ﺷﻮد. زﻣﺎﻧﻲ اﺳﺘﻔﺎده ﻣﻲﺷﻮد ﻛﻪ اﻧﺘﺨﺎب ﺑﺮ اﺳﺎس ﻳﻚ ﻣﺘﻐﻴﺮ ﻳﺎ ﻋﺒﺎرت ﺳﺎده از ﻧﻮع ﺗﺮﺗﻴﺒﻲ اﺳﺖ .ﻳﻌﻨﻲ ﻣﻲﺗﻮان ﻫﻤﻪ ﻣﻘﺎدﻳﺮ آن را ﻟﻴﺴﺖ ﻛﺮد. ﻳﻌﻨﻲ Boolean ،Integerو .Char آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری انواع داده Case تکمیل مطالب گذشته دستور Case دستور (روزهای هفته )عددی case DayNumber of 1, 7 : Gross := Hours * 1.5 * DailyRate; 2, 3, 4, 5, 6 : Gross := Hours * DailyRate end; {case} if (DayNumber = 1) or (DayNumber = 7) then Gross := Hours * 1.5 * DailyRate else if (DayNumber = 2) or (DayNumber = 3) or (DayNumber = 4) or (DayNumber = 5) then Gross := Hours * DailyRate نوری:)دانشگاه صنعتی شریف( مدرس برنامهنویسی پاسکال 88 آبان 19 / 26 دستور تکمیل مطالب گذشته Case انواع داده دستور روزهای هفته )عددی( Case case DayNumber of ;1, 7 : Gross := Hours * 1.5 * DailyRate 2, 3, 4, 5, 6 : Gross := Hours * DailyRate 2..6 : Gross ... }end; {case 20 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری انواع داده Case تکمیل مطالب گذشته دستور Case دستور با نوع کاراکترcase دستور case MomOrDad of ’M’, ’m’: WriteLn(’Hello Mom’); ’D’, ’d’: WriteLn(’Hello Dad’) end; {case} if (MomOrDad = ’M’) or (MomOrDad = ’m’) then WriteLn(’Hello Mom’) else if (MomOrDad = ’D’) or (MomOrDad = ’d’) WriteLn(’Hello Dad’) نوری:)دانشگاه صنعتی شریف( مدرس برنامهنویسی پاسکال 88 آبان 21 / 26 انواع داده Case تکمیل مطالب گذشته Case دستور Case دستور دستورSyntax case selector of label1 : Statement1; label2 : Statement2; . . . labeln : Statementn ; else Statemente end {case} نوری:)دانشگاه صنعتی شریف( مدرس برنامهنویسی پاسکال 88 آبان 22 / 26 انواع داده Case تکمیل مطالب گذشته دستور Case Case در دستور دستورات ترکیبی case N of 1, 2 : begin Write(’1, 2, ’); WriteLn(’Buckle my shoe’) end; {1, 2} 3, 4 : WriteLn(’3, 4, Shut the door’); 5, 6 : WriteLn(’5, 6, Pick up sticks’) else WriteLn(N, ’is out of range’) end; {case} نوری:)دانشگاه صنعتی شریف( مدرس برنامهنویسی پاسکال 88 آبان 23 / 26 دستور تکمیل مطالب گذشته Case نکاتی در مورد • • انواع داده دستور Case اﮔﺮ ﻫﻴﭻﻳﻚ از ﺷﺮاﻳﻂ ﻗﺒﻞ از elseﺑﺮﻗﺮار ﻧﺒﻮدﻧﺪ ،دﺳﺘﻮر ﺑﻌﺪ از elseاﺟﺮا ﻣﻲﺷﻮد )در ﺻﻮرت وﺟﻮد .(else در ﭘﺎﺳﻜﺎل اﺳﺘﺎﻧﺪارد elseوﺟﻮد ﻧﺪارد ،و اﮔﺮ ﻫﻴﭻﻳﻚ از ﺷﺮاﻳﻂ caseﺑﺮﻗﺮار ﻧﺒﺎﺷﺪ ،ﻳﻚ ﺧﻄﺎي زﻣﺎن اﺟﺮا رخ ﻣﻲدﻫﺪ. • ﻫﺮ ﻣﻘﺪار ﺣﺪاﻛﺜﺮ ﻣﻲﺗﻮاﻧﺪ در ﻳﻚ labelﻗﺮار ﺑﮕﻴﺮد) .اﮔﺮ ﺑﻴﺸﺘﺮ ﺷﻮد ﭼﻪ اﺗﻔﺎﻗﻲ ﻣﻲاﻓﺘﺪ؟( • caseﺧﻮاﻧﺎﺗﺮ و ﻛﺎراﺗﺮ اﺳﺖ ،وﻟﻲ ifﻗﺪرت ﺑﻴﺸﺘﺮي دارد. 24 / 26 Case آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case محافظت از • انواع داده دستور دستور case Case ﮔﺎﻫﻲ اوﻗﺎت ﻣﺤﺎﻓﻈﺖ از دﺳﺘﻮر caseدر ﻣﻘﺎﺑﻞ وروديﻫﺎي ﻏﻴﺮﻣﻌﺘﺒﺮ ﺿﺮوري ﻣﻲﺑﺎﺷﺪ. if (DayNumber >= 1) and (DayNumber <= 7) then case DayNumber of ;1, 7 : Gross := Hours * 1.5 * DailyRate 2..6 : Gross := Hours * DailyRate end else )’WriteLn(’invalid day number. 25 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری دستور تکمیل مطالب گذشته Case تبدیل دستور انواع داده دستور ifبه case Case case X = Y of ;)’True : WriteLn(’Equal )’False : WriteLn(’Unequal }end {case 26 / 26 آبان 88 برنامهنویسی پاسکال )دانشگاه صنعتی شریف( مدرس :نوری
© Copyright 2025 Paperzz