السبت، 1 أبريل، 2017

الهدف من تعلم صياغة المسائل

صياغة حل المسائل حاسب اول ثانوي
امثلة على صياغة حل المسائل
صياغة حل المسائل
صياغة حل المسائل
شرح صياغة حل المسائل
صياغة حل المسائل
خطوات حل المسائل
البرمجة بلغة فيجول بيسك ستوديو

الهدف من تعلم صياغة المسائل

1- القدرة علي كتابة برامج للحاسب

2- التخطيط لحياتك اليومية

3- القدرة على التفكير لحل المشكلات

* برمجة الحاسب الآلي :

تزويد الحاسب الآلي بالتوجيهات و الأوامر ليقوم بالعمليات الحسابية و المقارنة . 

* خطوات حل المسائل و خطوات كتابة البرنامج :

خطوات حل المسائل 

و خطوات كتابة البرنامج 

خطوات حل المسائل

خطوات كتابة البرنامج

1- تحليل عناصر المسألة

2- كتابة الخوار زم 

3- رسم مخططات الانسياب 

4- كتابة البرنامج بواسطة إحدى لغات البرمجة 

5- ترجمة البرنامج إلى لغة الآلة 

6- اختبار البرنامج و إصلاح الأخطاء

*تحليل عناصر المسألة :

أ- تحديد مخرجات البرنامج: و هي النتائج و المعلومات المراد التوصل إليها .

ب- تحديد مدخلات البرنامج: البيانات اللازم الحصول عليها لمعرفة النتائج .

جـ - تحديد عمليات المعالجة: العمليات الحسابية و الخطوات المنطقية التي نجريها على المدخلات                للحصول على المخرجات .


*كتابة الخطوات الخوارزمية :

هي مجموعة من القواعد و العمليات المعرفة جيدا لحل المشكلة في عدد محدد من الخطوات .

* خواص الخوارزمية السليمة : 

1- كل خطوة يجب أن تكون معرفة جيدا دون أي غموض و محددة بعبارات دقيقة . 

2- أن تتوقف العمليات بعد عدد محدد من الخطوات

3- أن تؤدي العمليات بمجملها إلى حل المسألة الحل الصحيح

المقصود بتحليل عناصر حل المسألة 

هي أن نعرف بالضبط ماذا نريد من البرنامج

*رسم مخططات الانسياب :

هي تمثيل بياني أو رسمي للخطوات الخوارزمية . 

*فوائد رسم المخططات : 

1- توضيح الطريقة التي يمر بها البرنامج من المدخلات ثم المعالجة ثم المخرجات .

2- توثيق منطق البرنامج للرجوع إليه لإجراء التعديلات و اكتشاف الأخطاء 

*بعض الرموز المستخدمة في بناء مخططات الانسياب :

الرمز

الاسم

المعنى

بداية/نهاية

يمثل بداية أو نهاية البرنامج

إدخال/إخراج

يمثل إدخال البيانات أثناء البرنامج أو إخراجها 

عملية

يمثل عملية معالجة البيانات

قرار

يمثل اتخاذ القرار أو تعبير منطقي يحتاج إلى جواب

خط انسياب

يمثل اتجاه الانسياب المنطقي للبرنامج

مثال 1 

قم بصياغة حل المسألة ( قم بتحليل عناصر المسألة ثم كتابة الخطوات الخوارزمية ثم رسم مخطط الانسياب ) لحساب مساحة المستطيل بمعلومية الطول و العرض ، إذا علمت أن مساحة المستطيل = الطول العرض ؟

أولا : 

  تحليل عناصر المسألة: 

1- مخرجات  البرنامج و هي مساحة المستطيل(م)

2- مدخلات  البرنامج و هي الطول(ط) و العرض(ع)

3- عمليات  المعالجة و هي قانون مساحة  المستطيل

                        و هو مساحة المستطيل(م) = الطول(ط) * العرض(ع)

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- أدخل  الطول (ط)  و العرض(ع)

2- أحسب  مساحة المستطيل(م) = ط * ع

4- النهاية 

3- أطبع  المساحة(م) 

ثالثا : 

رسم مخطط الانسياب : 

بداية

نهاية

أدخل (ط) و (ع) 

المساحة (م)= ط * ع

اطبع المساحة(م)

مثال 2

قم بصياغة حل المسألة لإيجاد متوسط عددين ؟ 

أولا : 

  تحليل عناصر المسألة: 

1- مخرجات البرنامج و هي متوسط العددين المدخلين  م 

2- مدخلات البرنامج و هي عددين مدخلين أ ، ب 

