📝 ملخص الصفحة
📚 أساسيات لغة C++ للبرمجة
المفاهيم الأساسية
لغة C++: لغة برمجة تجميعية عالية المستوى، تطوير للغة C، تتميز بكفاءتها وسرعة أدائها وقدرات قوية في معالجة الذاكرة والبرمجة الكائنية.
أنواع البيانات الأساسية: يجب تعريف نوع المتغير قبل استخدامه في C++، لأن النوع يحدد نوع البيانات ومقدار الذاكرة المطلوب.
المصفوفة (Array): هيكل بيانات شائع، وهو متغير يمكنه الاحتفاظ بقيم بيانات متعددة من نفس النوع.
خريطة المفاهيم
```markmap
إنترنت الأشياء: التطبيقات والهيكليات والأمن
ما تم تعلمه
تطبيقات إنترنت الأشياء
#### الرعاية الصحية الذكية
- استخدام شبكات مستشعرات الجسم
#### الزراعة الذكية
- تحديد مستشعرات الطائرات دون طيار (UAV)
#### الحماية الذكية
- التعامل مع عمليات المراقبة الداخلية والخارجية
- استخدام الأقفال الذكية للتحكم في الوصول
- استخدام أجراس الباب الذكية للتعرف على الزائرين
- دمج كاميرات عالية الدقة تنشط بالحركة
- توفير تحذيرات من التحركات غير الاعتيادية
- إمكانية تنشيط إنذار أو الاتصال بالشرطة
##### الميزات
- المراقبة والإدارة عن بعد عبر تطبيقات الهاتف
- استخدام الذكاء الاصطناعي للكشف المبكر عن الأخطار
- جعل المساكن أكثر أمانًا
- إمكانية الدخول دون مفتاح
- توفير تحديثات فورية عن الأمور غير الاعتيادية
##### المخاطر
- انعدام أو ضعف التشريعات الخاصة بأجهزة إنترنت الأشياء
- أخطار الخصوصية وأمن البيانات
- عدم وجود معايير أمان عالمية
- جمع البيانات الشخصية والحاجة لحمايتها
##### الأجهزة الشائعة
- الأقفال الذكية
- الكاميرات الذكية
- أجهزة كشف الحرائق والدخان
- أجهزة كشف الحركة
الهيكليات والمعايير
#### هيكلية oneM2M
#### الهيكلية العالمية (IoT World Forum)
تقنيات الاتصال
#### RFID مقابل NFC
#### بروتوكولات WPANs
- تحديد البروتوكولات المستخدمة (مثل: بلوتوث، زيجبي)
الأمان والخصوصية
#### أسس الأمان في إنترنت الأشياء
#### تقنيات خصوصية إنترنت الأشياء
- التعرف على التقنيات المستخدمة
برمجة إنترنت الأشياء باستخدام C++
أهداف الوحدة
#### فهم أنظمة الحماية الذكية
- تحديد ميزات ومخاطر نظام الأمان في إنترنت الأشياء
- التعرف على أجهزة إنترنت الأشياء الشائعة في الحماية الذكية
#### تعلم أساسيات لغة C++
- التعرف على أنواع البيانات الشائعة
- استخدام المعاملات (Operators)
- استخدام الجمل الشرطية
- استخدام التكرارات (Loops)
- إنشاء الدوال (Functions)
#### التطبيق العملي
- تحويل اللبنات البرمجية في تينكركاد إلى أوامر C++
- برمجة نظام للحماية الذكية باستخدام لوحة الأردوينو
أساسيات لغة C++
#### أهمية C++
- لغة قوية لأمن المعلومات
- لغة تجميعية عالية المستوى
- تطوير للغة C
- كفاءة وسرعة أداء عالية
#### أنواع البيانات الأساسية
##### القاعدة
- يجب تعريف نوع المتغير قبل استخدامه
##### الأنواع الشائعة
- الأعداد الصحيحة (int): -4, 5
- الأعداد العشرية (float/double): -7.5, 3.14
- النص (char): 'c'
- البيانات المنطقية (bool): true/false
##### مغيرات الأنواع
- يمكن تغيير النوع باستخدام مغيرات مثل (long int)
- المجموعات الممكنة موضحة في جدول
- يمكن للمبرمج تعريف أنواع خاصة
#### قواعد تسمية المتغيرات
- يمكن أن يحتوي على: حروف (A-Z, a-z)، أرقام (0-9)، شرطة سفلية (_)
- لا يمكن أن يبدأ برقم
- لا يمكن أن يكون كلمة أساسية في اللغة (مثل int)
- يمكن تعريفه مع قيمة أو بدونها
#### المصفوفات (Arrays)
##### التعريف
- هيكل بيانات شائع
- متغير يحتفظ بقيم متعددة من نفس النوع
##### صيغة الإعلان
datatype\ arrayName[arraySize];
المصطلحات الرئيسة
تقنيات وبروتوكولات
- البلوتوث (Bluetooth)
- زيجبي (Zigbee)
- التشعب (Thread)
- LoRaWAN
- IPv6
المفاهيم الأساسية
- إنترنت أشياء الرعاية الصحية (IoHT)
- النظام الإلكتروني الملموس (CPS)
- آلة إلى آلة (M2M)
- الحوسبة الطرفية (Edge Computing)
المكونات والأجهزة
- مركبة جوية دون طيار (UAV)
- مخطط كهربية القلب (ECG)
- مخطط كهربية الدماغ (EEG)
- لوحة الأردوينو (Arduino)
الشبكات
- شبكة المنطقة الشخصية (PAN)
- شبكة المنطقة الشخصية اللاسلكية (WPAN)
الأدوات
- بيئة محاكاة دوائر أوتوديسك تينكركاد (Autodesk Tinkercad Circuits)
```
نقاط مهمة
- تُستخدم C++ لبرمجة واجهات البرامج لتحقيق أمن المعلومات بسبب قوتها.
- تحديد نوع المتغير إلزامي في C++ لتخصيص الذاكرة المناسبة.
- يمكن دمج أنواع البيانات الأساسية مع مغيرات (مثل signed, unsigned, short, long) لإنشاء أنواع جديدة.
- توجد قواعد صارمة لتسمية المتغيرات يجب اتباعها.
- المصفوفة تعلن باستخدام الصيغة: `نوع_البيانات اسم_المصفوفة[حجم_المصفوفة];`
📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
ليس من السهل تحقيق أمن المعلومات، ولذلك أنت بحاجة إلى استخدام لغات برمجة قوية مثل لغة C++ لبرمجة واجهات البرامج. تُعدّ C++ لغة برمجة تجميعية عالية المستوى تتضمن العديد من ميزات البرمجة الكائنية، إضافة إلى العديد من الإمكانات القوية في معالجة الذاكرة، كما تتميز هذه اللغة بكفاءتها وسرعة أدائها. صُممت لغة C++ كتطوير للغة برمجة C.
أنواع البيانات الأساسية Basic Data Types
نوع: محتوى تعليمي
أنواع البيانات الأساسية Basic Data Types
نوع: محتوى تعليمي
على عكس الكثير من لغات البرمجة الأخرى، يجب تعريف نوع المتغير في لغة C++ قبل استخدامه؛ لأن نوع المتغير يشير إلى نوع البيانات التي يحملها. يحتاج البرنامج في C++ إلى هذه المعلومات لمعرفة مقدار الذاكرة المطلوب تخصيصها لهذه البيانات.
جدول 6.2: أكثر أنواع البيانات شيوعًا في C++
نوع: محتوى تعليمي
جدول 6.2: أكثر أنواع البيانات شيوعًا في C++
مغيرات أنواع البيانات
نوع: محتوى تعليمي
يمكنك تغيير نوع البيانات باستخدام مغير النوع، فعلى سبيل المثال (long int) يعني عدد صحيح طويل. تظهر التركيبات الممكنة لهذه المجموعات في الجدول أدناه: يمكن للمبرمج تعريف أنواع خاصة به من البيانات بناءً على احتياجاته.
نوع: محتوى تعليمي
هناك بعض قواعد التسمية التي تحتاج إلى اتباعها عند إنشائك لمتغير. شروط تسمية المتغيرات الصحيحة: • يمكن لاسم المتغير أن يحتوي فقط على الحروف الأبجدية (Z-A, z-a) والأرقام (9-0) والشرطة السفلية (_). • لا يمكن أن يبدأ اسم المتغير برقم. • لا يمكن أن يكون اسم المتغير هو أحد كلمات لغة البرمجة، ككلمة int مثلاً، والتي هي كلمة أساسية تُستخدم للدلالة على الأعداد الصحيحة. • يمكن تعريف المتغيرات مع تحديد قيمتها، أو دون ذلك.
المصفوفات Arrays
نوع: محتوى تعليمي
المصفوفات Arrays
نوع: محتوى تعليمي
يُعدّ هيكل المصفوفة (Array) من أكثر هياكل البيانات شيوعًا في C++. المصفوفة هي ببساطة متغير يمكنه الاحتفاظ بقيم بيانات متعددة من نفس النوع.
صيغة الإعلان عن المصفوفة:
نوع: محتوى تعليمي
صيغة الإعلان عن المصفوفة: datatype arrayName[arraySize];
🔍 عناصر مرئية
جدول 6.2: أكثر أنواع البيانات شيوعًا في C++
A table listing common data types in C++ with their corresponding keywords and examples.
جدول مغيرات أنواع البيانات
A small table showing which data types (double, int, char) can be combined with modifiers (signed, unsigned, short, long). Checkmarks indicate compatibility.
صيغة الإعلان عن المصفوفة
A diagram illustrating the syntax for declaring an array in C++. It shows 'datatype', 'arrayName', and 'arraySize' as components of the declaration.
📄 النص الكامل للصفحة
ليس من السهل تحقيق أمن المعلومات، ولذلك أنت بحاجة إلى استخدام لغات برمجة قوية مثل لغة C++ لبرمجة واجهات البرامج. تُعدّ C++ لغة برمجة تجميعية عالية المستوى تتضمن العديد من ميزات البرمجة الكائنية، إضافة إلى العديد من الإمكانات القوية في معالجة الذاكرة، كما تتميز هذه اللغة بكفاءتها وسرعة أدائها. صُممت لغة C++ كتطوير للغة برمجة C.
--- SECTION: أنواع البيانات الأساسية Basic Data Types ---
أنواع البيانات الأساسية Basic Data Types
على عكس الكثير من لغات البرمجة الأخرى، يجب تعريف نوع المتغير في لغة C++ قبل استخدامه؛ لأن نوع المتغير يشير إلى نوع البيانات التي يحملها. يحتاج البرنامج في C++ إلى هذه المعلومات لمعرفة مقدار الذاكرة المطلوب تخصيصها لهذه البيانات.
--- SECTION: جدول 6.2: أكثر أنواع البيانات شيوعًا في C++ ---
جدول 6.2: أكثر أنواع البيانات شيوعًا في C++
--- SECTION: مغيرات أنواع البيانات ---
يمكنك تغيير نوع البيانات باستخدام مغير النوع، فعلى سبيل المثال (long int) يعني عدد صحيح طويل. تظهر التركيبات الممكنة لهذه المجموعات في الجدول أدناه: يمكن للمبرمج تعريف أنواع خاصة به من البيانات بناءً على احتياجاته.
هناك بعض قواعد التسمية التي تحتاج إلى اتباعها عند إنشائك لمتغير. شروط تسمية المتغيرات الصحيحة: • يمكن لاسم المتغير أن يحتوي فقط على الحروف الأبجدية (Z-A, z-a) والأرقام (9-0) والشرطة السفلية (_). • لا يمكن أن يبدأ اسم المتغير برقم. • لا يمكن أن يكون اسم المتغير هو أحد كلمات لغة البرمجة، ككلمة int مثلاً، والتي هي كلمة أساسية تُستخدم للدلالة على الأعداد الصحيحة. • يمكن تعريف المتغيرات مع تحديد قيمتها، أو دون ذلك.
--- SECTION: المصفوفات Arrays ---
المصفوفات Arrays
يُعدّ هيكل المصفوفة (Array) من أكثر هياكل البيانات شيوعًا في C++. المصفوفة هي ببساطة متغير يمكنه الاحتفاظ بقيم بيانات متعددة من نفس النوع.
--- SECTION: صيغة الإعلان عن المصفوفة: ---
صيغة الإعلان عن المصفوفة: datatype arrayName[arraySize];
--- VISUAL CONTEXT ---
**TABLE**: جدول 6.2: أكثر أنواع البيانات شيوعًا في C++
Description: A table listing common data types in C++ with their corresponding keywords and examples.
Table Structure:
Headers: النوع | الرمز | مثال
Rows:
Row 1: الأعداد الصحيحة | (int) | -4, 5
Row 2: الأعداد العشرية أو الحقيقية | (float or double) | -7.5, 3.14
Row 3: النص | (char) | 'c'
Row 4: البيانات المنطقية | (bool) | bool flag = true;
Context: Illustrates common data types in C++ with their keywords and examples.
**TABLE**: جدول مغيرات أنواع البيانات
Description: A small table showing which data types (double, int, char) can be combined with modifiers (signed, unsigned, short, long). Checkmarks indicate compatibility.
Table Structure:
Headers: double | int | char |
Rows:
Row 1: ✓ | ✓ | | signed
Row 2: ✓ | ✓ | | unsigned
Row 3: | ✓ | | short
Row 4: | ✓ | | long
Context: Shows compatibility of data types with various modifiers in C++.
**DIAGRAM**: صيغة الإعلان عن المصفوفة
Description: A diagram illustrating the syntax for declaring an array in C++. It shows 'datatype', 'arrayName', and 'arraySize' as components of the declaration.
Context: Provides the structural syntax for array declaration in C++ programming.
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 5 بطاقة لهذه الصفحة
ما هو الشرط الأساسي الذي يجب مراعاته عند تسمية متغير في لغة C++؟
- أ) يجب أن يحتوي على حرف كبير واحد على الأقل.
- ب) يجب أن ينتهي بحرف أبجدي.
- ج) لا يمكن أن يبدأ اسم المتغير برقم.
- د) يجب أن يحتوي على شرطة سفلية واحدة على الأقل.
الإجابة الصحيحة: c
الإجابة: لا يمكن أن يبدأ اسم المتغير برقم.
الشرح: 1. شروط تسمية المتغيرات في C++ تشمل: يمكن أن يحتوي على حروف وأرقام وشرطة سفلية. 2. لا يمكن أن يكون اسم المتغير من الكلمات الأساسية للغة (مثل int). 3. الشرط الأساسي الذي يميز القاعدة هو: لا يمكن أن يبدأ اسم المتغير برقم.
تلميح: فكر في الأحرف المسموح بها في بداية الاسم.
التصنيف: مفهوم جوهري | المستوى: سهل
ما هو نوع البيانات المناسب في C++ لتخزين قيمة مثل 3.14؟
- أ) int
- ب) char
- ج) float أو double
- د) bool
الإجابة الصحيحة: c
الإجابة: float أو double
الشرح: 1. أنواع البيانات الأساسية في C++ تشمل: int للأعداد الصحيحة، وfloat/double للأعداد العشرية، وchar للنصوص، وbool للبيانات المنطقية. 2. القيمة 3.14 هي عدد عشري (حقيقي). 3. وفقًا للجدول 6.2، النوع المناسب للأعداد العشرية هو float أو double.
تلميح: فكر في نوع البيانات المستخدم للأرقام التي تحتوي على فاصلة عشرية.
التصنيف: تعريف | المستوى: سهل
ما هي الصيغة الصحيحة للإعلان عن مصفوفة في لغة C++؟
- أ) arrayName = datatype[arraySize];
- ب) datatype arrayName{arraySize};
- ج) datatype arrayName[arraySize];
- د) arrayName[arraySize] = datatype;
الإجابة الصحيحة: c
الإجابة: datatype arrayName[arraySize];
الشرح: 1. المصفوفة في C++ هي متغير يمكنه الاحتفاظ بقيم متعددة من نفس النوع. 2. صيغة الإعلان عنها تتكون من ثلاثة أجزاء أساسية: نوع البيانات (datatype)، اسم المصفوفة (arrayName)، وحجم المصفوفة بين أقواس معقوفة (arraySize). 3. الصيغة الكاملة هي: datatype arrayName[arraySize];
تلميح: تذكر أن الإعلان يتضمن نوع البيانات، اسم المصفوفة، وحجمها.
التصنيف: صيغة/خطوات | المستوى: متوسط
ما هو الغرض من تعريف نوع المتغير في لغة C++ قبل استخدامه؟
- أ) لتحديد لون النص عند طباعة المتغير.
- ب) لمعرفة مقدار الذاكرة المطلوب تخصيصها للبيانات.
- ج) لتحديد سرعة معالجة المتغير فقط.
- د) لضمان أن اسم المتغير صحيح نحوياً.
الإجابة الصحيحة: b
الإجابة: لمعرفة مقدار الذاكرة المطلوب تخصيصها للبيانات.
الشرح: 1. في C++، يجب تعريف نوع المتغير قبل استخدامه. 2. هذا لأن نوع المتغير يحدد نوع البيانات التي سيحملها. 3. يحتاج البرنامج إلى هذه المعلومة تحديدًا لمعرفة مقدار الذاكرة التي يجب تخصيصها لتخزين تلك البيانات.
تلميح: فكر في العلاقة بين نوع البيانات والذاكرة.
التصنيف: مفهوم جوهري | المستوى: متوسط
أي من الأسماء التالية يُعد اسماً صحيحاً لمتغير في لغة C++ وفقاً لقواعد التسمية البرمجية؟
- أ) 3rd_sensor
- ب) device-status
- ج) temp_value
- د) float
الإجابة الصحيحة: c
الإجابة: temp_value
الشرح: بناءً على قواعد لغة C++:
1. الخيار (3rd_sensor) خاطئ لأنه بدأ برقم، والقاعدة تمنع ذلك.
2. الخيار (device-status) خاطئ لاحتوائه على الوصلة (-)، والرمز الوحيد المسموح به هو الشرطة السفلية (_).
3. الخيار (float) خاطئ لأنه كلمة محجوزة تُستخدم لتعريف أنواع البيانات.
4. الخيار (temp_value) صحيح لأنه يتكون من حروف وشرطة سفلية فقط ولم يبدأ برقم.
تلميح: تذكر القواعد الثلاث: لا يبدأ برقم، لا يحتوي على رموز خاصة (عدا الشرطة السفلية)، ولا يكون كلمة محجوزة.
التصنيف: مفهوم جوهري | المستوى: متوسط