دستورات کنترلی 1 تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86 1 مرور مطالب : ارزیابی عبارت های حسابی نحوه ارزیابی عبارت های حسابی در پاسکال قانون پرانتزها :کلیه عبارات موجود در پرانتزها ،باید به صورت جداگانه ارزیابی شوند .عبارات موجود در پرانتزهای تودرتو ،باید از داخل به بیرون ارزیابی شوند. قانون تقدم عملگرها :عملگرهای موجود در یک عبارت به ترتیب زیر ارزیابی می شوند: mod ،div ،/ ،× نسبت به - ،+تقدم دارند. قانون سنجش از چپ :عملگرها با اولویت یکسان از چپ به راست ارزیابی می شوند. 2 مرور مطالب : ارزیابی عبارت های حسابی x×y×z+a/b-c×d d b c × z a x y × / × + + )(((x×y)×z)+(a/b))-(c×d 3 مرور مطالب : مثال a×b/2×(a+b)=((a×b)/2) ×(a+b) : عبارت هایی که دارای عملگر divو modهستند: 7 div 2 / 3.0=(7 div 2)/3.0 ارزیابی عبارت های حسابی 7/2 div 3=(7/2) div 3 عملگر منفی کردن دارای یک عملوند است و اولویت آن برابر و +است ))a×-(b+c)=a×(-(b+c 4 ساختارهای کنترل ساختارهای کنترل امکان کنترل روند اجرای برنامه را به می دهند. امکان تعریف دستورالعمل های منفرد به صورت یک واحد منطقی را می دهد به طوری که آن واحدورود به کنترل 1نقطه ساختاریک دارای ساختار کنترل 1 ورودی و یک نقطه خروجی است. خروج از ساختار کنترل1 ورود به ساختار کنترل2 ساختار کنترل 2 خروج از ساختار کنترل2 5 ساختارهای کنترل ساده ترین روند اجرایی که دیدیم ترتیبی است. توسط دستور begin endمی توانیم مجموعه دستوری که به صورت ترتیبی اجرا می شوند را تعریف کرد. begin ساختارهای کنترل عبارتند از : قطعه ای انتخاب ;Statement ;Statement … عبارات منطقی دستور ifو case ;Statement تکرار end 6 عبارات منطقی ساده ترین عبارت منطقی یک ثابت و یک متغیر منطقی است. var const ;fire : boolean begin ;fire : = true … ;IsValid = true 7 عبارات منطقی (ادامه) عبارات منطقی دارای عملگرهای رابطه ای هستند: >>= ، <<= ، < >= ، نوع دادة عملوندهای یک عملگر رابطه ای باید یکسان باشند. هر دو باید از نوع Char ،Real ،Integerیا Booleanباشند و یا یکی از آن ها از نوع Realو دیگری از نوع Integerباشد 8 )عبارات منطقی (ادامه که به عملوندهایand ،or ،not با استفاده از عملگرهای منطقی . می توان عبارات منطقی پیچیده تری تولید کرد،منطقی نیاز دارند (temperature>=100) and (fire) (temperature<16) or (not fire) ((temperature<16) or (not fire)) and (IsValid) x y x and y x y x or y T T T T T T T F F T F T F T F F T T F F F F F F 9 x not x F T T F ارزیابی عبارات منطقی عبارات منطقی ممکن است شامل عملگرهای حسابی ،منطقی و یا رابطه ای باشد. تقدم عملگرها به صورت زیر است: not *,/, div, mod, and +, -, or =>,>=,<,<=,<>, x < min + max min <= x and x<=max 10 )ارزیابی عبارات منطقی (ادامه not IsValid or (temperature+10>1.8*x) IsValid temperature not 10 1.8 + 188 false IsValid true temperature 178 x 100.2 or 11 true x * > true 180.36 انتساب منطقی می توان دستوراتی نوشت که یک ارزش منطقی را به متغیر منطقی نسبت دهد. )same := ( x =y )InRange := (N>-10) and (N<10 )IsLetter := ((‘A’<=ch) and (ch<= ‘Z’)) or ((‘a’<=ch ))’and (ch<=‘z )IsEven := (N mod 2=0 12 if دستور . استif ساده ترین دستور انتخاب . می تواند دارای یک انتخاب یا دو انتخاب باشدif دستور If boolean_expr then statement2 b_expr statement1 else statement2; 13 statement1 برنامه ای بنویسید که ماکزیمم دو عدد را به:مثال .دست آورد Var a, b, Max : Real; Begin Readln (a); Readln (b); Max := a; If ( b > a ) Then Max := b; Writeln (Max); End. 14 برنامه بنویسید که قدرمطلق ورودی را به دست .آورد Var x, y : Real; Begin Readln (x); y := x; If ( x < 0 ) Then y := -x; Writeln (y); End. 15 برنامه بنویسید که تابع دو ضابطه ای زیر را حساب .کند f ( x) Var x : Real; Begin Readln (x); If (( xx <> 00 )) Then Then xx := :=x+10 x + 10; If ( x >= 0 Else ) Thenx:x=:=x-10; x - 10; Writeln (x); End. 16 x10 x0 x10 x0 با دستورات مرکبif دستور دارای دستورات مرکبif دستورات If boolean_expr then begin statement; … end else begin statement; … end; b_expr 17 دستورات ifتودرتو و تصمیم گیری های چند انتخابی شرط ها یکی یکی مورد بررسی قرار می گیرند تا یک شرط درست برقرار شود اگر دو شرط درست باشند اولین دستور اجرا می شود. If boolean_expr then statement else if boolean_expr then ;statement2 If b1 then st else If b2 then st else If b3 then st else If b4 then st … ; else st 18 Yes b1 No Yes b2 No Yes b3 No Yes b4 No Yes bn No 19 [ را1,4] برنامه ای بنویسید که جزء صحیح اعداد .به دست آورد Var x, y : Real; Begin Readln (x); If ( x >= 1 ) Then If ( x < 2 ) Then y := 1; If ( x >= 2 ) Then If ( x < 3 ) Then y := 2; If ( x >= 3 ) Then If ( x < 4 ) Then y := 3; Writeln (y); End 20 برنامه تابع عالمت Var x, y : Real; Begin Readln (x); If ( x > 0 ) Then y := 1 Else If ( x < 0 ) Then y := -1 Else y := 0; Writeln (y); End. 21 1 x0 f ( x) 0 x 0 1 x 0 قواعد پاسکال برای جفت کردن elseبا if کامپایلر پاسکال هر elseرا با نزدیکترین ifکه قبالً با else دیگری متناظر نشده باشد ،جفت می کند. همانند جفت کردن پرانتز چپ و راست 22 if باelse قواعد پاسکال برای جفت کردن مثال : تعلق گیردif به اولینelse اگر بخواهیم If x>0 then if y>x then writeln(‘y>x>0’) else writeln(‘(x>0) and (y<=x)’); If x>0 then begin if y>x then writeln(‘y>x>0’) end else writeln(‘(x>0) and (y<=x)’); 23 دستور case برای انتخاب یک حالت از چند گزینش استفاده می شود. هنگامی که گزینش بر پایه مقدار یک متغیر یا عبارت ساده باشد ،استفاده از آن مفید است. انتخاب کننده باید دارای نوع داده ای باشد که کلیه مقادیر آن محدود باشند. داده هایی که از نوع boolean ،integerو charباشند ،داده های محدود هستند داده هایی که از نوع stringو realهستند ،داده های نامحدود هستند 24 ) (ادامهcase دستور Var c: char; Begin readln(c); case c of ‘A’ , ‘a’ : writeln(‘A’); ‘B’,’b’:writeln(‘B’) end; End. Var c: char; Begin readln(c); if (c=‘A’) or(c=‘a’) then writeln(‘A’) else if (c=‘B’) or(c=‘b’) ‘writeln(‘B’); End. 25 دستور ( caseادامه) انتخاب کننده با برچسب ها مقایسه می شود و اگر مقدار انتخاب کننده در برچسب ها صدق کند اجرا می شود و پس از آن کنترل برنامه روی اولین دستور بعد از endمی رود. 26 Case selector of ;label1 : statement1 ;label2 : statement2 . . . ;labeln : statementn else ;statement ;end دستور ( caseادامه) در صورتی که محتوی انتخاب کننده با هیچ یک از برچسب ها برابر نباشد ،دستوری اجرا نمی شود مگر اینکه elseشرطی وجود داشته باشد. محافظت از دستور caseبا استفاده از if محتوی انتخاب کننده حداکثر در یک برچسب می تواند وجود داشته باشد. Interger 1,2: سب از محاسبه عبارت برچ writelnکه نوع داده در انتخاب کننده باید با داده ای 2..6: writeln بدست می آید یکسان باشد. Boolean True: writeln False : writeln ‘a’,’b’,’c’: writeln ‘A’..’Z’: writeln 27 char
© Copyright 2024 Paperzz