3- عمليات المعالجة و هي قانون متوسط العددين

                                            و هو متوسط عددين = ( العدد الأول + العدد الثاني )  2

                                                                            أو بمعنى م = ( أ + ب )  2 

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- أدخل  العددين  أ ، ب 

2- اجعل  م = ( أ + ب ) * 2 

4- النهاية 

3- أطبع  م

ثالثا : 

رسم مخطط الانسياب : 

بداية

نهاية

أدخل العددين  أ ، ب 

  اجعل  م = ( أ + ب ) * 2 

اطبع  قيمة م

* مثال 3 

قم بصياغة حل المسألة لإيجاد زكاة المال و ذلك بمعلومية المال المدخر ، إذا علمت أن زكاة المال = 0.025 ×  المال المدخر، بشرط حساب الزكاة للمال إذا تجاوز 1000 ريال ؟

أولا : 

تحليل عناصر المسألة: 

1- مخرجات البرنامج و هي زكاة المال ( ك )

2- مدخلات البرنامج و هي مبلغ المال ( م )

3- عمليات المعالجة و هي عمليتين أو قانونين هما : 

قانون زكاة المال = المال × 0.025   بمعنى   ك = 0.025 × م

شرط زكاة المال : المال يتجاوز 1000 ريال   بمعنى   م  < 1000

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- أدخل مبلغ المال  م 

2- إذا كان المبلغ ( م ) أصغر أو يساوي 1000 توقف ، و إلا  استمر 

3- اجعل الزكاة ( ك ) = 0.025 × م

4- اطبع الزكاة ( ك ) 

5- نهاية البرنامج

ثالثا : 

رسم مخطط الانسياب : 

بداية

نهاية

أدخل المبلغ ( م ) 

اجعل  الزكاة ( ك ) = 0,025 × م 

اطبع  الزكاة ( ك )

المبلغ(م) <= 1000

نعم 

لا

مثال4 :

قم بصياغة حل لطباعة الأعداد الفردية من 1 إلى 50 ؟ 

أولا:

تحليل عناصر المسألة:

1- مخرجات البرنامج و هي طباعة الأعداد الفردية 1 إلى 50

2- مدخلات البرنامج : لاتوجد مدخلات.

3- عمليات المعالجة:

الانتقال من عدد فردي إلى عدد فردي اخر

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- اجعل ع = 1

2- اطبع ع

3- اجعل ع = ع + 2

4- اذا ع    50 < توقف وإلا اذا اذهب إلى الخطوة رقم (2)

ثالثا : 

رسم مخطط الانسياب : 

بداية

نهاية

اجعل ع = 1

اطبع ع

اجعل ع = ع + 2

ع 50 <

لا

نعم

* مثال 3 / 

قم بصياغة حل المسألة لإيجاد نوع العدد المدخل 

أولا : 

تحليل عناصر المسألة بتحديد: 

1- مخرجات البرنامج و هي نوع العدد المدخل

2- مدخلات البرنامج و هي العدد المدخل (ع)

3- عمليات المعالجة 

إذا كان العدد > الصفر نطبع "موجب" 

  إذا كان العدد < الصفر نطبع "سالب"

  إذا كان العدد = الصفر نطبع "مساو للصفر"

ثانيا : 

  كتابة الخطوات الخوارزمية : 

1- أدخل العدد (ع)

2- إذا كان  ع > 0   اطبع "موجب"  ،  و إلا استمر 

3- إذا كان ع <  0  اطبع "سالب"  ،  و إلا استمر 

4- إذا كان ع = 0  اطبع "مساو للصفر"

5- النهاية

ثالثا : 

رسم مخطط الإنسياب : 

بداية

  أدخل العدد(ع) 

ع > 0 

ع <  0 

  ع = 0

  اطبع "موجب" 

  اطبع "سالب" 

  اطبع "مساو للصفر" 

نهاية

نعم

نعم

نعم

لا

لا

لا

أولا : 

تحليل عناصر المسألة بتحديد: 

1- مخرجات البرنامج و هي نتيجة الطالب أي ناجح أم راسب

2- مدخلات البرنامج و هي  درجة الطالب في مادة الحاسب

3- عمليات المعالجة و هي إذا كانت الدرجة >= 50 نطبع "ناجح"  و إلا نطبع "راسب"

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- أدخل درجة الطالب(د)

2- إذا كانت الدرجة  د >= 50 اطبع "ناجح"  ،  و إلا اطبع "سالب"

3- النهاية 

ثالثا : 

رسم مخطط الإنسياب : 

بداية

نهاية

أدخل الدرجة(د)

  اطبع "راسب" 

  د >= 50 

  اطبع "ناجح"

