close
دانلود فیلم
آموزش پاسکال بخش سوم : آموزش دستورات کنترلی و حلقه ها در پاسکال

دستورات کنترلی:
دستور IF :
در پاسکال یک ساختار انتخابی ابتدایی شامل دستور IF است که در دستور همراه یک عبارت منطقی قرار می گیرد .دستور IF مشخص می کند که در یک حالت خاص ، کدام مجموعه از دستورات باید اجرا شوند.

دستور if یک انتخابی:

If condition then
Statement -



دستور if دو انتخابی:

If condition then
Statement1
Else Statement2

مثال: برنامه ای بنویسید که تعداد فرزندان و حقوق پایه و رتبه یک کارگر را از ورودی دریافت کرده و حقوق کلی او را بر اساس فرمول زیر حساب کند؟

کسریها - مزایا + بیمه = حقوق کل
5*رتبه+1000* تعداد فرزندان =مزایا
مالیات+بیمه=کسریها

بیشتر
کمتر یا مساوی 2
تعداد فرزند

تعداد فرزندان
1000
بیمه

هر چیزی دیگر
0 تا 20
رتبه

حقوق پایه
حقوق پایه*100/10
مالیات

Program salary_kol ;
uses wincrt ;
Var
Salary:longint ;
kasry,bimeh,mazaya,kol,net:real ;
Num,grade:integer ;
Begin
Writeln('Enter salary and grade and number of child' );
Readln(salary,grade,num );
If num <=2 then
Bimeh:=100
Else
Bimeh:=num*500 ;
If (grade >0) and (grade <=20) then
begin
Net:=20/100*salary ;
Mazaya:=num*1000+grade*50 ;
Kasry:=bimeh+net ;
Kol:= salary+mazaya-kasry ;
End
Else
If (grade >20)then
begin
Net:=20/100*salary ;
Mazaya:=num*1000+grade*50 ;
Kasry:=bimeh+net ;
Kol:= salary+mazaya-kasry ;
End ;
Writeln('salary kol is:',kol);
Readln ;
End .

 

دستور case :
برای انتخاب یک حالت از چندین گزینه ، در پاسکال علاوه بر دستور if ،دستور دیگری به نام case وجود دارد. Case میتواند تعدادی شرط را بگیرد و انتخاب کند.

مقادیری را که دستور case می پذیردORDINAL است .مقادیری که دارای ORDINAL هستند دارای ترکیب نیستند و همچنین قابل شمارش هستند مثل :integer,character,byte,boolean,longint ,…پسstring,real ,… نمی توانند ORDINAL باشند.دستور case دارای begin نمی باشد.

Case selector of
Label : statement ;
Label : statement ;
.
.
.
.
.
label : statement
end [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 , oick up sticks’);
end {case}

عبارت otherwise یا else برای دستور case :

چنانچه انتخاب کننده case یک مقدار غیر قابل انتظار داشته باشد می توان از این عبارت برای نمایش پیغام خطا یا عمل تصحیح استفاده نمود.در دستور case بعد، در صورتی که مقدار غیر منتظره ای در DayNumber ذخیره شود، عبارت otherwise پیغام خطای invalid day number را نمایش می دهد.

{compute gross pay for a particular day }
case DayNumber of
1, 7 :
Gross := Hours * 1.5 * dailyRate ;
2, 3 , 4 , 5 , 6 :
Gross := Hours * DailyRate ;
otherwise
writeln (‘ invalid day number. ‘)
end {case}

مثال:برنامه ای بنویسید که دو عدد را از ورودی دریافت کرده وچنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ کند اگر 68 بود ضرب آن دو عدد را نمایش دهد در غیر اینصورت مقادیر مجاز را چاپ کند؟

Program case_of ;
Uses wincrt ;
Var a,b:integer ;
Begin
Writeln('enter tow number’);
Readln(a,b);
Case a of
0..5:
Writeln('sqrt(b):',b*b);
68:
writeln('a*b:',a*b)
Else
writeln('Enter 0..5 or 68 ' );
End;{case}
Readln ;
End .

حلقه ها:
حلقه FOR :
حلقه for برای تعداد تکرار 0 یا بیشتر و در ضمن برای تعداد تکرار معین به کار می رود .

شکل کلی دستور for به صورت زیر است:
Do مقدار نهایی To } مقدار شروع =: متغیرfor

Downto

To زمانی به کار میرود که مقدار اولیه از مقدار نهایی کمتر باشد.
downTo زمانی به کار میرود که مقدار اولیه از مقدار نهایی بیشتر باشد.

مثال:برنامه ای بنویسید که مجموع مضارب 5 بین 0 تا 100 را حساب کند؟

Program zarb ;
Uses wincrt ;
Var I,sum:integer ;
Begin
Sum:=0 ;
For i:=1 to 20 do
Begin
Sum:=sum+i*5 ;
End ;
Writeln('sum is:',sum) ;
End .

