الدرس F - المتغيرات 2- المتغيرات و المشاعر

سيقوم الطالب في هذا الدرس بإنشاء برنامج يستخدم الأحداث ، المتغيرات و الشروط.

  • Computer science
  • variables
  • functions
  • conditionals
Print lesson
  • الأعمار 10+
  • 90 دقائق
  • MakeCode Editor

المقدمة

سيكون هذا الدرس استكمال لدرس سابق بعنوان " المتغيرات و إستخدام العداد". بينما الدرس السابق ذكره يركز على المتغيرات التي تستخدم لتخزين قيمة عداد ما، هذا الدرس سوف نستخدم المتغير لتخزين قيمة نصية أو سلسلة نصوص. النصوص هي عبارة عن سلسلة من الأحرف والتي لا يمكن استخدامها في العمليات الرياضية. وبدلاً من ذلك نستطيع أن نستخدمها لعرض الكلمات. قد يساعد تخزين النصوص في المتغيرات في جعل البرامج أكثر قابلية للقراءة أحيانا.

المتغيرات - كما يشير إسمها - تتغير باستمرار كتغير الحالة المزاجية للإنسان. في هذا الدرس سيطلب منك تغيير قيمة المتغيرات. سوف نقوم بذلك لجعل الأمور اكثر انسيابية. يمكنك قراءة المزيد من الموضايع المتصلة بهذا الدرس لكن تذكر أننا سنتعامل مع المتغيرات النصية وسلاسل الحروف ونتعلم كيف نتعامل معها من خلال المايكروبيت ( micro:bit).

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

نشجع الطلاب والمعلمين بقوة لاستكمال الاشتراطات المسبقة المذكورة أعلاه قبل البدء في هذا الدرس.

دليل المعلم

افتح افتح teacher resources

نشاط

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

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

التوضيحات

basic.forever(() => {})

forever

تستخدم لإبقاء جزء من التعليمات البرمجية يعمل في الخلفية إلى ما لا نهاية.


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

for

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