قم بصياغة حل لتحديد نتيجة الطالب حيث يقوم بطباعة ناجح اذا كانت الدرجة 50 اواكثر وراسب اذا

كانت النتيجة اقل من 50؟

أولا : 

تحليل عناصر المسألة بتحديد: 

1- مخرجات البرنامج و هي الأعداد الزوجية من 2 الى 50 

2- مدخلات البرنامج و هي غير مطلوبة في هذا البرنامج 

3- عمليات المعالجة و هي إذا كان العداد I = 50 توقف

    و إلا زد العداد بمقدار 2

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- ضع العداد(ع) = 0

2- اجعل العداد(ع) = ع + 2

3- اطبع قيمة العداد(ع)

4- إذا كان العداد ع =50 توقف ، و إلا اذهب إلى الخطوة ( 2 ) 

5- النهاية 

ثالثا : 

رسم مخطط الإنسياب : 

بداية

  اجعل ع = ع + 2

  اجعل ع = 0

  اطبع (ع)

ع = 50 

نهاية

نعم

لا

* مثال 4 / 

قم بصياغة حل المسألة لإيجاد متوسط درجات طلاب فصل ما في مادة الحاسب الآلي، إذا علمت أن عددهم 10؟

أولا : 

تحليل عناصر المسألة بتحديد: 

1- مخرجات البرنامج و هي متوسط الدرجات ( م )

2- مدخلات البرنامج و هي درجات 10 طلاب ( د )

3- عمليات المعالجة و هي عمل عداد ( ع ) لعد الطلاب حتى آخر طالب

الطريقة : إذا كان العداد = 10 استمر و إلا  زد العداد

  عمل مخزن لجمع درجات الطلاب ( ج ) 

الطريقة : ج (الجديدة) = ج (القديمة) + د 

قانون إيجاد المتوسط لعشرة أعداد   أي   م = ج ÷ 10

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- ضع المجموع   ( ع) = 0

2- اجعل العداد   ( ج ) = 0 

3- اجعل  العداد   ع = ع + 1 

4- ادخل درجة الطالب رقم ( ع ) و خزنها في ( د ) 

5- اجعل المجموع   ج = ج + د 

6- إذا كان العداد   ع = 10   استمر ، و إلا اذهب إلى الخطوة (3)

7- اجعل المتوسط   م = ج ÷ 10 

8- اطبع المتوسط   م 

9- نهاية البرنامج

بداية

ثالثا : 

كتابة الخطوات الخوارزمية : 

  اجعل  ع = 0

  اجعل   ج = 0 

اجعل   ع = ع + 1

  اجعل  م = ج ÷ 10

اجعل   ج = ج + د 

  اطبع   م 

ادخل درجة الطالب ( د )

  ع = 10

نهاية

العداد(ع)

المجموع(ج)

الدرجة(د)

المتوسط(م)

الدرجات

50

30

10

60

40

س/تتبع مخطط سير الانسياب التالي لإدخال الدرجات التالية ؟

نعم

لا

مثال  5:

قم بصياغة حل لإيجاد أصغر عدد من مجموعة من الأعداد المدخلة ؟

أولا:

تحليل عناصر المسألة:

1- مخرجات البرنامج :أصغر عدد من مجموعة من الأعداد المدخلة وليكن (ص).

2- مدخلات البرنامج : مجموعة من الأعداد المدخلة ولنضعها في متغير (د)

3- عمليات المعالجة:

المقارنة بين كل عدد مدخل مع العدد الذي قبله مع افتراض أن العدد الصغير هو العدد المدخل أولا

ثانيا : 

كتابة الخطوات الخوارزمية : 

1- أدخل العدد الاول(د)

2- اجعل ع = 1

3- اجعل ص = العدد الاول(د)

4- أدخل العدد التالي(د)

5- اجعل ع = ع + 1

6- إذا كان العدد التالي(د) < ص اجعل ص = العدد التالي(د) وإلا استمر

7- إذا كان ع < 10 اذهب إلى الخطوة رقم (4) وإلا استمر

8- اطبع ص

ثالثا : 

رسم مخطط الانسياب : 

بداية

أدخل العدد الأول

اجعل ع = 1

اجعل ص = العدد الأول

أدخل العدد التالي

اجعل ع = ع + 1

العدد التالي < ص

اجعل ص = العدد التالي

ع < 10

اطبع ص

نهاية

لا

نعم

نعم

لا

بداية

أدخل العدد الأول

اجعل ع = 1

اجعل ص = العدد الأول

أدخل العدد التالي

اجعل ع = ع + 1

العدد التالي < ص

اجعل ص = العدد التالي

ع < 10

