بسم الله الرحمن الرحيم
خلال هذه الفتره ان شاء الله نخصص هذه القناة لتشمل تعلم لغة c++ و ان شاء الله تكون الاستفادة عامة للجميع فنحن سنمشي ف هذه القناة خطوة بخطوة من الصفر إلى ان نصل إلى اعلى المراتب بأذن الله تعالى 👍
🔼🔼 وبالتووووفيق للجميع
خلال هذه الفتره ان شاء الله نخصص هذه القناة لتشمل تعلم لغة c++ و ان شاء الله تكون الاستفادة عامة للجميع فنحن سنمشي ف هذه القناة خطوة بخطوة من الصفر إلى ان نصل إلى اعلى المراتب بأذن الله تعالى 👍
🔼🔼 وبالتووووفيق للجميع
الى أي مسنوى وصلت في لغة c++
Anonymous Poll
34%
وصلت لمعرفة المتغيرات
5%
وصلت لمعرفة الجمل الشرطيه
20%
وصلت لمعرفة جمل التكرار
7%
وصلت لمعرفة المصفوفات
12%
وصلت لمعرفة الدوال
22%
وصلت لمعرفة الموشرات
السلام عليكم ورحمة الله وبركاته ...
👈 نظرا لنتائج الاستفتاء الذي كان اغلب الزملاء ما زالوا في البداية سوف نشرح ان شاء الله من الصفر ... وسوف يتم انشاء مجموعه للمناقشه ... وان شاء الله تعم الفائده للجميع .
وقت ارسال الدروس كل يوم الساعه 8.30 مساءً
🖋 م . أحمد قطران
👈 نظرا لنتائج الاستفتاء الذي كان اغلب الزملاء ما زالوا في البداية سوف نشرح ان شاء الله من الصفر ... وسوف يتم انشاء مجموعه للمناقشه ... وان شاء الله تعم الفائده للجميع .
وقت ارسال الدروس كل يوم الساعه 8.30 مساءً
🖋 م . أحمد قطران
🖋 الدرس 1⃣
البرمجة باستخدام لغة C++:
......................
⬅ هيكل البرنامج:
تعتبر لغة C++ من اللغات القوية فى البرمجة لحل المشكلات وبناء المشروعات ويستخدمها المتخصصون فى بناء برامج قوية.
⬅مميزات لغة C ++:
1- لغة عامة:
أى أنها تصلح لعمل برامج قواعد البيانات والرسومات والحسابات ونظم التشغيل.
2- لغة تركيبية:
يتألف البرنامج المكتوب بلغة C++ من دالة رئيسية وبداخلها مجموعة من الدوال الإجرائية، وكل دالة من هذه الدوال عبارة عن مجموعة من الأوامر.
3- لغة متنقلة:
يمكن للبرنامج المكتوب بهذه اللغة أن يعمل مع أكثر من جهاز وأنظمة تشغيل مختلفة.
4- لغة قياسية:
معظم مترجمات اللغة تتوافق مع مترجمات اللغات القياسية الأخرى.
5- لغة سريعة:
لأن أدوات اللغة تتعامل مع الآلة مباشرة مما يختصر وقت التنفيذ.
6- تتعامل على مستوى البت Bit:
حيث تستطيع أن تقرأ وتكتب وتغير وتقوم بكل العمليات التي على مستوى البت Bit، وكما نعرف فأن البت هو اصغر وحدة لقياس المعلومات داخل الكمبيوتر وأصغر وحدة تخزين في الذاكرة، وهو جزء من ثمانية أجزاء من البايت Byte.
**********
وحتى يمكننا استخدام لغة C++ فى بناء برامج بسيطة ومعقدة لابد من التعرض لمجموعة عناصر هامة هى:
1- دراسة المفاهيم الأساسية للغة C++.
2- التعرف والتعامل مع واجهة التطبيق ومحرر ومترجم لغة C++.
3-كيفية بناء هيكل البرنامج.
4- ترجمة البرنامج وتصحيح أخطائه واستخدام التعليقات.
5- التعرف والتعامل مع أوامر اللغة (مفاهيم إدخال وإخراج البيانات)
6- تصنيف أوامر اللغة.
وكتابة البرنامج تبعاً للمشكلة أو المهمة المطلوب حلها أو تنفيذها .
🖋 م . أحمد قطران
يتبع .......👇
البرمجة باستخدام لغة C++:
......................
⬅ هيكل البرنامج:
تعتبر لغة C++ من اللغات القوية فى البرمجة لحل المشكلات وبناء المشروعات ويستخدمها المتخصصون فى بناء برامج قوية.
⬅مميزات لغة C ++:
1- لغة عامة:
أى أنها تصلح لعمل برامج قواعد البيانات والرسومات والحسابات ونظم التشغيل.
2- لغة تركيبية:
يتألف البرنامج المكتوب بلغة C++ من دالة رئيسية وبداخلها مجموعة من الدوال الإجرائية، وكل دالة من هذه الدوال عبارة عن مجموعة من الأوامر.
3- لغة متنقلة:
يمكن للبرنامج المكتوب بهذه اللغة أن يعمل مع أكثر من جهاز وأنظمة تشغيل مختلفة.
4- لغة قياسية:
معظم مترجمات اللغة تتوافق مع مترجمات اللغات القياسية الأخرى.
5- لغة سريعة:
لأن أدوات اللغة تتعامل مع الآلة مباشرة مما يختصر وقت التنفيذ.
6- تتعامل على مستوى البت Bit:
حيث تستطيع أن تقرأ وتكتب وتغير وتقوم بكل العمليات التي على مستوى البت Bit، وكما نعرف فأن البت هو اصغر وحدة لقياس المعلومات داخل الكمبيوتر وأصغر وحدة تخزين في الذاكرة، وهو جزء من ثمانية أجزاء من البايت Byte.
**********
وحتى يمكننا استخدام لغة C++ فى بناء برامج بسيطة ومعقدة لابد من التعرض لمجموعة عناصر هامة هى:
1- دراسة المفاهيم الأساسية للغة C++.
2- التعرف والتعامل مع واجهة التطبيق ومحرر ومترجم لغة C++.
3-كيفية بناء هيكل البرنامج.
4- ترجمة البرنامج وتصحيح أخطائه واستخدام التعليقات.
5- التعرف والتعامل مع أوامر اللغة (مفاهيم إدخال وإخراج البيانات)
6- تصنيف أوامر اللغة.
وكتابة البرنامج تبعاً للمشكلة أو المهمة المطلوب حلها أو تنفيذها .
🖋 م . أحمد قطران
يتبع .......👇
🖋 الدرس 2⃣
⬅الشكل العام للبرنامج المكتوب بلغة C++:
الصيغة الرئيسية لبرنامج مكتوب بلغة C++ يجب أن يتبع الشروط التالية:-
#include<library.h>
main()
{
.............................;
..............................;
return ;
}
1- يبدأ البرنامج بالعبارة#include< > والفراغ الموجود داخل العلامتين < >لتحديد نوع المكتبة المستخدمة في البرنامج، مثل:-
#include<iostream.h> -- #include<vector.h> -- #include<conio.h>
2- يتكون البرنامج من دالة رئيسية main() ثم يبدأ البرنامج بقوس البداية { وينتهى بقوس النهاية }.
3- جميع الدوال والكائنات تكتب بالحروف الصغيرة مثل main، cin، cout، وغيرها ولا يجوز كتابة الحروف الكبيرة فالمثال التالي خطأ MAIN أو COUT وهكذا.
4- تنتهى كل عبارة بفاصلة منقوطة.
5- جسم البرنامج كله يكون محصورا بين القوسين { سطور البرنامج }.
⬅سنبدأ بكتابة برنامج يعرض نصاً على الشاشة:-
.......................
#include<iostream.h>
main ( )
{
cout <<''@Kings_of_programming '';
return 0;
}
.......... ...........
الخرج من البرنامج:
.....................
@Kings_of_programming
......................
⬅رموز لغة C++ :
الرموز المستخدمة فى لغة C++ هى:
أ- الحروف الإنجليزية الكبيرة A,B,C,…
ب-الحروف الإنجليزية الصغيرة a,b,c,…
ج- الأرقام العربية 1,2,3,…
د-الرموز الخاصة (+,-,/,//,<,>,$,#,%,(),||,!,[],!=,,;,”,…..)وتعد هذه الرموز بأنواعها المادة الخام التى تتكون منها مفردات لغة C++.
🖋 م . أحمد قطران
يتبع .....👇
⬅الشكل العام للبرنامج المكتوب بلغة C++:
الصيغة الرئيسية لبرنامج مكتوب بلغة C++ يجب أن يتبع الشروط التالية:-
#include<library.h>
main()
{
.............................;
..............................;
return ;
}
1- يبدأ البرنامج بالعبارة#include< > والفراغ الموجود داخل العلامتين < >لتحديد نوع المكتبة المستخدمة في البرنامج، مثل:-
#include<iostream.h> -- #include<vector.h> -- #include<conio.h>
2- يتكون البرنامج من دالة رئيسية main() ثم يبدأ البرنامج بقوس البداية { وينتهى بقوس النهاية }.
3- جميع الدوال والكائنات تكتب بالحروف الصغيرة مثل main، cin، cout، وغيرها ولا يجوز كتابة الحروف الكبيرة فالمثال التالي خطأ MAIN أو COUT وهكذا.
4- تنتهى كل عبارة بفاصلة منقوطة.
5- جسم البرنامج كله يكون محصورا بين القوسين { سطور البرنامج }.
⬅سنبدأ بكتابة برنامج يعرض نصاً على الشاشة:-
.......................
#include<iostream.h>
main ( )
{
cout <<''@Kings_of_programming '';
return 0;
}
.......... ...........
الخرج من البرنامج:
.....................
@Kings_of_programming
......................
⬅رموز لغة C++ :
الرموز المستخدمة فى لغة C++ هى:
أ- الحروف الإنجليزية الكبيرة A,B,C,…
ب-الحروف الإنجليزية الصغيرة a,b,c,…
ج- الأرقام العربية 1,2,3,…
د-الرموز الخاصة (+,-,/,//,<,>,$,#,%,(),||,!,[],!=,,;,”,…..)وتعد هذه الرموز بأنواعها المادة الخام التى تتكون منها مفردات لغة C++.
🖋 م . أحمد قطران
يتبع .....👇
⬅️ شرح كتابة البرنامج في لغة c++
هذا برنامج يطبع الرابط @Kings_of_programming
...........................................
#include<iostream>
using namespace std ;
int main()
{
cout<<"@Kings_of_programming" ;
}
....................................
⬅️ شرح البرنامج (الكود )
#include<iostream>
هذا السطر عمليا يعني اسمح باستخدام عمليات الإدخال والإخراج في البرنامج
أما حرفيا فيعني ضمّن مكتبة الادخال والاخراج فبواسطة هذه المكتبة نستطيع إخراج البيانات وإدخال البيانات للبرنامج جرب كتابة الكود السابق بدون اول سطر ستلاحظ انه خطأ
لذلك عليك أن تعرف أنه مهم جدا في أغلب البرامج أو لا يخلوا برنامج منه
الآن لنتكلم عن ثاني سطر
using namespace std ;
هو عن عباره عن معرف للبرنامج ومساعد للمكتبات (أي السطر الأول ) لن نخوض فيه كثيرا لأن شرحه طويل وهو من العمليات المتقدمه سيتم شرحها لاحقا أن شاء الله
الآن السطر الثالث
int main()
{
}
تسمى الدالة الرئيسية في البرنامج أي انت ستكتب برامجك داخلها بمعنى ضمنها أي ما بين القوسين { }التابعين لها
ملاحظه لايمكن تنفيذ أي برنامج بدون دالة ()main
لنأتي الآن للسطر.
cout << " @Kings_of_programming";
أولا. cout تقرأ سي أوت بمعنى اطبع خارجا إلى الشاشة
ثانيا. >> هذه تسمى معامل الإخراج عملها نقل البيانات لخارج الشاشة
ثالثا. " " علامة التنصيص المدبلة. تعني أن كل ما بداخلها عباره عن نص وليس كود وبإمكانك أن تكتب بداخلها أي جمله تريد وسيتم طباعتها على الشاشة السوداء أو ما تسمى شاشة التنفيذ
أخيرا. ; فاصلة منقوطة تعني أنه انتهت الجمله ....
انتهى ......✋
هذا برنامج يطبع الرابط @Kings_of_programming
...........................................
#include<iostream>
using namespace std ;
int main()
{
cout<<"@Kings_of_programming" ;
}
....................................
⬅️ شرح البرنامج (الكود )
#include<iostream>
هذا السطر عمليا يعني اسمح باستخدام عمليات الإدخال والإخراج في البرنامج
أما حرفيا فيعني ضمّن مكتبة الادخال والاخراج فبواسطة هذه المكتبة نستطيع إخراج البيانات وإدخال البيانات للبرنامج جرب كتابة الكود السابق بدون اول سطر ستلاحظ انه خطأ
لذلك عليك أن تعرف أنه مهم جدا في أغلب البرامج أو لا يخلوا برنامج منه
الآن لنتكلم عن ثاني سطر
using namespace std ;
هو عن عباره عن معرف للبرنامج ومساعد للمكتبات (أي السطر الأول ) لن نخوض فيه كثيرا لأن شرحه طويل وهو من العمليات المتقدمه سيتم شرحها لاحقا أن شاء الله
الآن السطر الثالث
int main()
{
}
تسمى الدالة الرئيسية في البرنامج أي انت ستكتب برامجك داخلها بمعنى ضمنها أي ما بين القوسين { }التابعين لها
ملاحظه لايمكن تنفيذ أي برنامج بدون دالة ()main
لنأتي الآن للسطر.
cout << " @Kings_of_programming";
أولا. cout تقرأ سي أوت بمعنى اطبع خارجا إلى الشاشة
ثانيا. >> هذه تسمى معامل الإخراج عملها نقل البيانات لخارج الشاشة
ثالثا. " " علامة التنصيص المدبلة. تعني أن كل ما بداخلها عباره عن نص وليس كود وبإمكانك أن تكتب بداخلها أي جمله تريد وسيتم طباعتها على الشاشة السوداء أو ما تسمى شاشة التنفيذ
أخيرا. ; فاصلة منقوطة تعني أنه انتهت الجمله ....
انتهى ......✋
🖋 الدرس 3⃣
⬅ المتغيرات Variables:
👈 تعريف المتغير:
هو رمز أو اسم فريد يعطى لتخزين نوع من أنواع البيانات المعرفة مسبقاً داخل برنامج C++ أو التى تقوم أنت بإنشائها.
وهو عبارة عن أسماء تحجز مواقع فى الذاكرة حتى يتمكن البرنامج من تخزين البيانات فيها.
👈 وتنقسم المتغيرات بدورها إلى نوعين:-
1- متغيرات رمزية (حرفية).
2- متغيرات عددية .
3-متغيرات منطقية .
1) المتغيرات الحرفية char:
وتتضمن الحروف بكافة أشكالها والرموز والفراغات (مسافة فارغة) مثل:
char a,b;
Char var1;
a= “a”;
b=””; var1=” “;
وتحجز في الذاكره 1 بايت .
2) المتغيرات العدديةNumeric Variables :
أ) المتغيرات العددية الصحيحة :integer
تتضمن قيم عددية صحيحة يمكن أن تأخذ قيمة تصل إلى 32767 وتكتب على الشكل التالى:
int a;
a=100;
وتحجز في الذاكره 4 بايت .
ب) المتغيرات العددية الحقيقية :floating Point
تتضمن جميع الأعداد الحقيقية وتكتب على الشكل التالى:
float x;
x=5.2;
وتحجز الذاكره 4 بايت
ج) المتغيرات العددية الحقيقية الطويلة double:
هى نفس المتغيرات العددية الحقيقية ولكن يمكن تمثيلها فى خمسة عشرة خانة
وتكتب على الشكل التإلى:
double x;
x=1.7e43
وتحجز في الذاكره 8 بايت
3-المتغير المنطقي bool يمثل متغير منطقي باحد القيمتين 0 او 1 الذي تقابل false او true
ويحجز في الذاكره 1 بايت
👈شروط كتابة المتغيرات
1- يجب الإعلان عن المتغيرات قبل استخدامه في البرنامج
2-يمكن تسمية المتغير باستخدام خليط من الحروف والأرقام والشرطة التحتية على أن يبدأ اسم المتغير بحرف أو شرطة تحتية ولا يمكن أن يبدأ برقم كما يجب ألا يسمى المتغير بأى كلمة من الكلمات المحجوزة داخل لغة c++
👈سمات أسماء المتغيرات:
1- يكتب اسم المتغير بحروف صغيرة Small Letters.
2- يجب أن يكون اسم المتغير معبراً عن الوظيفة التى يستخدم من أجلها مثل المتغير Salary فى برنامج المرتبات.
3- عند استخدام اسم متغير مكون من كلمتين نضع بينهما شرطة تحتية أو اجعل الحرف الأول من كل كلمة تابعة حرف كبير مثل is_empty أوIsEmpty.
🖋 م . أحمد قطران
يتبع ....👇
⬅ المتغيرات Variables:
👈 تعريف المتغير:
هو رمز أو اسم فريد يعطى لتخزين نوع من أنواع البيانات المعرفة مسبقاً داخل برنامج C++ أو التى تقوم أنت بإنشائها.
وهو عبارة عن أسماء تحجز مواقع فى الذاكرة حتى يتمكن البرنامج من تخزين البيانات فيها.
👈 وتنقسم المتغيرات بدورها إلى نوعين:-
1- متغيرات رمزية (حرفية).
2- متغيرات عددية .
3-متغيرات منطقية .
1) المتغيرات الحرفية char:
وتتضمن الحروف بكافة أشكالها والرموز والفراغات (مسافة فارغة) مثل:
char a,b;
Char var1;
a= “a”;
b=””; var1=” “;
وتحجز في الذاكره 1 بايت .
2) المتغيرات العدديةNumeric Variables :
أ) المتغيرات العددية الصحيحة :integer
تتضمن قيم عددية صحيحة يمكن أن تأخذ قيمة تصل إلى 32767 وتكتب على الشكل التالى:
int a;
a=100;
وتحجز في الذاكره 4 بايت .
ب) المتغيرات العددية الحقيقية :floating Point
تتضمن جميع الأعداد الحقيقية وتكتب على الشكل التالى:
float x;
x=5.2;
وتحجز الذاكره 4 بايت
ج) المتغيرات العددية الحقيقية الطويلة double:
هى نفس المتغيرات العددية الحقيقية ولكن يمكن تمثيلها فى خمسة عشرة خانة
وتكتب على الشكل التإلى:
double x;
x=1.7e43
وتحجز في الذاكره 8 بايت
3-المتغير المنطقي bool يمثل متغير منطقي باحد القيمتين 0 او 1 الذي تقابل false او true
ويحجز في الذاكره 1 بايت
👈شروط كتابة المتغيرات
1- يجب الإعلان عن المتغيرات قبل استخدامه في البرنامج
2-يمكن تسمية المتغير باستخدام خليط من الحروف والأرقام والشرطة التحتية على أن يبدأ اسم المتغير بحرف أو شرطة تحتية ولا يمكن أن يبدأ برقم كما يجب ألا يسمى المتغير بأى كلمة من الكلمات المحجوزة داخل لغة c++
👈سمات أسماء المتغيرات:
1- يكتب اسم المتغير بحروف صغيرة Small Letters.
2- يجب أن يكون اسم المتغير معبراً عن الوظيفة التى يستخدم من أجلها مثل المتغير Salary فى برنامج المرتبات.
3- عند استخدام اسم متغير مكون من كلمتين نضع بينهما شرطة تحتية أو اجعل الحرف الأول من كل كلمة تابعة حرف كبير مثل is_empty أوIsEmpty.
🖋 م . أحمد قطران
يتبع ....👇
⬅ الكلمات المحجوزه key word :
في لغه C++ كلمات معرفه مسبقآ ومحجوزه لغرص خاص .
حيث يوجد 48 كلمه مفتاحيه بلغه C++ وهي:
asm_auto_break_case_catch_char_class_const_continue_default_delete_do_double_else_enum_ extern
_ float _ for _ friend _ goto
_if _ inline _ int _ long _
new _ operator_private _protected _ public _ register
_ retutnc _ short _signed
_size of _static _struct _
switch _ template _ this _
throw _ try _ typedef _
union _ unsigned _ virtual_void _ volatile _ while
...................
حيث ان لغه C تحوي 32 كلمه من الكلمات المحجوزه بلغه C++
انتهى ....
في لغه C++ كلمات معرفه مسبقآ ومحجوزه لغرص خاص .
حيث يوجد 48 كلمه مفتاحيه بلغه C++ وهي:
asm_auto_break_case_catch_char_class_const_continue_default_delete_do_double_else_enum_ extern
_ float _ for _ friend _ goto
_if _ inline _ int _ long _
new _ operator_private _protected _ public _ register
_ retutnc _ short _signed
_size of _static _struct _
switch _ template _ this _
throw _ try _ typedef _
union _ unsigned _ virtual_void _ volatile _ while
...................
حيث ان لغه C تحوي 32 كلمه من الكلمات المحجوزه بلغه C++
انتهى ....
🖋 الدرس 4⃣
⬅الــــروابــــط :-
👈 الفرق بين الروابط المختلفة ويحدد استخدام كل رابط كمايلي :
#اولآ : الروابط الرياضية :-
+ الجمع
- الطرح
* الضرب
/ القسمة
% باقي القسمة الصحيحة
#ثانيآ : الروابط المنطقية :-
&& و And
|| او Or
#ثالثآ : روابط المقارنة :-
ا Is ا التحقق من نوع المتغير
ا < ا أكبر
ا > ا أصغر
ا =< ا أكبر أو يساوي
ا => ا أصغر أو يساوي
ا =! ا لا يساوي
ا == ا يساوي
#رابعآ : روابط الأسناد :-
= إسناد
=+ إضافة قيمة للمتغير بمقدار ما
=- طرح قيمة من المتغير بمقدار ما
=* ضرب المتغير بمقدار ما
=/ قسمة المتغير على مقدار ما
# خامساً : روبط تتعامل معا البت bit
~ النفي Not
>> إزاحة إلى اليسار
<< إزاحة إلى اليمين
& و And
| او or
^ xor
#سادساً :معاملات الإزادة والإنقاص
++ معامل الإزادة
- - معامل الإنقاص
يتبع ....👇
⬅الــــروابــــط :-
👈 الفرق بين الروابط المختلفة ويحدد استخدام كل رابط كمايلي :
#اولآ : الروابط الرياضية :-
+ الجمع
- الطرح
* الضرب
/ القسمة
% باقي القسمة الصحيحة
#ثانيآ : الروابط المنطقية :-
&& و And
|| او Or
#ثالثآ : روابط المقارنة :-
ا Is ا التحقق من نوع المتغير
ا < ا أكبر
ا > ا أصغر
ا =< ا أكبر أو يساوي
ا => ا أصغر أو يساوي
ا =! ا لا يساوي
ا == ا يساوي
#رابعآ : روابط الأسناد :-
= إسناد
=+ إضافة قيمة للمتغير بمقدار ما
=- طرح قيمة من المتغير بمقدار ما
=* ضرب المتغير بمقدار ما
=/ قسمة المتغير على مقدار ما
# خامساً : روبط تتعامل معا البت bit
~ النفي Not
>> إزاحة إلى اليسار
<< إزاحة إلى اليمين
& و And
| او or
^ xor
#سادساً :معاملات الإزادة والإنقاص
++ معامل الإزادة
- - معامل الإنقاص
يتبع ....👇
👈اولاً : الروابط الرياضيه .
يتم تنفيذ عمليات الضرب والقسمة في التعابير الرياضية قبل عمليات الجمع والطرح . في التعبير التالي مثلاً :
10*10+2*3
يتم ضرب 10*10 ثم يتم ضرب 2*3 وبعدها يتم جمع نتيجتي الضرب مما يؤدى إلى القيمة
100+6=106.
يتم تنفيذ عمليات الضرب قبل الجمع لأن العامل * له أولوية أعلى من أولوية العامل + .
نجد أن أولوية العوامل مهمة في التعابير الرياضية العادية كما أنها مهمة أيضاً عند استعمال عوامل C++ المختلفة .
يتم تنفيذ الضرب والقسمه قبل الجمع والطرح .
🖋 م . أحمد قطران
يتبع .... 👇
يتم تنفيذ عمليات الضرب والقسمة في التعابير الرياضية قبل عمليات الجمع والطرح . في التعبير التالي مثلاً :
10*10+2*3
يتم ضرب 10*10 ثم يتم ضرب 2*3 وبعدها يتم جمع نتيجتي الضرب مما يؤدى إلى القيمة
100+6=106.
يتم تنفيذ عمليات الضرب قبل الجمع لأن العامل * له أولوية أعلى من أولوية العامل + .
نجد أن أولوية العوامل مهمة في التعابير الرياضية العادية كما أنها مهمة أيضاً عند استعمال عوامل C++ المختلفة .
يتم تنفيذ الضرب والقسمه قبل الجمع والطرح .
🖋 م . أحمد قطران
يتبع .... 👇
👈 ثانياً : الروابط المنطقيه
يمكن العمل على القيم صحيح/خطأ بواسطة العوامل المنطقية ، هنالك ثلاثة عوامل منطقية في C++ هي Not,Or,And
يكون التعبير and صحيحاً فقط إذا كان التعبيرين الموجودان على جانبي العامل && صحيحين بينما يؤدى العامل or إلى نتيجة صحيحة إذا كان أحد التعبيرين أو كليهما صحيحاً. العامل not (!) يبطل تأثير المتغير الذي يليه لذا التعبير !x صحيح إذا كان المتغير x خطأ وخطأ إذا كان x صحيحاً.
🖋 م . أحمد قطران
يتبع .... 👇
يمكن العمل على القيم صحيح/خطأ بواسطة العوامل المنطقية ، هنالك ثلاثة عوامل منطقية في C++ هي Not,Or,And
يكون التعبير and صحيحاً فقط إذا كان التعبيرين الموجودان على جانبي العامل && صحيحين بينما يؤدى العامل or إلى نتيجة صحيحة إذا كان أحد التعبيرين أو كليهما صحيحاً. العامل not (!) يبطل تأثير المتغير الذي يليه لذا التعبير !x صحيح إذا كان المتغير x خطأ وخطأ إذا كان x صحيحاً.
🖋 م . أحمد قطران
يتبع .... 👇
👈 رابعاً : روابط الاسناد .
باستعمال عوامل التعين الحسابي يمكن إعادة كتابة تعبير مثل:
x=x+2
على النحو
x+=2
يأخذ عامل التعين الحسابي =+ القيمة الموجودة على يمينه ويضيفها إلى المتغير الموجود على يساره. هنالك تعين حسابي لكل من العوامل الحسابية:-
a+= b a= a+ b
a-= b a= a- b
a*= b a= a* b
a/= b a= a/ b
a%= b a= a% b
مثال:
#include<iostream.h>
main ( )
{
int n=10;
cout<< a+= 2 <<endl;
cout << a-= 2 <<endl;
cout<< a/= 2 <<endl;
cout<< a*= 2 <<endl;
cout<< a %= 2 <<endl;
return 0;
}
الخرج من البرنامج 👇
12
8
5
20
0
🖋 م . أحمد قطران
يتبع .... 👇
باستعمال عوامل التعين الحسابي يمكن إعادة كتابة تعبير مثل:
x=x+2
على النحو
x+=2
يأخذ عامل التعين الحسابي =+ القيمة الموجودة على يمينه ويضيفها إلى المتغير الموجود على يساره. هنالك تعين حسابي لكل من العوامل الحسابية:-
a+= b a= a+ b
a-= b a= a- b
a*= b a= a* b
a/= b a= a/ b
a%= b a= a% b
مثال:
#include<iostream.h>
main ( )
{
int n=10;
cout<< a+= 2 <<endl;
cout << a-= 2 <<endl;
cout<< a/= 2 <<endl;
cout<< a*= 2 <<endl;
cout<< a %= 2 <<endl;
return 0;
}
الخرج من البرنامج 👇
12
8
5
20
0
🖋 م . أحمد قطران
يتبع .... 👇
👈 خامساً : روابط تتعامل مع البت
سنتطرق الى موضوع مهم في البرمجة وهو الضرب المنطقي والجمع المنطقي وكذالك الازاحة
ازاحة لليمين او لليسار
وكيف بيتم كل واحد منما ذكرنا
البعض لا يفرق بين & هذا الرمز وهذا && الرمز وخصوصاً نحن كمبتدئين في البرمجة
الضرب المنطقي هو رمزه & والفارق بينه وبين && فهذ الرمزين تستخدم للمقارنة بين اي شيئ في اي نظام عشري او ثماني او غير ذالك اما الضرب المنطقي فهو يعمل على مقارنة بين البتات اي يقوم بتحويل العدد الى ثنائي ويقوم بالمقارنة ونحصل على ناتج من ذالك
فأذا كان مثلا 7&6
فسيكون الناتج 6 كيف؟
اولا قمنا بتحويل العدد 6الى النظام الثنائي وكذالك العدد 7
ونقابل البت بالبت عندما يكون احد البتات المتقابلة 0 نضع 0 واذا كان جميع البتات 1 نضع1
فالرقم 6 =110 والرقم 7 = 111
فعندما نقابل العددين فالناتج سيكون 110 وهو قيمة الرقم 6 بالنظام العشري
الجمع المنطقي هو يقوم ايضا بالمقارنة بين البتات مثل الضرب المنطقي والازاحة ولاكن يعمل كدالة او ورمزه | والفارق بينه وبين الرمز || فهذا الاخير يقوم بالمقارنة بين اي شيئ في اي نضام ويمثل دالة او Or اما الجمع المنطقي | فيقوم بتحويل العدد من اي نظام الى النظام الثنائي ويقارن بين البتات اذا كان احد البتات 1 فنضع 1 في الناتج واذا كان جميع البتات ٠ نضع ٠
مثلا 7 |6 فالناتج سيكون 7
حولنا 6 الى النظام الثنائي وكذالك العدد 7
وقمنا بالمقارنة وبيصير الناتج 111 وهو يمثل قيمة الرقم 7 بالنظام العشري
عملية and....
6 = 0110
7 = 0111 &
----------------
0110 = 6
عملية or....
6 = 0110
7 = 0111 |
----------------
0111 = 7
عملية النفي
نفي ال 111ْع يكون 0
👈الان نتكلم عن الازاحة الى اليمين والى اليسار
اولا ماهو رمز الازاحة؟
رمز الازاحة هذا الرمز >> وهو الذي نستعمله في دوال الاخراج(الطباعة) والادخال ولاكن نعكس اتجاه الرمز في الادخال
فأي من الرمز ازاحة لليمين واي رمز إزاحة لليسار؟
.....
👈 عامل التزحيف لليسار >> والصيغة القواعدية لها هي
value<<constant integer
عامل التزحيف لليسار هو عامل احادي اي يعمل على قيمة واحد تكون على يسار العامل ويجب ان يكون العدد صحيح ثابت وعندما يقوم المترجم بتنفيذ هذه العملية سيدفع البتات الى اليسار بعدد محدد العدد الذي سيكون يمين العامل
البتات الذي على اليسار سوف تختفي عند تزحيف العدد لليسار
والبتات بتكون بعدد الرقم الذي على يمين العامل
الفراغ الذي سيتولد في اليمين نتيجة تزحيف العدد فأنه سيملأ بأصفار
مثلا
const int n=42;
n<<2
هنا سيكون الناتج
168
اولا حولنا العدد 42 الى النظام الثنائي
00101010
وعند التزحيف بيكون
10101000
وهي قيمة العدد 168 بالنظام الثنائي
👈 تزحيف البتات الى اليمين <<
التزحيف لليمين هو مشابه الى حد كبير التزحيف لليسار
ولاكن التزحيف لليمين ينتج عدد اقل
عندما نقوم بالتزحيف لليمين يختفي البتات من اليمين بمقدار العدد الثابت الصحيح الذي يمين العامل
ويملأ الفراغات الذي في اليسار الناتجة من تزحيف البتات ب اصفار
مثلاً 2<<88
فسينتج 22 كيف؟
اولا قمنا بتحويل العدد 88 الى مايساويه بالنظام الثنائي وثم تزحيف العدد الثنائي بمقدار 2 بت الى اليمين
ثم ملأ الفراغات الناتجة من التزحيف في اليسار بأصفار
واخيرا تحويل الرقم الناتج من النظام الثنائي الى النظام العشري
👈مقارنة البتات بأستخدام العامل xor
عندما يتم المقارنة بين بتات بأستخدام هذا العامل فأن اي بتات مختلفين نضع الناتج 1 واي بتات متساويين نضع الناتج ٠
مثلا 7^5
اولا نحول 7 و5 الى النظام الثنائي ثم نعمل المقارنة بين الرقمين الثنائيين
7= 111
5=101
الناتج بيكون
10 بالنظام الثنائي
وعندما نحوله الى النظام العشري
يساوي 2
🖋 م . أحمد قطران
يتبع ....👇👇
سنتطرق الى موضوع مهم في البرمجة وهو الضرب المنطقي والجمع المنطقي وكذالك الازاحة
ازاحة لليمين او لليسار
وكيف بيتم كل واحد منما ذكرنا
البعض لا يفرق بين & هذا الرمز وهذا && الرمز وخصوصاً نحن كمبتدئين في البرمجة
الضرب المنطقي هو رمزه & والفارق بينه وبين && فهذ الرمزين تستخدم للمقارنة بين اي شيئ في اي نظام عشري او ثماني او غير ذالك اما الضرب المنطقي فهو يعمل على مقارنة بين البتات اي يقوم بتحويل العدد الى ثنائي ويقوم بالمقارنة ونحصل على ناتج من ذالك
فأذا كان مثلا 7&6
فسيكون الناتج 6 كيف؟
اولا قمنا بتحويل العدد 6الى النظام الثنائي وكذالك العدد 7
ونقابل البت بالبت عندما يكون احد البتات المتقابلة 0 نضع 0 واذا كان جميع البتات 1 نضع1
فالرقم 6 =110 والرقم 7 = 111
فعندما نقابل العددين فالناتج سيكون 110 وهو قيمة الرقم 6 بالنظام العشري
الجمع المنطقي هو يقوم ايضا بالمقارنة بين البتات مثل الضرب المنطقي والازاحة ولاكن يعمل كدالة او ورمزه | والفارق بينه وبين الرمز || فهذا الاخير يقوم بالمقارنة بين اي شيئ في اي نضام ويمثل دالة او Or اما الجمع المنطقي | فيقوم بتحويل العدد من اي نظام الى النظام الثنائي ويقارن بين البتات اذا كان احد البتات 1 فنضع 1 في الناتج واذا كان جميع البتات ٠ نضع ٠
مثلا 7 |6 فالناتج سيكون 7
حولنا 6 الى النظام الثنائي وكذالك العدد 7
وقمنا بالمقارنة وبيصير الناتج 111 وهو يمثل قيمة الرقم 7 بالنظام العشري
عملية and....
6 = 0110
7 = 0111 &
----------------
0110 = 6
عملية or....
6 = 0110
7 = 0111 |
----------------
0111 = 7
عملية النفي
نفي ال 111ْع يكون 0
👈الان نتكلم عن الازاحة الى اليمين والى اليسار
اولا ماهو رمز الازاحة؟
رمز الازاحة هذا الرمز >> وهو الذي نستعمله في دوال الاخراج(الطباعة) والادخال ولاكن نعكس اتجاه الرمز في الادخال
فأي من الرمز ازاحة لليمين واي رمز إزاحة لليسار؟
.....
👈 عامل التزحيف لليسار >> والصيغة القواعدية لها هي
value<<constant integer
عامل التزحيف لليسار هو عامل احادي اي يعمل على قيمة واحد تكون على يسار العامل ويجب ان يكون العدد صحيح ثابت وعندما يقوم المترجم بتنفيذ هذه العملية سيدفع البتات الى اليسار بعدد محدد العدد الذي سيكون يمين العامل
البتات الذي على اليسار سوف تختفي عند تزحيف العدد لليسار
والبتات بتكون بعدد الرقم الذي على يمين العامل
الفراغ الذي سيتولد في اليمين نتيجة تزحيف العدد فأنه سيملأ بأصفار
مثلا
const int n=42;
n<<2
هنا سيكون الناتج
168
اولا حولنا العدد 42 الى النظام الثنائي
00101010
وعند التزحيف بيكون
10101000
وهي قيمة العدد 168 بالنظام الثنائي
👈 تزحيف البتات الى اليمين <<
التزحيف لليمين هو مشابه الى حد كبير التزحيف لليسار
ولاكن التزحيف لليمين ينتج عدد اقل
عندما نقوم بالتزحيف لليمين يختفي البتات من اليمين بمقدار العدد الثابت الصحيح الذي يمين العامل
ويملأ الفراغات الذي في اليسار الناتجة من تزحيف البتات ب اصفار
مثلاً 2<<88
فسينتج 22 كيف؟
اولا قمنا بتحويل العدد 88 الى مايساويه بالنظام الثنائي وثم تزحيف العدد الثنائي بمقدار 2 بت الى اليمين
ثم ملأ الفراغات الناتجة من التزحيف في اليسار بأصفار
واخيرا تحويل الرقم الناتج من النظام الثنائي الى النظام العشري
👈مقارنة البتات بأستخدام العامل xor
عندما يتم المقارنة بين بتات بأستخدام هذا العامل فأن اي بتات مختلفين نضع الناتج 1 واي بتات متساويين نضع الناتج ٠
مثلا 7^5
اولا نحول 7 و5 الى النظام الثنائي ثم نعمل المقارنة بين الرقمين الثنائيين
7= 111
5=101
الناتج بيكون
10 بالنظام الثنائي
وعندما نحوله الى النظام العشري
يساوي 2
🖋 م . أحمد قطران
يتبع ....👇👇
⬅ سادساً : معاملات الإزاده والانقاص
👈هناك دائماً حاجة في البرمجة إلى زيادة 1 أو طرح 1 . هذه الحالات شائعة لدرجة أن C++ تتضمن عاملين خاصين ينفذان هذه المهمة، يقوم عامل التناقص (--) بطرح 1 من المتغير ويضيف عامل التزايد (++) 1 إليه ، المثال الآتي يبين طريقة الاستعمال:-
++a
a++
معناه إضافة 1 إلى a، ويمكن كتابته بصورة مكافئة على النحو a=a+1 وبالطريقة نفسها يمكن إنقاص 1 من قيمة a على النحو --a أو a-- وهو يكافئ a=a-1.
ومما يجب التنبيه إليه هنا أن هنالك فرق بين ++ a أو a++ فعلى الرغم من كليهما يجمع 1 إلى a إلا أنه عند استعمال ++a تستخرج قيمة التعبير باستعمال قيمة a الحالية قبل زيادتها وينطبق هذا أيضاً على --a وa-- .
#include<iostream.h>
main ( )
{
int c;
c = 5;
cout << c << endl;
cout << c++ <<endl;
cout << c <<endl;
c=5;
cout << c << endl << endl;
cout << ++c << endl;
cout << c << endl;
return 0;
//Continued
}
الخرج من البرنامج:
5
5
6
5
6
6
🖋 م . أحمد قطران
انتهى ....
👈هناك دائماً حاجة في البرمجة إلى زيادة 1 أو طرح 1 . هذه الحالات شائعة لدرجة أن C++ تتضمن عاملين خاصين ينفذان هذه المهمة، يقوم عامل التناقص (--) بطرح 1 من المتغير ويضيف عامل التزايد (++) 1 إليه ، المثال الآتي يبين طريقة الاستعمال:-
++a
a++
معناه إضافة 1 إلى a، ويمكن كتابته بصورة مكافئة على النحو a=a+1 وبالطريقة نفسها يمكن إنقاص 1 من قيمة a على النحو --a أو a-- وهو يكافئ a=a-1.
ومما يجب التنبيه إليه هنا أن هنالك فرق بين ++ a أو a++ فعلى الرغم من كليهما يجمع 1 إلى a إلا أنه عند استعمال ++a تستخرج قيمة التعبير باستعمال قيمة a الحالية قبل زيادتها وينطبق هذا أيضاً على --a وa-- .
#include<iostream.h>
main ( )
{
int c;
c = 5;
cout << c << endl;
cout << c++ <<endl;
cout << c <<endl;
c=5;
cout << c << endl << endl;
cout << ++c << endl;
cout << c << endl;
return 0;
//Continued
}
الخرج من البرنامج:
5
5
6
5
6
6
🖋 م . أحمد قطران
انتهى ....
سؤال: معاملات الزياده
#include <iostream>
using namespace std;
int main () {
int x=3;
int y = x++ + ( ++x * x++ + ++x) + ++x;
cout<<y;
return 0; }
#include <iostream>
using namespace std;
int main () {
int x=3;
int y = x++ + ( ++x * x++ + ++x) + ++x;
cout<<y;
return 0; }