الدرس E- الدوال٢ - الدوال الرقمية

يقدم هذا الدرس مفهوم "الدوال"

  • Computer science
  • functions
Print lesson
  • الأعمار 9+
  • 65+ دقائق
  • MakeCode Editor

المقدمة

إذا كنت قد نسيت المقصود بالوظائف وتحتاج للمراجعة نرجو منك العودة بقراءة مقدمة درس " الدالة البسيطة للأبطال" والذي يمثل الدرس الأول في هذه سلسلة " الدوال".

درسنا الحالي يبني على درس " الدالة البسيطة للأبطال" بطريقتين

أولاً: التأكيد على أهمية استخدام الدوال لتنظيم التعليمات البرمجية. الدوال تسمح لنا بتنظيم التعليمات البرمجية بطرق منطقية. يمكننا ترتيب التعليمات البرمجية حتى أنه من السهل أن نشاهد الكائنات التي نهدف لمحاكاتها في الحياة الحقيقية. سيظهر مرة أخرى هنا مع إجراءات لمشروع حيوانات أليفة

ثانيا، نحن نبني التقديم السابق لإعادة استخدام التعليمات البرمجية. الدوال تمكننا من إعادة استخدام التعليمات البرمجية بسهولة في هذا الدرس سيتحدى المتعلمون هذا المفهوم بشكل أكبر نوعا ما. أنهم مطالبون بتحديد أي جزء من التعليمات البرمجية سيكون الأنسب كدالة. هذا التحدي الثالث (٣).

صممت دروسنا لدورة المايكروبت ( Micro:bit) لتطبيق المعرفة المكتسبة من أساسيات علوم الحاسب و Code.org. قبل أن يبدأ الطلاب هذه الدورة ،نحن نشجعهم أولاً على إكمال كل أساسيات علوم الحاسب كشرط مسبق. كما ينبغي على الطلاب أن يكونوا على دراية بالدوال من أساسيات علوم الحاسب و Code.org .

خلفية

يشجع المعلم بقوة على قراءة التالي وإكماله:

ارشادات المعلم

افتح افتح teacher resources

نشاط

ما الذي ستحتاج إليه

  • ١- مايكروبيت (micro:bit)
  • ١- سلك USB
  • ١-AAA حزمة بطاريات (اختياري)
  • ٢-AAA بطاريات (اختياري)

التوثيق


function doSomething()  {
    basic.showString("Hello!")
}

doSomething()
            

دالة

دالة تتيح لك إنشاء جزء من التعليمات البرمجية يمكنك استخدامها في برنامجك الخاص.


for(let i = 0; i < 5; ++i) {
  basic.showNumber(i)
}
            

إلى

قم بتشغيل جزء من البرنامج بعدد المرات التي تقولها.


basic.showLeds(`
    . . . . .
    . . . . .
    . . # . .
    . . . . .
    . . . . .
    `)
            

أضواء العرض

تظهر صورة على شاشة LED.