اطبع ص

نهاية

لا

نعم

نعم

لا

س/تتبع مخطط سير الانسياب التالي لإيجاد اصغر عدد من مجموعة اعداد مدخلة ؟

الدرجة(د)


العداد(ع)


اصغر عدد(ص)

50

30

10

60

40

الأعداد

التعامل مع البيانات و أوامر لغة البيسك الأساسية

* برنامج الحاسب : 

مجموعة من التعليمات و الأوامر التي تعطى للحاسب الآلي للقيام بمهام مرتبة و محددة .

لغات البرمجة

اللغات البسيطة 

اللغات العالية 

1- لغة الآلة

2- لغة التجميع ( الرمزية ) 

1- لغة البرمجة الإجرائية 

2- لغة البرمجة المرئية

اللغات البسيطة

1 -  لغة الآلة

هي اللغة الوحيدة التي يفهمها الحاسب لأنها مكونة من رقمين هما ( الصفر و الواحد ) 

مثال

لكتابة حرف L نكتب الرموز ( 01011000 ) كشفرة للدلالة على الحرف  L   و هكذا بقية الحروف و الأرقام و الرموز .

مميزات لغة الآلة

تتميز لغة الآلة بسرعة تنفيذها على الحاسب لأن أوامرها تكتب بالنظام الثنائي (1,0) الذي يتعامل به الحاسب ويفهمه مباشرة

عيوب لغة الآلة

1 – لغة الآله مرتبطة بالحاسب الذي صممت من أجله 

2 - تحتاج إلى معرفة تامة بالإمكانيات والمكونات الداخلية للحاسب الذي صممت من أجله لغة الآله

3 – لغة الآله يتم كتابة أوامرها بالنظام الثنائي

1 -  لغة التجميع

هي اللغة التي تستخدم بعض الرموز الخاصة و التي يمثل كل منها تعليمة أو أمر له غرض في البرنامج .

مميزات لغة التجميع

1 – أسهل من لغة الآلة في التعامل معها

2 – مفيدة في برامج التحكم في الجهاز ومكوناتة

عيوب لغة التجميع

1- تنفيذ برنامج لغة التجميع على الحاسب يأخذ وقت أطول من لغة الآله

وذلك لان الحاسب لايستطيع أن يفهمها مباشرة بل تحتاج إلى برنامج مترجم يسمى(المجمع) وذلك لترجمتها إلى لغة الآلة التي يفهمها الحاسب

2- لغة التجميع مرتبطة مرتبطة بمكونات الحاسب الداخلية أي أن لغة التجميع مرتبطة بالحاسب الذي صممت من أجله

3- رغم سهولة لغة التجميع عن لغة الآلة إلا أن لغة التجميع تعتبر صعبة التعلم وصعبة الكتابة والقراءة والفهم واكتشاف الأخطاء

4- صعبة التنفيذ نظرا لأنها تعتمد على رموز

من هم مستخدمي لغة التجميع

يستخدمها مهندسي الحاسب والمتخصصين

فيما تستخدم لغة التجميع

تستخدم لغة التجميع في كتابة برامج التحكم بالجهاز ومكوناته

اللغات العالية 

هي اللغات القريبة من لغة الإنسان و يتم تحويل برامجها إلى لغة الآلة بواسطة مترجم خاص ( Compiler ) حتى يتسنى للحاسب فهمها .

مميزات لغات البرمجة عالية المستوى :

1 – سهلة الاستخدام لقربها الشديد من لغة الإنسان

2 – سهلة التعلم والفهم والكتابة والقراءة , وسهلة في اكتشاف الأخطاء وتصحيحها

3 – لا يحتاج المبرمج بهذه اللغات إلى معلومات موسعة عن الحاسب

4- توفر الوقت والجهد اللازمين لكتابة البرنامج

5- البرامج المكتوبة بإحدى لغات البرمجة عالية المستوى يتم نقلها بسهولة من جهاز الى اخر

عيوب لغات البرمجة عالية المستوى :

1- تحتاج ألى مترجم لترجمتها إلى لغة الآلة

2- تنفيذ البرامج المكتوبة بإحدى لغات البرمجة عالية المستوى يأخذ وقت أطول من وقت تنفيذ البرامج المكتوبة بلغة الآلة

1- لغة البرمجة الإجرائية 

اللغات العالية 

هي اللغات القريبة من لغة الإنسان و يتم تحويل برامجها إلى لغة الآلة بواسطة مترجم خاص ( Compiler ) حتى يتسنى للحاسب فهمها .

تنقسم  لغات البرمجة إلى قسمين هما : 

2- لغة البرمجة المرئية 