(!basic.showString(Hello
            

showString

يعرض كلمة أو سلسلة نصية في شاشة عرض المايكروبيت (micro: bit) باستخدام الإضاءة (LED)


basic.showNumber(0)
            

showNumber

يعرض قيمة عددية على شاشة المايكروبيت (micro: bit) باستخدام الإضاءة (LED)


let item =0
item=0
            

setltem

يستخدم لإسناد قيمة ما للمتغير سواء قيمة عددية أو نصية.


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

الدالة

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

4 خطوات

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

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

let Result = ;
 let What_to_give =;
 let Morning_Mood =;
 function How_Does_Baby_Brother_Feel_Now() {
     basic.showString(Morning_Mood)
    for (let i = 0; i < 3; i++) {
        basic.showLeds(`
            . . # . .
            . . # . .
            # # # # # 
            . . # . .
            . . # . .
            `)
         basic.clearScreen()
         basic.pause(250)
     }     basic.showString(What_to_give)
     for (let i = 0; i < 5; i++) {
         basic.showLeds(`
             . . . . .
            . # # # .
            . . . . .
            . # # # .
            . . . . .
            `)
         basic.clearScreen()
         basic.pause(100)
     }    
 if (Result == "Happy") {
         basic.showIcon(IconNames.Happy)
     } else if (Result == "Sad") { 
        basic.showIcon(IconNames.Sad)
     } else if (Result == "Confused") {
         basic.showIcon(IconNames.Confused)
     } else if (Result == "Angry") {        
 basic.showIcon(IconNames.Angry)
     } else {         basic.showIcon(IconNames.Meh)
     } } basic.forever(() =>
 {   
  Morning_Mood = "Sad" 
    What_to_give = "Toy"
     Result = "Happy"
     How_Does_Baby_Brother_Feel_Now() 
})

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

سوف نقوم بعرض ذلك باستخدام متغير نصي في برنامجنا، على سبيل المثال المخرجات قد تكون:

حزين + لعبة = سعيد 
Sad + Toy = Happy

عندما يستيقظ أخوك من النوم وهو منزعج. تقوم بإعطاءه لعبة سوف يلهو بها ويصبح سعيداً لاحقاً.

يتوجب أن نبدأ البرنامج باستخدام حلقة دوران لانهائية forever. لدينا المتغير المسمى "Morning_Mood" (الحالة الصباحية) والذي يخزن الحالة منزعج (sad). في المثال الأول يستيقظ الطفل منزعجاً (sad).

وبعد ذلك، لدينا المتغير الذي يحمل المسمى 'What_to_give' (ماذا يجب أن نعطي) والذي يحمل القيمة لعبة (Toy). هنا سوف تعطي أخاك الصغير لعبة لأن حالته المزاجية منزعج (sad). أخيراً، المتغير المسمى 'Result' (النتيجة) سوف يتم تعيينه الى سعيد (Happy). إعطاء أخيك الصغير لعبة سيجعله سعيداً!

استدعاء الدالة 'How_Does_Baby_Brother_Feel_Now' (كيف يشعر الأخ الصغير الآن) تعرض قيمة المتغيرات النصية. سوف يتم تمرير النصوص من خلال الشاشة.

قم بزيارة الرابط للتوجه إلى التعليمات البرمجية الابتدائية. توجد بعض الكتل(blocks) الإضافية لمساعدتك في البدء بتطبيق الدرس

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

ملاحظة: الكتل (blocks) الغير مستخدمة في آخر الكود البرمجي تهدف الى مساعدتك في التحديات. أيضا لدينا الدالة الخاصة بمعرفة الحالة المزاجية للصغير 'How_Does_Baby_Brother_Feel_Now' (كيف يشعر الأخ الصغير الآن). ليس من الضروري حالياً أن تفهم أو تدرس هذه الدالة. هذه الدالة تستخدم للمساعدة في إظهار النتيجة بطريقة أكثر وضوحاً. إذا كنت ترغب في استكشاف هذه الدالة ،قم بذلك. وإلا يمكنك تجاهلها.

تحديات المتغيرات والمشاعر

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

التحدي الأول

قم بتغيير القيم لكافة المتغيرات الثلاثة (Morning_Mood، What_to_give، Result) لصنع وضع جديد لأخاك الصغير. لابد أن يكون هناك علاقة بين الحالة المزاجية و الشي الذي ستعطيه لأخيك والنتيجة مما يجعل القصة ذات معنى.

تذكر: أي نتيجة بخلاف (Happy سعيد, Sad منزعج, Confused حائر, Angry غاضب) سوف تعرض رمز وجه غير مكترث على الشاشة!

عرض التعليمات البرمجية
let Result = ;
 let What_to_give =;
 let Morning_Mood =;
 function How_Does_Baby_Brother_Feel_Now() {
     basic.showString(Morning_Mood)
    for (let i = 0; i < 3; i++) {
        basic.showLeds(`
            . . # . .
            . . # . .
            # # # # # 
            . . # . .
            . . # . .
            `)
         basic.clearScreen()
         basic.pause(250)
     }     basic.showString(What_to_give)
     for (let i = 0; i < 5; i++) {
         basic.showLeds(`
             . . . . .
            . # # # .
            . . . . .
            . # # # .
            . . . . .
            `)
         basic.clearScreen()
         basic.pause(100)
     }
     if (Result == "Happy")
 {         basic.showIcon(IconNames.Happy)    
 } else if (Result == "Sad") { 
        basic.showIcon(IconNames.Sad)
     } else if (Result == "Confused") { 
        basic.showIcon(IconNames.Confused)
     } else if (Result == "Angry") {
         basic.showIcon(IconNames.Angry)
     } else {        
 basic.showIcon(IconNames.Meh)
     } } basic.forever(() =>
 {     Morning_Mood = "Hungry"
     What_to_give = "Bottle"
     Result = "Full"
     How_Does_Baby_Brother_Feel_Now() 
})

جائع + زجاجة الرضاعة = وجه غير مكترث... قد يكون أخاك ليس جائعاً بعد.

التحدي الثاني

هذه المرة الوقت هو الليل. بدلاً من إعطاء أخيك شيئا، أنه يريد القيام بنشاط ما. قم بإعادة تسمية المتغيرات (Morning_Mood، What_to_give). اعد تسميتهم إلى أسماء ذات معنى ودلالة. تغير الوضع الآن لذا يجب أن ينعكس ذلك على أسماء المتغيرات. ثم قم بتغيير قيم المتغيرات الثلاثة مرة أخرى لخلق وضع جديد لأخيك الصغير خلال وقت الليل. يجب أن تكون القصة ذات معنى.

عرض التعليمات البرمجية
let Result = ;
 let What_to_give =;
 let Morning_Mood =;
 function How_Does_Baby_Brother_Feel_Now() {
     basic.showString(Night_Mood)
    for (let i = 0; i < 3; i++) {
        basic.showLeds(`
                      . . # . .
                      . . # . .
                      #####
. . # . .
                      . . # . .
                      `)
         basic.clearScreen()
         basic.pause(250)
     }     basic.showString(Activity_to_do)
     for (let i = 0; i < 5; i++) {
         basic.showLeds(`
             . . . . .
                      . # # # .
                      . . . . .
                      . # # # .
                      . . . . .
                      `)
         basic.clearScreen()
         basic.pause(100)
     }
     if (Result == "Happy")
 {         basic.showIcon(IconNames.Happy)    
 } else if (Result == "Sad") { 
        basic.showIcon(IconNames.Sad)
     } else if (Result == "Confused") { 
        basic.showIcon(IconNames.Confused)
     } else if (Result == "Angry") {
         basic.showIcon(IconNames.Angry)
     } else {        
 basic.showIcon(IconNames.Meh)
     } } basic.forever(() =>
 {     Morning_Mood = "Hungry"
     What_to_give = "Bottle"
     Result = "Full"
     How_Does_Baby_Brother_Feel_Now() 
})
          

يتضح من خلال هذا المثال أن أخوك الصغير لا يحب اللعب بالكرة. لتحصل على علامة جيدة، لابد أن تشرح لماذا لم يحب الطفل الصغير اللعب بالكرة.

التحدي الثالث

قم بحذف استدعاء الدالة ' How_Does_Baby_Brother_Feel_Now' من حلقة الدوران الانهائية. قم باستخدام كتلة التعليمات البرمجية لعرض نص(show string join) للقيام بعرض النتيجة عوضا عن ذلك. بذلك نستطيع دمج النصوص مع بعضها بدلا من استخدام الدالة.

مساعدة: استخدام الكتل (blocks) الإضافية المدرجة اسفل المحرر.

عرض التعليمات البرمجية
let Result = ""
 let Activity_to_do = ""
 let Night_Mood = ""
 basic.forever(() => { 
    Night_Mood = "Bored"
     Activity_to_do = "Play Ball"
     Result = "Sad"
     basic.showString("" + Night_Mood + Activity_to_do + Result)
 })

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

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

ادمج كلمتين معاً لتكوين كلمة أكبر. يتكون بعد دمج الكلمات مع بعضها كلمة مركبة. إستخدم الدالة 'How_Does_Baby_Brother_Feel_Now' مع الدمج (join) أو بطريقة أخرى لدمج متغيرين نصيين مع بعضهما. حاول أن تغير أسماء المتغيرات التي سوف تخزن فيها الكلمات المدموجه إلى أسماء ذات معنى.

مثال - بعض الامثلة على دمج النصوص مثل (play + ground = playground) أو (tree + house = treehouse). أسماء المتغيرات يمكن أن تكون word1 و word2.

ملاحظة: المخرجات من دمج الكلمات قد تكون كلمات غير مركبة وليست ذات معنى. يمكن استخدام أي كلمات ترغب بها مثل head و fork والتي ستكون نتيجتها heahfork وهي كلمة غير صحيحة. بعد ذلك يبدأ المرح بإخبار الجميع عن المعني الجديد للكلمة التي قمت بصنعها.

اختبار قصير

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

السؤال ١

لماذا نستخدم المتغيرات ؟ ماهو سبب استخدامنا لها ؟

أظهر الإجابة

هناك العديد من الإجابات لهذا السؤال ولكن بشكل العام المتغيرات هي أماكن يتم حجزها لتخزين واسترجاع البيانات.

السؤال ٢

ماهي طريقة ربط المتغيرات النصية مع بعضها ؟

أظهر الإجابة

يمكن استخدام الطريقة دمج (join) لربط المتغيرات النصية مع بعضها.

السؤال ٣

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

set variable to "yes"
 set variable to "no"
 set variable to "maybe" 
set variable to "oh... ok!"
 show string variable
إظهار الإجابة
oh... ok!
Selecting this opens external content from our support system, which adheres to their privacy policy.