int main () - كتاب إنترنت الأشياء - الصف 11 - الفصل 1 - المملكة العربية السعودية

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

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

الدرس: int main ()

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

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

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

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

📝 ملخص الصفحة

📚 الدوال في C++ (تطبيق على إنترنت الأشياء)

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

استدعاء الدالة: تمرير عددين صحيحين لها كمعاملات من البرنامج الرئيسي.

الدالة الرئيسية (main): دالة خاصة في C++، نوع إرجاعها `int`، ولا تقبل معاملات إدخال `()`، ويكون `return` فيها اختيارياً.

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

نوع الإرجاع void: تستخدم عندما لا ترجع الدالة أي قيمة.

دالتا Setup() و Loop(): دوال خاصة ببرمجة دوائر إنترنت الأشياء (مثل الأردوينو)، تُستدعى تلقائياً.

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

```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()`.
  • الوظيفة: هي الوظيفة الرئيسية والتشغيلية المستمرة للدائرة.
```

نقاط مهمة

  • `main()` هي الدالة الرئيسية في أي برنامج C++، ويكون `return` فيها اختيارياً.
  • عند استدعاء أي دالة، يجب أن تتطابق الوسائط الممررة مع معاملاتها في النوع والعدد والترتيب.
  • الدالة التي لا ترجع قيمة يجب أن يكون نوع إرجاعها `void`.
  • في برمجة دوائر إنترنت الأشياء (كالأردوينو)، توجد دالتان أساسيتان تُستدعيان تلقائياً: `setup()` للإعداد مرة واحدة، و`loop()` للتكرار المستمر.

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

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

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

لاستخدام هذه الدالة في برنامجك الرئيسي، يمكنك استدعاؤها من خلال اسمها وتمرير عددين صحيحين لها كمعاملات:

int main ()

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

int main () { int a=2; int b=5; int c; //calling the function and passing a, b as arguments c = adding(a,b); //cout will print the value of c cout << c; return 0; }

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

فقط في الدالة ( ) main يكون تعبير الإرجاع (return) اختيارياً، ويمكن الاستغناء عنه.

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

كما تلاحظ فإن الدالة main هي أيضاً دالة تقوم بإرجاع القيمة 0، وهكذا فإن نوع البيانات الذي تُرجعه الدالة هو int (عدد صحيح)، ولكنه لا يقبل أي مُعاملات إدخال في هذه الحالة ويشار إليها بالأقواس الفارغة ( ). دالة main هي نوع خاص من الدوال في C++، حيث يوجد الجزء الرئيسي من البرنامج.

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

يجب أن يتطابق النوع والعدد والترتيب للوسطيات التي تمرر إلى دالة ما مع نوع المعاملات الموجود في إعلان الدالة.

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

من الممكن ألا ترجع الدالة أي قيمة، وفي مثل هذه الحالة يكون نوع الإرجاع "void" (فارغًا).

void displyNumber ()

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

void displyNumber () { // code }

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

توجد دالتان يجب استدعاؤهما لتنفيذ برنامج الدائرة. تُستدعى هذه الدوال تلقائياً عند بدء تنفيذ البرنامج، وذلك على عكس باقي الدوال التي يجب استدعاؤها يدوياً من خلال تعليمات البرمجة.

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

دالتي Setup( ) و Loop( )

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

Setup( ) and Loop( ) Functions

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

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

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

بعد تنفيذ دالة ( ) setup، تستدعى الدالة ( ) void loop بشكل متكرر أثناء عمل الدائرة وهي الوظيفة الرئيسية للدائرة.

نوع: METADATA

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

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

لاستخدام هذه الدالة في برنامجك الرئيسي، يمكنك استدعاؤها من خلال اسمها وتمرير عددين صحيحين لها كمعاملات: --- SECTION: int main () --- int main () { int a=2; int b=5; int c; //calling the function and passing a, b as arguments c = adding(a,b); //cout will print the value of c cout << c; return 0; } فقط في الدالة ( ) main يكون تعبير الإرجاع (return) اختيارياً، ويمكن الاستغناء عنه. كما تلاحظ فإن الدالة main هي أيضاً دالة تقوم بإرجاع القيمة 0، وهكذا فإن نوع البيانات الذي تُرجعه الدالة هو int (عدد صحيح)، ولكنه لا يقبل أي مُعاملات إدخال في هذه الحالة ويشار إليها بالأقواس الفارغة ( ). دالة main هي نوع خاص من الدوال في C++، حيث يوجد الجزء الرئيسي من البرنامج. يجب أن يتطابق النوع والعدد والترتيب للوسطيات التي تمرر إلى دالة ما مع نوع المعاملات الموجود في إعلان الدالة. من الممكن ألا ترجع الدالة أي قيمة، وفي مثل هذه الحالة يكون نوع الإرجاع "void" (فارغًا). --- SECTION: void displyNumber () --- void displyNumber () { // code } توجد دالتان يجب استدعاؤهما لتنفيذ برنامج الدائرة. تُستدعى هذه الدوال تلقائياً عند بدء تنفيذ البرنامج، وذلك على عكس باقي الدوال التي يجب استدعاؤها يدوياً من خلال تعليمات البرمجة. دالتي Setup( ) و Loop( ) Setup( ) and Loop( ) Functions أول دالة تنفذ هي ( ) setup، وتتخذ هذه الدالة مرة واحدة فقط في البداية، وهي مسئولة عن تكوين أجزاء الدائرة المختلفة مثل ضبط ووضع أطراف الأردوينو الرقمية، وإنشاء اتصال مع الطرف التسلسلي وغيرها من الأمور. بعد تنفيذ دالة ( ) setup، تستدعى الدالة ( ) void loop بشكل متكرر أثناء عمل الدائرة وهي الوظيفة الرئيسية للدائرة. وزارة التعليم Ministry of Education 2025 - 1447

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

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

ما الخاصية التي تميز دالة `main()` في لغة C++ عن الدوال الأخرى؟

  • أ) هي الدالة الوحيدة التي يمكن أن تُرجع قيمة من نوع `int`.
  • ب) هي الدالة الرئيسية التي يبدأ منها تنفيذ البرنامج ويتم استدعاؤها تلقائياً.
  • ج) هي الدالة الوحيدة التي يمكن أن تكون معاملاتها فارغة `()`.
  • د) هي الدالة التي يجب استدعاؤها يدوياً في بداية كل برنامج.

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

الإجابة: هي الدالة الرئيسية التي يبدأ منها تنفيذ البرنامج ويتم استدعاؤها تلقائياً.

الشرح: 1. في لغة C++، كل برنامج يجب أن يحتوي على دالة رئيسية تسمى `main()`. 2. هذه الدالة هي نقطة البداية لتنفيذ البرنامج. 3. يتم استدعاؤها تلقائياً من قبل نظام التشغيل أو بيئة التشغيل، على عكس الدوال الأخرى التي يجب استدعاؤها يدوياً داخل الكود.

تلميح: فكر في نقطة بداية تنفيذ أي برنامج.

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

ما هي الوظيفة الأساسية لدالة `loop()` في برمجة الأردوينو؟

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

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

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

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

تلميح: فكر في الجزء من البرنامج الذي يعمل باستمرار طالما الدائرة تعمل.

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

ما القاعدة الأساسية عند استدعاء دالة وتمرير وسيطات (arguments) لها في C++؟

  • أ) يجب أن تكون أسماء الوسطيات مطابقة لأسماء المعاملات في تعريف الدالة.
  • ب) يجب أن يتطابق نوع وعدد وترتيب الوسطيات الممررة مع نوع المعاملات المعلن عنها في الدالة.
  • ج) يجب أن تكون قيمة الوسطيات أكبر من صفر.
  • د) يجب أن تكون الوسطيات من النوع `void` إذا كانت الدالة لا تُرجع قيمة.

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

الإجابة: يجب أن يتطابق نوع وعدد وترتيب الوسطيات الممررة مع نوع المعاملات المعلن عنها في الدالة.

الشرح: 1. عند كتابة دالة في C++، يتم تعريف معاملات (parameters) لها بنوع بيانات محدد. 2. عند استدعاء هذه الدالة من مكان آخر في البرنامج، يجب تمرير وسيطات (arguments) لها. 3. يجب أن تكون هذه الوسيطات مطابقة تماماً من حيث: نوع البيانات (مثل int، float)، والعدد (لا أكثر ولا أقل)، والترتيب الذي تم تعريف المعاملات به.

تلميح: فكر في مطابقة المواصفات بين ما ترسله للدالة وما تتوقعه الدالة أن تستقبل.

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

ما الوظيفة الرئيسة لدالة ( )setup في برمجة المتحكمات الدقيقة (مثل الأردوينو) وفقاً لما ورد في النص؟

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

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

الإجابة: تنفيذ تعليمات التهيئة والإعداد لمرة واحدة فقط عند بدء التشغيل.

الشرح: ١. دالة ( )setup هي أول دالة يتم تنفيذها عند بدء تشغيل البرنامج. ٢. تُنفذ هذه الدالة لمرة واحدة فقط في البداية. ٣. مسؤوليتها الأساسية هي تكوين أجزاء الدائرة (مثل ضبط الأطراف الرقمية). ٤. تختلف عن دالة ( )loop التي تعمل بشكل متكرر. النتيجة: وظيفتها هي التهيئة لمرة واحدة فقط.

تلميح: فكر في الترتيب الزمني لتنفيذ الدوال وما إذا كانت تتكرر أم لا.

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