تعتمد لغة البرمجة الإجرائية على قيام المستخدم لها بكتابة البرنامج إجراء بعد إجراء 

امثله :

لغة البيسك         لغة سي             لغة فورتران

تعمل لغات البرمجة المرئية على نظم التشغيل التي تعتمد على البيئة الرسومية مثل ويندوز98,2000 

امثله :

فيجول بيسك , فيجول سي

التعامل مع البيانات

تتعامل لغة البيسك مع أنواع مختلفة من البيانات مثل الحروف ويتم تخزين هذه البيانات (الثوابت) في أماكن معينة داخل ذاكرة الحاسب تسمى ( متغيرات )

يتم إجراء العمليات الحسابية والعمليات المنطقية على هذه البيانات المخزنة للحصول  على المعلومات (المخرجات) 

يتم اجراء العمليات الحسابية (الجمع,الضرب,القسمة,الطرح ) والعمليات المنطقية مثل ( عمليات المقارنة ) على البيانات العددية

الثوابت

تمثل البيانات التي يتعامل معها البرنامج , وهي قيم ثابتة لاتتغير أثناء تنفيذ البرنامج

يوجد نوعين من الثوابت هما :

أ – ثوابت عددية :

هي عبارة عن قيم عددية (أرقام) لاتتغير أثناء تنفيذ البرنامج وتدخل في عمليات حسابية

أمثلة:-  على الثوابت العددية

   -5  ,  1  ,  2  ,  4.5  , 100 

ب – ثوابت حرفية :

هي عبارة عن حروف أو أرقام أو بعض العلامات الخاصة أو خليط من ذلك ,              

يجب وضع الثابت الحرفي بين علامتي تنصيص 

أمثلة :- على الثوابت الحرفية

     عبد الرحمن  ,  ”OMAR”  ,  ”1234”  ,  ”ALI123”

المتغيرات

المتغير هو اسم يدل على موقع (مخزن) داخل ذاكرة الحاسب يتم فيه تخزين قيمة هذا المتغير

أنواع المتغيرات :-

أ – متغير عددي

المتغير العددي عبارة عن مخزن يتم  فيه تخزين قيم عددية 

أمثلة :-

A , B , C , SUM , MAX , MIN


مثال(1) :-

A = 5

SUM = 8

MAX = 9

المتغيرات

ب – المتغير الحرفي :-

المتغير الحرفي عبارة عن مخزن يتم فيه تخزين قيمة حرفية

أمثلة :-

A , B , C , NAME 


مثال(2) :-

X = “ALI”

NAME = “OMAR”

المتغيرات

شروط تسمية المتغيرات :-

1- يجب أن لا تتجاوز التسمية 255 حرف

2- أن تبدأ التسمية بحرف من الحروف الأبجدية باللغة الأنجليزية

3- يجب أن لايتم استخدام كلمة من الكلمات المحجوزة في لغة البرمجة

         مثل ( Dim , FOR )

4- يجب أن لاتحتوي التسمية على فراغ ( مسافة ) أو بعض الرموز الخاصة

         مثل الرموز ( + , - , * , \ ,% , ! , & , # , @ )

المتغيرات

سبب الخطأ في اسم المتغير

مثال

بدأ برقم ولم يبدأ بحرف

5ABC

اسم المتغير من الكلمات المحجوزة

Dim

يحتوي على علامة خاصة هي (+)

AGE+

يحتوي على فراغ

NU MBER

أمثلة على تسمية المتغيرات

تحديد نوع البيانات في المتغيرات 

لتعريف المتغيرات نحتاج إلى تحديد نوع البيانات التي سوف تخزن فيها 

نوع البيانات

الحجم 

طرق التعريف في البرنامج

مثال القيمة المخزنة

عدد صحيح (Integer)

2بايت

Dim  Mr  as  Integer

Mr=34

عدد صحيح طويل (Long)

4بايت

Dim  Gb  as Long

Gb=15200000

عدد عشري (Single)

4بايت

Dim  X2   as Single

X2=13.44

عدد عشري مضاعف (Double)

8بايت

Dim  Qdm  as Double

Qdm=3.1415926

العملة (Currency )

8بايت

Dim  Deb  as Currency

Deb=852.24

سلسلة نصية (String )

بايت لكل حرف

Dim Name as String

Name="Sara"

منطقي ( Boolean )

2بايت

Dim  b1 as Boolean

b1=true

تاريخ ( Date )

4بايت

Dim   d1  as  Date

d1=#02-05-89#

متنوع ( Variant )

16بايت للأرقام

22 بايت+بايت لكل حرف

Dim  Nk  as Variant

Nk=54.12