مثال:برنامه ای بنویسید که تعداد مضارب 5و7 را در بازه [231,846] چاپ کند؟

Program number ;
Uses wincrt ;
Var I,s,k:integer ;
Begin
S:=0 ;
K:=0 ;
For i:=846 downto 231 do
Begin
If I mod 7=0 then
S:=s+1 ;
If I mod 5=0 then
K:=k+1 ;
End ;
Writeln('7=',s) ;
Writeln('5=',k) ;
End .

حلقه های for می توانند علاوه بر نوع integer ، از انواع دیگر ترتیبی نیز استفاده کنند . در مثال زیر ، از متغییر char استفاده شده است.

مثال :

For nextch := ‘ A’ to Z’ do Write (nextch) ;

حلقه while :
ساده ترین دستور کنترل حلقه دستور While می باشند. دستوراتی که تکرار می شوند بدنه حلقه نام دارند و بعد از کلمهdo قرار می گیرند. بدنه حلقه یک دستور مرکب است که بین begin و end محصور شده است.

حلقه While یک حلقه با تکرار 0 یا بیشتر و تعداد تکرار در آن نامعین است.

شکل آن بصورت زیر است:
Do شرط While
begin

دستورات
End ;

مثال:برنامه ای بنویسید که تعدادی از اسامی را از ورودی دریافت کند و سپس بگوید اسم 'ali ' چند بار تکرار شده است؟(آخرین اسم end باشد)

Program repeat_ali ;
Uses wincrt ;
Var s:integer ;
Name:string ;
Begin
S:=0 ;
Writeln('Enter names ' ) ;
Readln(name) ;
While name <>'end' do
Begin
Readln(name) ;
If name='ali' then
S:=s+1 ;
End ;
Writeln('ali repeat:',s) ;
End .

حلقه Repeat :
دستور repeat یک حلقه شرطی را مشخص می کند که تا وقتی که شرط آن درست بشود ، حلقه تکرار می گردد (یعنی این حلقه تا زمانی اجرا می شود که شرط آن نا درست باشد و به محض درست بودن شرط حلقه دیگر اجرا نمی شود ).

Repeat
loop-body
Until termination-condition

حلقه شرطی دستور repeat ، یک حلقه repeat – until نامیده می شود. توجه داشته باشید که چون کلمات repeat و until بدنه حلقه را محصور می کنند نیازی به کلمات begin و end نیست . این نوع حلقه حداقل یکبار تکرار می شود.

مثال:

Repeat
write (‘Enter a digit > 5 ) ;
read (ch)
Until (‘0 ’ <= ch) and (ch <= ‘9’)

حلقه های لانه ای:
همانند دستور if حلقه ها را می توان درون یک دیگر قرار داد .حلقه های لانه ای شامل یک حلقه خارجی یا بیرونی و یک یا چند حلقه درونی است . هر بار که حلقه بیرونی تکرار می شود حلقه های درونی نیزاجرا می شوند و عبارت کنترل حلقه در آنها مجدد ارزیابی می شود وتمام تکرارهای الزامی انجام می شوند .

مثال:

Program m_n ;
Uses wincrt ;
Var
I , j : integer ;
Begin
Writeln (‘I’ :12 , ‘j’ :5) ;
For I:=1 to 3 do
Begin
Writeln (‘outer’ :5,I :7 ) ;
For j:= 1 to I do
Writeln (‘inner’ :7 , I :5 , j:5)
End ;
End .

دستورات break و continue :
Break : این دستور در داخل حلقه ها بکار رفته و باعث خروج از داخلی ترین حلقه شده و دستور بعد از آن حلقه اجرا شود.
Continue : این دستور نیز مانند break در درون حلقه ها بکار رفته و باعث می شود کنترل برنامه به ابتدای حلقه باز گردد.

دستورات halt و exit :
Halt پرس و جویی است که باعث خروج کامل از برنامه و بازگشت به سیستم عامل می گردد.
Exit پرس و جویی است که باعث خروج از زیر برنامه می شود و چنانچه در قسمت اصلی برنامه به کار رود مانند halt عمل می کند.

دستور goto :

این دستور کنترل را به خط دلخواه می برد نحوه استفاده آن با اینصورت است که از یک برچسب در جلوی آن استفاده می شود کنترل برنامه زمانی که به آن رسید به برچسب مورد نظر پرش می کند.

برچسبها نیز می بایست در ابتدای برنامه تعریف شوند .تعریف آن به صورت زیر است.
; نام برچسبLABEL



لینک کوتاه پست
مطالب مرتبط با پست جاری
  • نکات مهم
    1- لطفا نظر خود را با زبان فارسی بیان کنید
    2- رایتم نظرات اسپم و تبلیغی شما را تایید نمی کند
    3- لطفا نظرات شما بدون ابهام و واضح باشد
  • نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :):(;):D;)):X:?:P:*=((:O@};-:B/:):S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
    کد امنیتی
به کانال تلگرام سایت ما بپیوندید