الدوال في C++ - كتاب إنترنت الأشياء - الصف 11 - الفصل 1 - المملكة العربية السعودية

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

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

الدرس: الدوال في C++

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

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

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

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

📝 ملخص الصفحة

📚 الدوال في C++

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

الدالة (Function): تجميع لتعليمات برمجية تؤدي مهمة محددة، يمكن استدعاؤها عدة مرات في البرنامج. يمكن أن تقبل متغيرات كمدخلات، وتنفذ تعليمات، وترجع قيمة.

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

```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

}

```

نقاط مهمة

  • الغرض من الدوال هو تجنب تكرار كتابة نفس التعليمات البرمجية.
  • يمكن للدوال أن تقبل وسيطات (مدخلات) وتنفذ تعليمات داخل الأقواس `{ }`.
  • تنتهي الدالة بعبارة `return` لترجع قيمة.
  • بناء الدالة يتكون من: نوع الإرجاع، اسم الدالة، قائمة الوسائط، جسم الدالة.

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

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

الدوال في C++

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

Functions in C++

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

عند القيام بكتابة البرامج، ستلاحظ أن الكثير من المهام البرمجية قد تحتاج إلى تنفيذ عمليات معينة عدة مرات خلال تشغيل البرنامج. يمكنك بالطبع كتابة نفس سطور التعليمات البرمجية كل مرة تحتاج فيها إلى تنفيذ هذه المهام. ولكن الحل الأفضل هو تجميع هذه التعليمات البرمجية وإنشاء دالة لتؤدي هذه المهام. توجد في C++ العديد من الدوال القياسية المصممة لتجميع هذه التعليمات البرمجية. يمكن للمبرمجين أيضاً إنشاء دوالهم الخاصة بناءً على احتياجاتهم حيث يمكنهم تسميتها بأنفسهم. يمكن لكل دالة قبول بعض المتغيرات كمدخلات، وتنفيذ بعض التعليمات البرمجية ضمن الأقواس { }، وإنهاء الدالة توجد عبارة إرجاع (return) ترجع قيمة.

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

لإنشاء دالة، تحتاج أولاً إلى الإعلان عنها:

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

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

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

parameter1, parameter2 ... هي قائمة

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

parameter1, parameter2) هي وسيطات الإدخال لهذه الدالة (إن وجدت).

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

يشير إلى نوع البيانات التي ترجعها الدالة حين يتم استدعاؤها.

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

return type

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

يشير إلى اسم الدالة

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

functionName

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

مثال على دالة بسيطة تستقبل عددين صحيحين كوسيطين لتعد مج مجموعهما:

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

// function declaration int adding (int a, int b) { s = a+b; return s }

نوع: NON_EDUCATIONAL

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

نوع: METADATA

220

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

--- SECTION: الدوال في C++ --- Functions in C++ عند القيام بكتابة البرامج، ستلاحظ أن الكثير من المهام البرمجية قد تحتاج إلى تنفيذ عمليات معينة عدة مرات خلال تشغيل البرنامج. يمكنك بالطبع كتابة نفس سطور التعليمات البرمجية كل مرة تحتاج فيها إلى تنفيذ هذه المهام. ولكن الحل الأفضل هو تجميع هذه التعليمات البرمجية وإنشاء دالة لتؤدي هذه المهام. توجد في C++ العديد من الدوال القياسية المصممة لتجميع هذه التعليمات البرمجية. يمكن للمبرمجين أيضاً إنشاء دوالهم الخاصة بناءً على احتياجاتهم حيث يمكنهم تسميتها بأنفسهم. يمكن لكل دالة قبول بعض المتغيرات كمدخلات، وتنفيذ بعض التعليمات البرمجية ضمن الأقواس { }، وإنهاء الدالة توجد عبارة إرجاع (return) ترجع قيمة. لإنشاء دالة، تحتاج أولاً إلى الإعلان عنها: return type functionName ( parameter1, parameter2, ... ) { // function body } parameter1, parameter2 ... هي قائمة parameter1, parameter2) هي وسيطات الإدخال لهذه الدالة (إن وجدت). يشير إلى نوع البيانات التي ترجعها الدالة حين يتم استدعاؤها. return type يشير إلى اسم الدالة functionName مثال على دالة بسيطة تستقبل عددين صحيحين كوسيطين لتعد مج مجموعهما: // function declaration int adding (int a, int b) { s = a+b; return s } وزارة التعليم Ministry of Education 2025 - 1447 220

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

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

ما هو الغرض الأساسي من استخدام الدوال (Functions) في لغة C++؟

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

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

الإجابة: تجميع التعليمات البرمجية التي تحتاج إلى تنفيذ عدة مرات لتجنب التكرار وتحسين تنظيم البرنامج.

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

تلميح: فكر في مشكلة كتابة نفس الكود أكثر من مرة.

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

ما هو دور عبارة الإرجاع (return) في دالة C++؟

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

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

الإجابة: إنهاء الدالة وإرجاع قيمة من نوع محدد إلى مكان استدعاء الدالة.

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

تلميح: ماذا يحدث بعد انتهاء الدالة من تنفيذ مهامها؟

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

في بناء جملة تعريف الدالة `int adding (int a, int b) { ... }`، ماذا يمثل الجزء `(int a, int b)`؟

  • أ) نوع القيمة التي ترجعها الدالة.
  • ب) اسم الدالة الذي سيتم استدعاؤه.
  • ج) قائمة وسيطات الإدخال (المعاملات) التي تقبلها الدالة.
  • د) الجسم الرئيسي للدالة حيث تكتب التعليمات.

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

الإجابة: قائمة وسيطات الإدخال (المعاملات) التي تقبلها الدالة.

الشرح: 1. بناء جملة الدالة يتكون من: `return type` ثم `functionName` ثم `(parameters)`. 2. الجزء الموجود داخل الأقواس `()` بعد اسم الدالة هو قائمة المعاملات (Parameters). 3. هذه المعاملات تمثل البيانات التي نمررها للدالة كمدخلات لتعمل عليها. 4. في المثال، الدالة تقبل معاملين من النوع `int` اسمهما `a` و `b`.

تلميح: انظر إلى الأجزاء بين الأقواس بعد اسم الدالة.

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

ما هي الخطوات الأساسية لإنشاء دالة في C++ كما وردت في النص؟

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

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

الإجابة: الإعلان عن الدالة بتحديد نوع الإرجاع واسمها ومعاملاتها، ثم كتابة جسم الدالة الذي يحتوي على التعليمات البرمجية وعبارة الإرجاع.

الشرح: 1. الخطوة الأولى: الإعلان عن الدالة باستخدام الصيغة: `returnType functionName(parameters)`. 2. تحديد `returnType` (نوع القيمة المرجعة). 3. اختيار `functionName` (اسم مميز للدالة). 4. تحديد `parameters` (وسائط الإدخال) داخل الأقواس. 5. كتابة جسم الدالة داخل الأقواس المعقوفة `{}`. 6. تضمين تعليمات برمجية وعبارة `return` لإرجاع قيمة.

تلميح: تذكر ترتيب أجزاء بناء جملة الدالة.

التصنيف: صيغة/خطوات | المستوى: صعب