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

تازه ها

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

نظرات ()


بخش دوم

 هدف كلي 

                                      الفباي برنامه نويسي


هدفهاي رفتاري

          پس از پايان مطالعه اين بخش از فراگير انتظار مي رود كه :

 

1. در اولين برخورد با هر زبان برنامه نويسي  بداند اول، به دنبال فراگيري چه مطالبي باشد . 
2. در هر مرحله از دستورات، تسلط كافي براي تبديل كد به الگوريتم و بلعكس را داشته باشد 
3. تقدم عملگر ها را بداند و به خوبي به كار ببندد . 
4. با توجه به نوع مسأله بداند كه از كدام دستور بهتر است استفاده شود .

  
در این بخش به این موضوع می پردازیم که : راه حل یا الگوریتم خود را چطور به هر زبانی تبدیل کنیم ؟

از نگرشی دیگر در این بخش یاد میگیریم برای یادگیری هر زبان برنامه نویسی ، اول چه مباحثی را یاد بگیریم؟

 

 شروع بخش دوم :
مقدمه 
در اين بخش شما با الفباي برنامه نويسي آشنا مي شويد . اين بخش بسيار حائز اهميت است . 
زيرا شما با دانستن اين مطالب به راحتي مي توانيد، با داشتن الگوريتم  در زماني اندك آنرا به كد چندين برنامه ترجمه كنيد حتي اگر با آن زبان، آشنايي حرفه اي نداشته باشيد با دانستن الفباي آن ، تا 80% كارتان پيش مي رود . 


اصل الفبا، يك مطلب است اما نوع دستور ، اسم دستور  ، نحوه به كارگيري دستور و ... هر برنامه با يكديگر متفاوت است . به همين دليل در بعضي قسمتها مجبور خواهم بود براي تفهيم مطلب از كدهاي برنامه QBASIC  استفاده كنم. 
اين زبان بسيار ساده و البته كاربردي و پيش برنده به سوي برنامه نويسي حرفه اي است زيرا همانطوركه استدلال مي كنيد مي نويسيد و اين خيلي به نفع شماست . زيرا برنامه نويس، آن كسي نيست كه از حفظ، كدهايي را براي مسأله خاصي بنويسد ، بلكه برنامه نويس ،كسي است كه در هر مرحله با Trace   و توضيحات خود كه در هر مرحله همراه نوشتن كد انجام مي دهد به مرحله بعد هدايت شود ، درست است كه اين عمل در مرحله الگوريتم نويسي انجام مي شود اما 
هيچ وقت به خودتان ظلم نكنيد هميشه از فكرتان در هر مرحله اي استفاده كنيد . آن وقت است كه شما فكر برنامه نويس خواهيد داشت.

توجه :  تا بر روي بخش اول  به خوبي و به طور كامل تسلط نداريد وارد اين بخش نشويد زيرا علم  برنامه نويسي كاملاً  به هم پيوسته است اگر در قسمتي لنگ بزنيد مطمئن باشيد كه تا آخر لنگان خواهيد بود .

خوب وارد درس شويم .

1. نوع داده  

اولین مبحثی که در هر کتاب آموزشی به سراغ یادگیری اش می روید این است که بدانید چه نوع داده هایی در آن زبان وجود دارد ؟


خب قبل آن ببينيم خود داده چيست ؟ 


داده : اطلاعات خام ِورودي پيـــش از پردازش است .

مثال 1. در سؤال "محاسبه ميانگين دو عدد 10 و 20   " داده كدام است؟
ورودي : 10 و 20 است . 
خوب ورودي  معلومات  مسأله است كه در اختيار ما قرار مي گيرد تا رويشان پردازش كنيم .

پـــس : 10 و 20 داده هاي ما هستند . 

مثال 2. در سؤال "مرتب شده اسامي زير به طريق صعودي كدام است؟ ( علي حسين رضا محمد  )  "داده كدام است؟

كليه اسامي كه سؤال مطرح كرده است و به ما مي دهد تا رويشان پردازش كنيم  براي ما داده محسوب مي شوند . 


اما يك سؤال : در مثال 1، 10 و 20 داده بودند و در مثال 2 اسامي ،در  هر دو حالت داده داريم اما آيا اينها به هم شبيه اند ؟ 
مطمئناً خير . پس معلوم است كه داده انواعي دارد . 


