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

تازه ها

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

نظرات ()


ادامه بخش دوم

در هر زبان برنامه نويسي ، بعد از دانستن انواع داده ها یعنی : 
1. در آن زبان چه طور داده ها تفكيك مي شوند؟
2. نحوه ي نمايش آنها چگونه است ؟
3. انواع داده در آن زبان چندتاست و چگونه است ؟ [ممكن است داده هاي يك زبان از آن انواعي كه در جلسه ی قبل گفتيم بيشتر باشد (حالت پايه اي گفته شده) پس لازم است آنها را هم بشناسيد. [


بايد راجع به نحوه ي ورود و ارسال داده و اطلاعات بدون اتلاف وقت ، اطلاع حاصل كنيد .

 

2. نحوه ي ورود و ارسال داده و اطلاعات


ورود داده : منظور این است که سریعا یاد بگیرید آن زبان،چطور از کاربر ورودی می گیرد ؟ چه دستوری این کار را انجام میدهد؟ 

ارسال اطلاعات : منظور اين است كه آن زبان با چه دستوري اطلاعات را در محيط اجرا نمايش مي دهد ؟


 3. قرار دادن مقادير در متغير ها 

بايد حتماً در هر زباني بدانيد كه چطور مقادير گرفته شده، در متغير ها قرار مي گيرند يا چطور نتيجه ي عمليات در يك متغير قرار مي گيرد ؟

 

4. عبارات كنترلي 

مرحله ی بعد دانستن راجع به عبارات کنترلی است .   که در جلسه ی بعد اختصاصا به این موضوع می پردازیم.

 

5. محاسبات رياضي 

در زبان هاي برنامه نويسي عملگر هاي محاسباتي داراي تقدم و تأخر هستند كه  ترتيب اولويت پايه اي آنها به قرار زير است: 

1.  پرانتز ()

2. توان ^
3. ضرب و تقسیم * /
4. تقسيم صحيح 
5. باقي ماندهMod 
6. جمع و تفريق +-

سوالات مطرح در این مبحث :


1. منظور از اولويت چيست ؟ اگر در يك عبارت رياضي، چندين عملگر محاسباتي باشد،  برنامه اول به سراغ آن عملگري مي رود كه اولويتش بالاتر است . که در اینجا الویت از بالا به پایین کمتر می شود.


2. بعضی عملگرها در یک خط اند و در واقع هم الویت هستند، چطور الویتشان تشخیص داده می شود؟  آنهایی كه در یک خط هستند، الویتشان در سؤال معلوم ميشه يعني : در سؤال هر دو عملگر آمده اند ، آن عملگری كه سمت چپ تر هست ، زودتر حل مي شود.

3. چرا باید الویت عملگرها را بدانیم ؟ موقع انجام محاسبات ، برای داشتن مقدار مورد نظر، بايد بدانیم برنامه چگونه برای محاسبه ، مساله را می خواند.

4. منظور از تقسيم ، تقسيم صحيح ، باقي مانده چیست ؟ 


تقسيم /: خارج قسمت را به ما میدهد . يعني 3 تقسیم بر 2 ( 2/3 ) ميشود 1.5=  خروجی این عملگر در این مساله 1.5 است.
تقسيم صحيح : قسمت صحیح و روند خارج قسمت را به ما میدهد. يعني 3 تقسیم صحیح بر 2 ( 23 ) ميشود 1=  خروجی این عملگر در این مساله 1 است.

 باقي مانده  Mod: باقیمانده را به ما میدهد. یعنی 3mod2  ميشود 1 = خروجی این عملگر در این مساله 1 است.

 
مثال 1 :  حاصل عبارت روبرو چند مي شود ؟ 3-2^2*3

در اين سؤال ، 3 عملگر *^- داريم اگر اولويت بندي را ندانيم ، 
اين طور عمل مي كنيم

 3*2=6    

2^6 =36           

2-36=34


اين يك روش است وبينهايت روش بهتر هم وجود دارد. اما کدام روش صحیح است ؟

 در برنامه نویسی باید همان راه اصلي "اولويت بندي  " را بكار ببريم .چرا که برنامه به این روش مساله را حل می کند.


روش الویت بندی :

طبق اين روش ما ابتدا به سراغ {توان و دو عدد طرفین آن} مي رويم  پس داريم 2^2=4
حالا شد 3-4*3

بين اين دو عملگر {* و - }،  {* و دو عدد طرفين آن } اولويت دارد حالا شد 3-12=9 

پس خروجی برنامه برای این مساله 9 است . حالا ببینید 9 کجا 34 کجا ؟!

مثال 2 : حاصل اين عبارت را بيابيد .      5+3/2^2*3


^ و اعداد طرفينش : 3^2=8
حالا هم * داريم هم / كدام ؟ چون هر دو یک الویت دارند طبق نکته ای که بالا گفتم ،از چپ سؤال رو مي خونيم ،آن عملگری که چپ تر هست اول حل می شود. 
پس : * و اعداد طرفينش : 8*3=24
/و اعداد طرفينش :  كدوم؟  24/2=12
و در آخر + و اعداد طرفينش : 5+12 =17
پس حاصل شد : 17


6. عملگر هاي مقايسه اي 

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

با این موضوع معنی صحبت اول بخش دوم رو می فهمید که گفتم :

«اصل الفبا، يك مطلب است اما نوع دستور ، اسم دستور  ، نحوه به كارگيري دستور و ... هر برنامه با يكديگر متفاوت است .»

مثلا علامت <> در زبان QBASIC به معنای مخالف بودن است . 

علامت =! در زبان JAVA  هم به معنای مخالف بودن است. 

هر دو یک مفهوم را می رسانند یعنی اصل الفبا یکی است فقط شکل دستور فرق می کند. 

به همین دلیل وقتی شما مفاهیم و کاربرد مفاهیم را یاد بگیرید در هر زبانی به سادگی می توانید کد بنویسید.

مثلا در الگوریتم ، شرطی دارید که شرط می گوید اگر مخالف مقداری بود عملیات 1 انجام شود. 

در کد نویسی فقط به دنبال علامت مخالف بودن می گردید و درگیر مسائل دیگر نمی شوید. 


موضوع عملگرها بسیار دقیق و کاربردی هستند به همین دلیل در یک جلسه به طور کامل به آنها می پردازیم.


خب الفبای برنامه نویسی همین 6 موضوع  می باشد. برای یادگیری هر زبانی ابتدا به سراغ این 6 موضوع می رویم تا بتوانیم با آن زبان به سادگی برنامه بنویسیم. یادگیری موضوعات دیگر وقتی ضرورت دارد که در حین برنامه نویسی به آن ها نیاز پیدا کرده ایم در غیر اینصورت لزومی ندارد در ابتدا آنها را یاد بگیریم.

در اینجا بحث جلسه ی 4 به پایان می رسد، در جلسه ی بعد به موضوع عبارات کنترلی- که مهم ترین بخش هر زبان برنامه نویسی است – می پردازیم.

موفق باشید.


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