جلسه پنجم الگوریتم و فلوچارت

تازه ها

جلسه پنجم الگوریتم و فلوچارت

نظرات ()


ادامه بخش دوم

عبارات کنترلی

در هر مساله ای حداقل با يك عبارت كنترلي روبرو مي شويد پس تسلط در اين قسمت بسیار اهمیت دارد.


1.عبارات شرطي

حالت اول شرط

شما در مسأله به مرحله اي مي رسيد كه بايد از راه مستقيمتان منحرف شويد و اين انحراف با شرطي معلوم مي شود كه: به كدام جهت منحرف شويد ؟

پس : 
فلوچارت شرط مي شود :

و كد آن در زبان QBASIC  مي شود 


Then  شرط If 
كارهايي كه در صورت درست بودن شرط ، بايد انجام شود .
End if . 



براي شرط ها در هر زبان برنامه نویسی مي گوييم :

اگر  شرط درست بود پس : اين سري كارها انجام شوند و تمام . 

نکته 1 : در هر زباني يادتان باشد   If با تمام متعلقاتش جدا شود و بعد از تمام شدن حتماً پايان زده شود.

نکته 2 : هميشه در قسمت عبارات كنترلي سعي كنيد بعد از كد دستور ، عمليات را با يك Tab  زدن شروع كنيد تا حالت تورفتگي ايجاد  شود برای اینکه خوانايي برنامه بيشتر شود.

حالت دوم شرط 
اماهميشه شرط ما درست نيست پس نياز داريم شرطمون اجزاي ديگه اي هم  داشته باشد جزء Else 
 اين جزء به معني : در غير اينصورت است .

يعني اگر شرط درسته عمليات 1 رو انجام بده و اگر درست نبود عمليات 2 .
 فلوچارت آن مي شود :

و كد آن مي شود : 


Then  شرط If 
كارهايي كه در صورت درست بودن شرط ، بايد انجام شود 
Else 
كارهايي كه در صورت نادرست بودن شرط ، بايد انجام شود 
End if .

حالت سوم شرط 
ممكنه شرط اينطور باشه :

اگر شرط درسته عمليات 1 انجام شود درغير اينصورت اگر شرط 2 درسته عمليات 2 و الي آخر تا برسيم به درست نبودن تمام قسمتها.
 كه فلوچارت آن مي شود:

و كد برنامه آن مي شود : 


Then  شرط1  If 
كارهايي كه در صورت درست بودن شرط 1 ، بايد صورت بگيرند . 
Then  شرط 2  Else if 
كارهايي كه در صورت درست بودن شرط 2 ، بايد صورت بگيرند .
.
.
Then      شرط n  Else if    
كارهايي كه در صورت درست بودن شرط، بايد صورت بگيرند .

Else 
 
كارهايي كه در صورت نادرست بودن تمام شرط هاي بالا بايد صورت بگيرند . 
End if .

نكته ی خیلی مهم :

يه نكته رو بگم كه در عبارات شرطي If  ، هميشه روال اجرا به اين نحو است كه : 
قسمت اول كامل خوانده ميشود اگر درست بود انجام مي شود و به End if  پرش مي كند و تمام ميشود يعني :
شرط هاي بعد ديده نمي شود . 


ولي اگر قسمت اول درست نبود به خط بعد ، به خط بعدتر و ... مي رود تا به شرط صحيح برسد و همگي به End if  مي پرند . به همین دلیل است که گفته میشود  IF و متعلقاتش را حتما ببندیم.

پس نتيجه اينكه : IF در واقع تلاش و گذر براي رسيدن به حالت درست است .

 

توجه داشته باشيد كه براي قسمت  Else  نياز به شرط نمي باشد و در صورتي كه شروط قبل نادرست باشند اين قسمت اجرا مي شود.

 

2.تکرار یا حلقه

حلقه ها براي تكرار يك يا چند عبارت به كار مي روند.

حلقه ها به طور كلي 2 نوعند : 


1/for … next 


در اين عبارت براي شمارش ، يك شمارنده يا كانتر counter  وجود دارد كه با رسيدن به انتهاي حلقه به وسيله next  به يك نسبت ثابت تغيير مي كند . 


شكل كد آن : 


مقدار تغيير شمارنده step  مقدار نهايي  to  مقدار اوليه = متغير شمارنده for 
عباراتي كه بايد تكرار شوند
 
متغير شمارنده  next 


شكل فلوچارت آن :

این کد و الگوریتم منظورشان این است که : آنقدر شرط تکرار شود که شمارنده به حد نهایی خود برسد.

 

 

2/Do… Loop  


در این عبارت برای شمارش ، شرطی در ابتدا یا انتها وجود دارد که تمامی عملیات مساله به آن شرط بستگی دارد . بسته به مساله با درست بودن یا درست نبودن شرط یک سری عملیات انجام میشود. این حلقه 4 نوع دارد. یکی از روشها را در زیر نمایش میدهیم.

شکل کد آن :

شرط  DO WHILE

عباراتی که باید تکرار شود

LOOP

شکل فلوچارت آن :

این کدها و الگوریتم منظورشان این است که : تا وقتی که شرط درست است تکرار شو.

 

کاملا واضح است که این دو نوع حلقه تفاوتشان در بررسی شرط است. وقتی در الگوریتم بررسی شرط اهمیت داشت از نوع 2 حلقه استفاده می کنیم و اگر در الگوریتم بررسی شرط مطرح نبود  از نوع 1 حلقه استفاده می کنیم.

 

این موضوعات را در حل مساله بهتر می فهمید. درک عمیق این مطالب بماند برای جلسات حل مساله. 


<جلسه قبل ــ جلسه بعد>