داده ها در وحله اول دو نوع هستند ، يا ثابت اند و يا متغير . 


داده ثابت : داده اي است كه ثابت مي ماند يعني مقدار آن در تمام مدت اجراي برنامه تغيير نمي كند . 
داده متغير : داده اي است كه تغيير مي كند يعني در طول اجراي برنامه مِــي تواند مقادير متفاوتي داشته باشد .

نكته : هر داده ي متغير داراي نامي است كه آن را از داده هاي ديگر متمايز  مي سازد . به عبارت ديگر مي توان گفت كه نام متغير ، نام محلي از حافظه است كه در آن مي توان مقادير مختلف را نگه داري كرد  - در این باره در ادامه بیشتر صحبت خواهیم کرد-


مثال 3. در سؤال "محاسبه ميانگين 10 و 20 "داده متغير كدام است ؟ 

داده متغير به كد برنامه بر مي گردد و از نكته در مي يابيم كه : هر داده اي كه ممكن است در طول برنامه بخواهيم مقدار آن را تغيير دهيم ، براي آن مقادير، محلي از حافظه را اشغال و براي آن نامي انتخاب مي كنيم ، كه هر وقت بخواهيم بتوانيم با نامِ آن، به محتويات آن دسترسي داشته باشيم و يا محتويات را تغيير دهيم . 


خوب اما در اين سؤال : اگر سؤال مي گفت" ميانگين دو عدد را حساب كنيد." درآن  موقع، در هر لحظه، هر كاربري دو عدد دلخواه وارد مي كند پس متفاوت مي شود ولي پردازش هماني است كه در سؤال قبل انجام ميشد پس اينجا از متغير استفاده مي كنيم تا مشكل برطرف شود .(مشكل اين جا بود كه اگر داده ثابت تعريف مي شد كاربر نمي توانست دو عدد دلخواه وارد برنامه كند.)
پس پاسخ مثال 3  اين است كه : داده متغير نداريم 10 و 20 داده هاي ثابت اند . 


تذكر : اشتباه نشه . داده متغير در واقع اسم متغير است يعني : كاربر از روي صفحه ي كيبورد 10 را به برنامه مي دهد
برنامه ، 10 را وارد محيط اجرا مي كند، 10 سردرگم نمي ماند به محض گرفتن، برنامه آنرا در متغيري مثلاً به نام مي اندازد. پس : A  داده متغير است نه 10. در حال حاضر 10 است دفعه بعد كاربر به دلخواه 40 را وارد مي كند باز 40 درمي افتد بدون هيچ مشكلي . 

اما همانطور كه در مثال 1و 2 ديديم ، هردو داده، ثابت بودند اما با نوع متفاوت . 
اسم اين متفاوت بودن موجب مي شود كه داده ثابت خودش هم تقسيم شود : 
1. داده ثابت عددي : ثابت است و عدد.
2. داده ثابت رشته اي : ثابت است و رشته اي .


منظور از رشته اي چيست ؟
هر وقت يك يا چند كاراكتر با هم تركيب شوند[ كه معمولاً در برنامه هاي مختلف با گذاشتن /دبل كوتيشن / يعني :  "" آنرا معلوم مي كنند] رشته تشكيل مي شود .


منظور از كاراكتر چيست ؟
 كاراكتر به هرنوع حرف ، رقم ، علامت نشانه گذاري و ... مي گويند . مثل : ! @ # % بو ... 
مثلاً : ايران مجموع چند كاراكتر است و مثلا داده ای رشته ای است ، پس آنرا به اين نحو نمايش مي دهيم "ايران".

اما داده متغير هم 2 نوع دارد :

يك حالت ميشه داده ي متغير  ما، عدد باشه و حالت ديگر ممكن است داده ي ما اسم و ... باشه. 
حالت 1:  داده متغير عددي.
حالت 2 : داده متغير رشته اي .

 

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


اين جمله چه مفهومي را بيان مي كند ؟

"ما داده های مختلفی داريم : چون ممكن است يكبار سؤال طوري باشد كه داده از طريق برنامه به محيط اجرا ، وارد شود و يكبار ممكن است داده از طريق كاربر به برنامه و محيط اجر وارد شود ."

موفق باشید.


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