Classes, Objects, and Methods - كتاب إنترنت الأشياء - الصف 11 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: Classes, Objects, and Methods

📚 معلومات الصفحة

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 الفئات والكائنات والوظائف

المفاهيم الأساسية

البرمجة الكائنية (OOP): برمجة ترتكز على إجراء جميع العمليات البرمجية على أساس "الكائنات".

الكائن (Object): الوحدة الأساسية للبرمجة الكائنية. له خصائص ويمكنه تنفيذ أحداث.

الفئة (Class): المفهوم أو القالب الذي تُنشأ منه الكائنات.

الوظيفة (Method): الإجراءات التي يمكن لكل كائن تنفيذها (دوال تُعلن داخل جسم الفئة).

العينة (Instance): كائن محدد مُنشأ من فئة معينة.

خريطة المفاهيم

```markmap

برمجة إنترنت الأشياء باستخدام C++

أساسيات لغة C++

التعليقات (Comments)

#### التعليق في سطر واحد

  • يستخدم الرمزين: //
  • مثال: // this is a comment
#### التعليق متعدد الأسطر

  • يستخدم الرمزين: / /
  • مثال: / ... /
#### استخدامات التعليقات

  • تحسين قابلية قراءة البرنامج
  • تسهيل فهم وظائف البرنامج للمبرمجين والمراجعين
  • جعل أجزاء من الكود غير نشطة أثناء الاختبار

المعاملات الأساسية

#### المعاملات الرياضية

  • الجمع (+)
  • الطرح (-)
  • الضرب (*)
  • القسمة (/)
  • باقي القسمة (%)
##### ملاحظة

  • في الأعداد الصحيحة (int): "/" لحاصل القسمة، "%" لباقي القسمة
  • في الأعداد العشرية (float/double): "/" فقط لحاصل القسمة
#### معاملات الإسناد

  • الإسناد (=)
  • الجمع والإسناد (+=)
  • الطرح والإسناد (-=)
  • الضرب والإسناد (*=)
  • القسمة والإسناد (/=)
  • باقي القسمة والإسناد (%=)
#### المعاملات العلائقية

  • يساوي (==)
  • لا يساوي (!=)
  • أكبر من (>)
  • أصغر من (<)
  • أكبر أو يساوي (>=)
  • أصغر أو يساوي (<=)
#### المعاملات المنطقية

  • AND المنطقية (&&)
  • OR المنطقية (||)
  • NOT المنطقية (!)

الطباعة والإخراج

  • الأمر: `cout << x;`

العبارات الشرطية

#### أنواع العبارات الشرطية

  • عبارة `if`
  • عبارة `if... else if... else`
  • عبارة `if... else if... else if...`
#### عبارة `if` البسيطة

  • الصيغة: `if (condition) { // body }`
  • آلية العمل:
- يتم فحص الشرط بين القوسين.

- إذا كان الشرط صائباً (True)، تُنفَّذ التعليمات داخل الأقواس `{}`.

- إذا كان الشرط خاطئاً (False)، تُتخطَّى التعليمات داخل الأقواس.

#### عبارة `if...else`

##### التركيب

if (condition) {

// block of code 1 if condition is true

}

else {

// block of code 2 if condition is false

}

##### آلية العمل

  • يتم أولاً تقييم الشرط.
  • إذا كان الشرط صائباً (True)، تُنفَّذ التعليمات داخل `if` وتُتخطَّى التعليمات داخل `else`.
  • إذا كان الشرط خاطئاً (False)، تُتخطَّى التعليمات داخل `if` وتُنفَّذ التعليمات داخل `else`.
#### عبارة `if..else if..else`

##### التركيب

if (condition1) {

// code block 1

}

else if (condition2) {

// code block 2

}

else {

// code block 3

}

##### آلية العمل (مخطط التدفق)

  • البدء.
  • فحص الشرط الأول.
- إذا كان صواب: تنفيذ تعليمات برمجية 1 ثم الخروج.

- إذا كان خطأ: الانتقال لفحص الشرط الثاني.

- إذا كان صواب: تنفيذ تعليمات برمجية 2 ثم الخروج.

- إذا كان خطأ: تنفيذ تعليمات برمجية 3 ثم الخروج.

##### حالات التنفيذ

###### إذا كان الشرط الأول صائباً

  • تُنفَّذ مجموعة التعليمات البرمجية الأولى.
  • تُتخطَّى مجموعتي التعليمات الثانية والثالثة.
###### إذا كان الشرط الأول خطأ والثاني صائباً

  • تُنفَّذ مجموعة التعليمات البرمجية الثانية.
  • تُتخطَّى مجموعة التعليمات البرمجية الثالثة.
###### إذا كانت كافة الشروط خطأ

  • تُنفَّذ مجموعة التعليمات البرمجية الثالثة (الخاصة بـ `else`).
##### العبارات الشرطية المتداخلة

  • يمكن تضمين عبارة `if` داخل مجموعة تعليمات برمجية لعبارة `if` أخرى.
  • لا يُشترط أن تكون من نفس النوع.

التكرارات (Loops)

#### أنواع التكرارات

##### تكرار `for`

  • الصيغة: `for (تهيئة المتغير; الشرط; معامل الزيادة) { // loop statements; }`
  • آلية العمل:
1. التهيئة: تنفذ مرة واحدة فقط قبل بدء التكرار.

2. فحص الشرط: إذا كان صواب، تُنفَّذ جمل التكرار.

3. الزيادة: تحديث قيم المتغيرات بعد تنفيذ الجمل.

4. التكرار: يستمر حتى يصبح الشرط خطأ.

##### تكرار `while`

  • الصيغة: `while (condition) { // loop statements; }`
  • آلية العمل:
1. فحص الشرط أولاً.

2. إذا كان صواباً، تُنفَّذ عبارات التكرار.

3. إذا كان خطأ، يتوقف التكرار وتُتخطَّى العبارات.

##### تكرار `do...while`

  • الصيغة: `do { // statement execution; } while (condition);`
  • آلية العمل:
1. تنفيذ التعليمات أولاً مرة واحدة على الأقل.

2. فحص الشرط بعد التنفيذ.

3. إذا كان الشرط صواباً، يعود لتنفيذ التعليمات مرة أخرى.

4. إذا كان خطأ، يتوقف التكرار.

#### عبارات التحكم في التكرار

##### عبارة `break`

  • الوظيفة: تنهي التكرار حيث تكون موجودة.
  • آلية العمل:
- عند استيفاء شرط معين داخل التكرار، يتم تنفيذ `break`.

- يخرج البرنامج فوراً من التكرار الحالي وينتقل إلى التعليمات التي تلي الحلقة.

  • الاستخدام في `for`:
for (init; condition; update) {

// code block 1

if (condition to break) {

break

}

// code block 2

}

// code after loop

  • الاستخدام في `while`:
while (condition) {

// code block 1

if (condition to break) {

break

}

// code block 2

}

// code after loop

  • في التكرارات المتداخلة: إذا وُضعت داخل تكرار متداخل، فإنها تنهي التكرار الداخلي فقط.
##### عبارة `continue`

  • الوظيفة: تتخطى بقية التعليمات البرمجية داخل التكرار وتنتقل إلى التكرار التالي.
  • الاستخدام في `for`:
for (init; condition; update) {

// code block 1

if (condition to continue) {

continue

}

// code block 2

}

// code after loop

  • الاستخدام في `while`:
while (condition) {

// code block 1

if (condition to continue) {

continue

}

// code block 2

}

// code after loop

  • في التكرارات المتداخلة: إذا وجدت داخل تكرار متداخل، يتم تخطي التكرار الحالي في التكرار الداخلي فقط.

الدوال (Functions)

#### تعريف الدالة

  • تجميع تعليمات برمجية تؤدي مهمة محددة.
  • يمكن استدعاؤها عدة مرات.
  • توجد دوال قياسية ودوال خاصة بالمبرمج.
#### تركيب الدالة

return\_type\ functionName\ ( parameter1,\ parameter2,\ ...\ )\ \{ \ //\ function\ body \ \}

##### أجزاء التركيب

  • return type: نوع البيانات التي ترجعها الدالة.
  • functionName: اسم الدالة.
  • parameter1, parameter2: وسيطات الإدخال (إن وجدت).
#### مثال

// function declaration

int adding (int a, int b) {

s = a+b;

return s

}

#### استخدام الدوال

##### استدعاء الدالة

  • يتم من خلال اسمها وتمرير المعاملات.
  • مثال: `c = adding(a,b);`
##### الدالة الرئيسية `main()`

  • نوع خاص في C++.
  • نوع إرجاعها `int`.
  • لا تقبل معاملات: `()`.
  • `return 0;` فيها اختياري.
##### توافق المعاملات

  • يجب أن يتطابق النوع والعدد والترتيب للوسائط مع المعاملات في إعلان الدالة.
##### نوع الإرجاع `void`

  • يستخدم عندما لا ترجع الدالة أي قيمة.
  • مثال: `void displayNumber() { // code }`
#### دوال إنترنت الأشياء (الأردوينو)

##### الدوال الخاصة

  • `setup()` و `loop()`: تُستدعى تلقائياً عند بدء تنفيذ البرنامج (عكس باقي الدوال التي تستدعى يدوياً).
##### دالة `setup()`

  • تنفذ مرة واحدة فقط في البداية.
  • المسؤولية: تكوين أجزاء الدائرة (مثل ضبط أطراف الأردوينو، إنشاء اتصال تسلسلي).
##### دالة `loop()`

  • تُستدعى بشكل متكرر بعد `setup()`.
  • الوظيفة: هي الوظيفة الرئيسية والتشغيلية المستمرة للدائرة.

البرمجة الكائنية (OOP)

الفئة (Class)

  • المفهوم أو القالب.
  • مثال: فئة "Servo".

الكائن (Object)

  • تجسيد للفئة (Instance).
  • له خصائص.
  • يمكنه تنفيذ أحداث (Actions).
  • مثال: محرك سيرفو (Servo Motor) كائن له خصائص (طرف رقمي، عدد درجات الدوران).

الوظيفة (Method)

  • الإجراءات التي يمكن للكائن تنفيذها.
  • دوال تُعلن داخل جسم الفئة (Class).
```

نقاط مهمة

  • في برمجة الأردوينو: تُكتب الإعدادات في `void setup()`، والمنطق الرئيسي في `void loop()`، والإعلان عن الثوابت والدوال يكون خارجهما.
  • العلاقة بين الفئة والكائن: الفئة هي المفهوم (مثل "سيارة")، والكائن هو التجسيد (مثل "سيارتي الحمراء").
  • مثال: في دائرة تحتوي على 3 محركات سيرفو، نعلن عن فئة "Servo" مرة واحدة، وكل محرك يكون كائناً (عينة) من هذه الفئة.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

نوع: محتوى تعليمي

بشكل عام، يجب أن تُكتب البرامج الإعداد دالة ( void setup( ) ) وتُكتب منطق البرنامج الرئيس داخل ( void loop( ) ) وأي إعلان عن أي ثوابت أو دوال يكون خارج هاتين الدالتين.

نوع: محتوى تعليمي

مثال على برنامج أردوينو بلغة C++.

نوع: محتوى تعليمي

void setup( ) { int a = 10; int b = 20; } void loop( ) { for (int i = 0; i < b; i++) { a += i; cout << a; } }

Classes, Objects, and Methods

نوع: محتوى تعليمي

ترتكز البرمجة الكائنية (Object-Oriented Programming (OOP)) على إجراء جميع العمليات البرمجية على أساس "الكائنات". الكائن هو الوحدة الأساسية للبرمجة الكاشفية. قد يكون لهذه الكائنات خصائص، كما يمكنها أن تنفذ بعض الأحداث (Actions) الأساسية. على سبيل المثال، يمكن اعتبار محرك سيرفو (Servo Motor) بمثابة كائن له بعض الخصائص مثل طرف رقمي، وتدوير محركه بعدد معين من الدرجات وغيرها. تسمى هذه الإجراءات التي يمكن لكل كائن تنفيذها بالوظائف (Methods)، وهي في لغة C++ بالأساس الدوال التي أعلن عنها داخل جسم الفئة (Class) وليس الكائن (Object). لفهم الفرق بين الفئة والكائنات، يمكنك اعتبار الفئة كمفهوم، والكائنات على أنها تجسيد لهذا المفهوم. في محاكاة الدائرة، حيث سيكون هناك ثلاثة محركات سيرفو (Servo Motors)، فستحتاج أولاً إلى الإعلان عن فئة "Servo"، وسيكون كل من هذه المحركات الثلاثة كائناً مؤازراً، ويطلق عليه عادة تسمية عينة (Instance) من فئة "Servo".

نوع: محتوى تعليمي

222

نوع: METADATA

وزارة التعليم Ministry of Education 2025 - 1447

📄 النص الكامل للصفحة

بشكل عام، يجب أن تُكتب البرامج الإعداد دالة ( void setup( ) ) وتُكتب منطق البرنامج الرئيس داخل ( void loop( ) ) وأي إعلان عن أي ثوابت أو دوال يكون خارج هاتين الدالتين. مثال على برنامج أردوينو بلغة C++. void setup( ) { int a = 10; int b = 20; } void loop( ) { for (int i = 0; i < b; i++) { a += i; cout << a; } } --- SECTION: Classes, Objects, and Methods --- ترتكز البرمجة الكائنية (Object-Oriented Programming (OOP)) على إجراء جميع العمليات البرمجية على أساس "الكائنات". الكائن هو الوحدة الأساسية للبرمجة الكاشفية. قد يكون لهذه الكائنات خصائص، كما يمكنها أن تنفذ بعض الأحداث (Actions) الأساسية. على سبيل المثال، يمكن اعتبار محرك سيرفو (Servo Motor) بمثابة كائن له بعض الخصائص مثل طرف رقمي، وتدوير محركه بعدد معين من الدرجات وغيرها. تسمى هذه الإجراءات التي يمكن لكل كائن تنفيذها بالوظائف (Methods)، وهي في لغة C++ بالأساس الدوال التي أعلن عنها داخل جسم الفئة (Class) وليس الكائن (Object). لفهم الفرق بين الفئة والكائنات، يمكنك اعتبار الفئة كمفهوم، والكائنات على أنها تجسيد لهذا المفهوم. في محاكاة الدائرة، حيث سيكون هناك ثلاثة محركات سيرفو (Servo Motors)، فستحتاج أولاً إلى الإعلان عن فئة "Servo"، وسيكون كل من هذه المحركات الثلاثة كائناً مؤازراً، ويطلق عليه عادة تسمية عينة (Instance) من فئة "Servo". 222 وزارة التعليم Ministry of Education 2025 - 1447

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

في برمجة الأردوينو باستخدام لغة C++، أين يجب كتابة منطق البرنامج الرئيسي؟

  • أ) داخل الدالة void setup()
  • ب) داخل الدالة void loop()
  • ج) خارج أي دالة، في بداية الملف
  • د) داخل دالة رئيسية تسمى main()

الإجابة الصحيحة: b

الإجابة: داخل الدالة void loop()

الشرح: 1. في برمجة الأردوينو، يتم تقسيم البرنامج إلى قسمين رئيسيين. 2. الدالة `void setup()` تُستخدم للإعدادات الأولية التي تُنفذ مرة واحدة. 3. الدالة `void loop()` تُستخدم لكتابة المنطق الرئيسي للبرنامج الذي يتكرر تنفيذه باستمرار. 4. لذلك، يجب كتابة منطق البرنامج الرئيسي داخل `void loop()`.

تلميح: هذه الدالة مسؤولة عن تنفيذ التعليمات بشكل متكرر.

التصنيف: مفهوم جوهري | المستوى: سهل

ما هو التعريف الأساسي للكائن (Object) في البرمجة الكائنية (OOP)؟

  • أ) هو دالة داخلية تُنفذ إجراءات محددة.
  • ب) هو متغير ثابت (Constant) يستخدم في جميع أجزاء البرنامج.
  • ج) هو الوحدة الأساسية للبرمجة الكائنية، وهو تجسيد لمفهوم الفئة (Class).
  • د) هو نوع بيانات بدائي مثل int أو float.

الإجابة الصحيحة: c

الإجابة: هو الوحدة الأساسية للبرمجة الكائنية، وهو تجسيد لمفهوم الفئة (Class).

الشرح: 1. البرمجة الكائنية (OOP) ترتكز على مفهوم الكائنات. 2. الكائن هو الوحدة الأساسية التي تُجرى عليها العمليات. 3. الفئة (Class) تمثل المفهوم أو القالب العام. 4. الكائن هو التمثيل الفعلي أو التجسيد (Instance) لهذا المفهوم. 5. مثال: فئة 'Servo' هي المفهوم، والمحرك الفعلي هو كائن من هذه الفئة.

تلميح: يتم إنشاؤه بناءً على قالب أو مخطط.

التصنيف: تعريف | المستوى: متوسط

في البرمجة الكائنية بلغة C++، ما الفرق الأساسي بين الفئة (Class) والكائن (Object)؟

  • أ) الفئة هي كائن واحد فقط، بينما الكائن يمكن أن يكون عدة فئات.
  • ب) الفئة تحتوي على البيانات فقط، بينما الكائن يحتوي على الوظائف فقط.
  • ج) الفئة هي المفهوم أو القالب العام، بينما الكائن هو التمثيل الفعلي أو التجسيد (Instance) لهذا المفهوم.
  • د) لا يوجد فرق، فهما مصطلحان لنفس المفهوم.

الإجابة الصحيحة: c

الإجابة: الفئة هي المفهوم أو القالب العام، بينما الكائن هو التمثيل الفعلي أو التجسيد (Instance) لهذا المفهوم.

الشرح: 1. الفئة (Class) هي تعريف أو مخطط يحدد الخصائص والوظائف المشتركة. 2. الكائن (Object) هو كيان ملموس يتم إنشاؤه بناءً على ذلك المخطط. 3. يمكن إنشاء عدة كائنات (Instances) من فئة واحدة. 4. مثال: فئة 'Servo' هي المفهوم العام للمحرك، وكل محرك سيرفو فعلي في الدائرة هو كائن من هذه الفئة.

تلميح: فكر في العلاقة بين المخطط والمنتج النهائي.

التصنيف: فرق بين مفهومين | المستوى: متوسط

في سياق البرمجة الكائنية، ما هي الوظائف (Methods)؟

  • أ) هي المتغيرات التي تخزن خصائص الكائن.
  • ب) هي الإجراءات أو الدوال التي يمكن لكل كائن تنفيذها، ويتم الإعلان عنها داخل جسم الفئة (Class).
  • ج) هي مكتبات برمجية خارجية يتم استيرادها.
  • د) هي تعليقات توضيحية داخل الكود لا تؤثر على التنفيذ.

الإجابة الصحيحة: b

الإجابة: هي الإجراءات أو الدوال التي يمكن لكل كائن تنفيذها، ويتم الإعلان عنها داخل جسم الفئة (Class).

الشرح: 1. الكائنات في البرمجة الكائنية لها خصائص (Properties) ووظائف (Methods). 2. الوظائف (Methods) هي الإجراءات التي يمكن للكائن القيام بها. 3. في لغة C++، يتم تعريف هذه الوظائف كدوال داخل تعريف الفئة (Class). 4. مثال: لمحرك السيرفو، قد تكون هناك وظيفة 'تدوير' تأخذ عدد الدرجات كمعامل.

تلميح: هي السلوكيات المرتبطة بالكائن.

التصنيف: تعريف | المستوى: متوسط