({}<= ()input.onButtonPressed(Button.A
            

عند الضغط على الزر

ابدأ بتشغيل معالج الحدث (جزء من البرنامج الذي سيتم تشغيله عندما يحدث شيء، مثل عند الضغط على زر)

basic.showIcon(IconNames.Heart)

أيقونة العرض

اعرض الرمز المحدد على شاشة LED

basic.pause(100)

توقف

اوقف البرنامج لعدد المللي ثانية التي ذكرتها


input.onGesture (Gesture.Shake، () => {

})
            

onGesture

بدء تشغيل معالج حدث (جزء من البرنامج الذي سيتم تشغيله عندما يحدث شيء) يعمل هذا المعالج عند القيام ببادرة (مثل هز المايكروبيت)

٥ خطوات

تصميم مشروعنا

ارسم ٣ شبكات بحيث تكون كل شبكة ٥*٥ ولون في المربعات (تمثل المصابيح) لإظهار ما الذي سيءهر عليه مشروعك.. مستيقظا، نائماً، للشرب

هنا اخترنا ما يلي ولكن يمكنك أن تفعل ما تريد.

  1. الوجه المبتسم = awake
  2. Z عرض 4 مرات = نائم (عند الضغط على الزر A)
  3. عرض قطرة الماء 4 مرات = يشرب (عند الضغط على الزر B)

حيواننا الأليف ، هربرت ، سيكون شخصًا صغيرًا سعيدًا عندما يكون مستيقظًا لذا نعرض وجهًا مبتسمًا.

في بعض الأحيان نحتاج إلى النوم وكذلك هربرت. سنجعله ينام عن طريق التربيت عليه. اضغط على زر A ستظهر الحيوانات الأليفة Herbert و ZZZZ (Z 4 مرات الوامضة) ليظهر أنه نائم.

ثم يذهب بهدوء (اضاءة LEDs مغلقة) كما يريد ان يحلم. من اجل ايقاظة, نعطية قليل من الماء. هبربرت يحب الماء لذلك نستطيع ان نعطية متى اردنا. سوف يوقظه هذا ويعيده الى حالة السعادة مرة أخرى. سنعطيه الماء بالضغط على الزر B. ستظهر قطرة ماء تظهر أنه يشرب ثم يستيقظ مرة أخرى ويظهر وجه مبتسم مرة اخرى!

الممارسة الموجهة

سنجعل التعليمات أو التعليمات البرمجية عبر الإنترنت للغة مايكروبيت (micro:bit). بعد ذلك ، انتقل إلى: makecode.microbit.org

input.onButtonPressed(Button.B, () => {
    DRINKING()
})
function ASLEEP()  {
    for (let i = 0; i < 4; i++) {
        basic.showLeds(`
            # # # # #
            . . . # .
            . . # . .
            . # . . .
            # # # # #
            `)
        basic.pause(500)
        basic.clearScreen()
        basic.pause(500)
    }
}
function DRINKING()  {
    for (let index = 0; index <= 4; index++) {
        basic.showLeds(`
            . . # . .
            . # . # .
            # . . . #
            # . . . #
            . # # # .
            `)
        basic.pause(500)
        basic.clearScreen()
        basic.pause(500)
    }
    AWAKE()
}
input.onButtonPressed(Button.A, () => {
    ASLEEP()
})
function AWAKE()  {
    basic.showIcon(IconNames.Happy)
}
input.onGesture(Gesture.Shake, () => {

})
function EXERCISE()  {

}
input.onButtonPressed(Button.AB, () => {

})
AWAKE()

هربرت لديه ثلاث إجراءات يقوم بها. إنه إما مستيقظ أو نائم أو يشرب. لدينا دالة لكل من هذه الإجراءات.

في البداية ، نسمي الدالة التي تعرض وجهًا سعيدًا. هربرت سعيد و مستيقظ.

الضغط على الزر A يستدعي دالة تعرض أضواء Z.

Pressing button B calls a function that displays a flashing waterdrop. This means Herbert is drinking.

الاختلاف الحقيقي الوحيد بين دالة النوم ودالة الشرب هو في النهاية. في نهاية دالة الشرب ، نستدعي دالة AWAKE مرة أخرى ويظهر هربرت وجهه السعيد. هربرت يحب الماء

يساعدنا الإيقاف المؤقت ومسح الشاشة على إنشاء تأثير وامض. تساهم الحلقات تكرار for وحلقات التكرار الأخرى في إحداث تأثير وامض.

إن تفاصيل كيفية عمل الدالتين (النوم، الشرب) ليست مهمة بالفعل لهذا الدرس. سنركز على استخدام هذه الداول، وفهم كيفية بناء الدالة الخاصة بنا .

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

ملاحظة: البلوك غير المستخدمة في آخر التعليمات البرمجية وضعت لتستخدم في التحديات.

تحديات الدوال

التحدي رقم ١

هل يمكنك برمجة هربرت للتمرين عندما يتم دفع كل من الزرين A و B؟

تلميح: استخدام دالة التمرين وأيقونة الرول سكيت و اختيار الحدث A + B.

عرض التعليمات البرمجية
function AWAKE()  {
    basic.showIcon(IconNames.Happy)
}
function ASLEEP()  {
    for (let i = 0; i < 4; i++) {
        basic.showLeds(`
            # # # # #
            . . . # .
            . . # . .
            . # . . .
            # # # # #
            `)
        basic.pause(500)
        basic.clearScreen()
        basic.pause(500)
    }
}
function DRINKING()  {
    for (let index = 0; index <= 4; index++) {
        basic.showLeds(`
            . . # . .
            . # . # .
            # . . . #
            # . . . #
            . # # # .
            `)
        basic.pause(500)
        basic.clearScreen()
        basic.pause(500)
    }
    AWAKE()
}
input.onButtonPressed(Button.A, () => {
    ASLEEP()
})
input.onButtonPressed(Button.B, () => {
    DRINKING()
})
input.onButtonPressed(Button.AB, () => {
    EXERCISE()
})
function EXERCISE()  {
    basic.showIcon(IconNames.Rollerskate)
}
input.onGesture(Gesture.Shake, () => {

})
AWAKE()

تجد التعليمات البرمجية النهائية هنا

التحدي رقم ٢

هل بإمكانك برمجة هربرت للقيام بإجراء جديد عند حدث الهز؟

عرض التعليمات البرمجية
input.onButtonPressed(Button.B, () => {
    DRINKING()
})
function Silly()  {
    basic.showIcon(IconNames.Rollerskate)
}
function ASLEEP()  {
    for (let i = 0; i < 4; i++) {
        basic.showLeds(`
            # # # # #
            . . . # .
            . . # . .
            . # . . .
            # # # # #
            `)
        basic.pause(500)
        basic.clearScreen()
        basic.pause(500)
    }
}
function DRINKING()  {
    for (let index = 0; index <= 4; index++) {
        basic.showLeds(`
            . . # . .
            . # . # .
            # . . . #
            # . . . #
            . # # # .
            `)
        basic.pause(500)
        basic.clearScreen()
        basic.pause(500)
    }
    AWAKE()
}
input.onButtonPressed(Button.A, () => {
    ASLEEP()
})
function AWAKE()  {
    basic.showIcon(IconNames.Happy)
}
input.onButtonPressed(Button.AB, () => {
    EXERCISE()
})
input.onGesture(Gesture.Shake, () => {
    Silly()
})
function EXERCISE()  {
    basic.showIcon(IconNames.Rollerskate)
}
AWAKE()

تجد التعليمات البرمجية النهائية هنا

التحدي رقم ٣

إذا كنت تتذكر ، فإن إحدى مزايا الدوال هي كتابة التعليمات البرمجية ومن ثم القدرة على إعادة استخدامها بسهولة. انظر إلى دوال النوم والشرب. هل تتشابه في تعليماتها البرمجية؟ هل يمكنك عمل دالة جديدة باستخدام هذه التعليمات البرمجية المكررة؟ استدعي دالتك التي تحمل اسم BLINKING.

عرض التعليمات البرمجية
input.onButtonPressed(Button.B, () => {
    DRINKING()
})
function BLINKING()  {
    basic.pause(500)
    basic.clearScreen()
    basic.pause(500)
}
function ASLEEP()  {
    for (let i = 0; i < 4; i++) {
        basic.showLeds(`
            # # # # #
            . . . # .
            . . # . .
            . # . . .
            # # # # #
            `)
        BLINKING()
    }
}
function DRINKING()  {
    for (let index = 0; index <= 4; index++) {
        basic.showLeds(`
            . . # . .
            . # . # .
            # . . . #
            # . . . #
            . # # # .
            `)
        basic.pause(500)
        basic.clearScreen()
        basic.pause(500)
    }
    AWAKE()
}
input.onButtonPressed(Button.A, () => {
    ASLEEP()
})
function AWAKE()  {
    basic.showIcon(IconNames.Happy)
}
input.onButtonPressed(Button.AB, () => {
    EXERCISE()
})
input.onGesture(Gesture.Shake, () => {
    Silly()
})
function EXERCISE()  {
    basic.showIcon(IconNames.Rollerskate)
}
function Silly()  {
    basic.showIcon(IconNames.Rollerskate)
}
AWAKE()

The finished code is available here

التطبيق الفردي

إنشاء مشروعك الخاص باستخدام المايكروبيت مع 3 استدعاءات للدوال. يمكن أن يؤدي إدخال رموز أو تغيير مؤشرات LED إلى إنشاء مشروع جديد. كن مستعدًا لإخبار قصة حول مشروعك الجديد ولماذا تفعل الإجراءات التي تختارها.

يمكن العثور على تعليمات البدء هنا .

اختبار قصير

أجب على هذه الأسئلة لتظهر مدى استيعابك للأنشطة السابقة و التحديات التي تواجهك.

السؤال ١

ماهي فوائد استخدام الدوال؟

اظهر الاجابة

أي من هذه الخيارات تعد إجابة مقبولة

  1. تتيح لنا الدوال تكرار التعليمات البرمجية دون إعادة كتابتها بحيث تصبح التعليمات البرمجية أصغر.
  2. إذا احتجنا إلى إجراء تغييرات ، فلا يتعين علينا سوى تغيير التعليمات البرمجية في مكان واحد.
  3. تسمح لنا الدوال بتنظيم التعليمات البرمجية بشكل أفضل.

السؤال ٢

كيف أقوم بإعداد التعليمات البرمجية في "go" or "start"?

اظهر الاجابة

استدعاء دالة والتعليمات البرمجية التي بداخلها سوف ;quot;go"&

السؤال ٣

فكر في شيء يمكنه استخدام الدوال واكتب قائمة بما يمكنك وضعه في الدوال. على سبيل المثال قد تكون سيارة.

اظهر الاجابة

دوال السيارة

  • تحريك
  • توقّف
  • تدوير
Selecting this opens external content from our support system, which adheres to their privacy policy.