Professional Documents
Culture Documents
الدرس الول
أرجوا أن تكونوا قد حاولتم فيها
كود:
># include <iostream.h
)(void main
{
;int x1,x2,x3,x4
في لغة السي بلس بلس نستخدم رموز معروفة للعمليات الحسابية مثل الجمع
والطرح والضرب .......إلخ
= = علمة المساوة
+علمة الجمع .
-علمة الطرح .
* علمة الضرب .
/علمة القسمة .
%علمة إيجاد الباقي من القسمة
R = 5 × 6 + ( y ÷ 4 ) -3
( R = ( (5 * 6 ) + ( y / 4 ) -3
س /ما الفرق إذا بين علمة المساواة الواحدة ) = ( وعلمة المساواة الثنائية
) = = ( ؟؟
إن علمة المساواة الواحد تستخدم لعملية وضع قيمة ..يعني نريد أن نضع قيمة
xفي ، y
على سبيل المثال ،
; z = x + y
; cout << z
}
سيقوم البرنامج بفتح 3أماكن فارغة في الذاكرة للـ xو yو .. z
وأخيرًا يقوم بجمع القيمة الموجودة داخل xمع القيمة الموجودة داخل yويضع
الناتج في مكان zبالذاكرة ..
ولذلك ..عندما نقوم بطباعة zسيكون الناتج . 11
ل عندما
أما علمة المساواة الثنائية ..فإن أغلب استخداماتها في المقارنة ..فمث ً
نقول أن
كود:
; R = = x + y
فهذا يعني أن هناك قيمة في المتغير Rوأن قيمة مجموع x + yستكون مساوية
للقيمة الموجودة في Rأي نفس القيمة في المجموع ..ستكون موجودة في ، R
ول تعني أن مكان Rفارغ كما كان مكان zفي المثال سابق .
; z = x + y
; cout << z
}
فإنه سيقوم بـ ))) نسخ ((( القيمة الموجودة داخل xونفس المر مع yثم
يجمعهما ويضع الناتج في مكان zبالذاكرة .
إذا يقوم البرنامج بنسخ القيم ،ول ينقل القيم ،لنه لو نقل القيم لصبح بعد تنفيذ
البرنامج مكان xو yفارغًا ..وبالتالي لو استخدمنا xمرة أخرى في نفس
البرنامج فإن قيمتها ستكون صفر ،لذلك يقوم البرنامج بنسخ القيم وليس نقلها .
لكن ..هناك اختلف بسيط بين الجملتين الثانية والثالثة ..قد يؤدي هذا الختلف
إلى قلب المعنى تمامًا ..ولكني لن أتطرق إلى شرح ذلك الختلف ..لن شرحه
صعب وفهمه أصعب بكثير جدًا ..وما زلنا في البداية ,,لذلك سنعبر تلك النقطة
إلى ما بعدها ..
ملحظة :إذا تعارضت عمليتان حسابيتان لهما نفس الولوية فإننا نقوم بتنفيذ
العملية القرب لليسار ..
ل ..لو جاءت عملية تحتوي على ضرب وقسمة ..فسنقوم بتنفيذ العملية فمث ً
القرب لليسار لن الضرب والقسمة لهما نفس الولوية .
ولفهم هذا المر جيدا ..سنقوم بتطبيقه على مثال عملي ثم نشرحه ..
مثال :اكتب برنامج اختبار لدرجة الطلب ..بحث يدخل المستخدم الدرجة ،ولو
كات هذه الدرجة أكبر من أو تساوي الخمسين فإن البرنامج يخبرنا بأن الطالب
ناجح ،وإذا كانت أقل من 50يخبرنا البرنامج بأن الطالب راسب .
كود:
># include <iostream.h
)( void main
{
; float k
}
شرح المثال :
• في البداية قمنا بتعريف المتغير اللذي سيفتح مكان في الذاكرة ليمكننا من إدخال
الدرجة .
• بعد ذلك سنطبع على شاشة عبارة يفهم منها المستخدم أن المطلوب منه إدخال
الدرجة .
• استخدمنا cinلبدأ إدخال الدرجة ووضعها في الذاكرة في مكان المتغير . k
• الن لحظ التالي :
استخدمنا ifلكي نقارن الدرجة المدخلة هل هي أكبر من أو تساوي الخمسين أم
أصغر ؟ ...
وضغنا الدرجة kثم علمة المقارنة أكبر من أو يساوي ثم رقم 50وهو الرقم
الفاصل اللذي سيحدد لنا .
لحظ ..أننا لم نضع فاصلة منقوطة بعد عبارة ifلنها من الستثنائيات اللتي
تحدثنا عنها في الدرس الول .
• نعود لبرنامجنا ..إذا تحقق الشرط ..أي كانت الدرجة أكبر من أو تساوي
الخمسين سنقوم بطباعة المر ما بعد ifوإن لم يتحقق سنقوم بفعل ما بعد
. else
• وهكذا انتهى البرنامج بإغلق القوس .
-2
من الممكن تنفيذ عدة أوامر في حال تحقق شرط ifول يشترط أمر واحد ..
القاعدة التالية مع شرحها ستوضح الكثير بإذن ال ..
في السطر التالية :
كود:
) If ( K >= 3
; " Cout << "\n you typed جلة 1
; " Cout << " Yassmean جلة 2
لحظ التي •:لو تحقق شرط جملة ifسيقوم البرنامج بتنفيذ الجملتين .
• لو لم يتحقق الشرط سيقوم البرنامج بتنفيذ الجملة الثانية وترك الجملة الولى .
• لجعل البرنامج ل ينفذ الجملتين في حالة عدم تحقق الشرط يتم وضع أقواس
على الشكل التالي :
كود:
{ cout<<"\n……….
} ;"cout ……....."Yassmean
أتمنى أن يكون كل شيء قد اتضح الن .
قاعدة ) و – أو(:
ماذا لو أردنا وضع أكثر من شرط في جملة ifحينها يجب أن نستخدم أحد الداتين
andأو الداة ... or
الفرق بين الداتين :
: Andورمزها && و تشترط أن يتحقق كل الشروط الموجودة في جملة . if
: Orورمزها || و تشترط تحقق واحد على القل من الشروط الموجودة داخل
جملة . if
مثال :لو أردنا كتابة برنامج يقوم بحساب تقدير طالب جامعي بحيث يطبع لنا
تقدير Aالمحصور بين الدرجات من 95وحتى 100
كود:
># include <iostream.h
) void main ( void
{
; float x
; cin >> x
)) if ( ( x >= 95 ) && ( x < 100
} ; " { cout<< " A
}
لحظ :استخدمنا هنا الداة andلنه يجب أن يتحقق الشرطان حتى نتمكن من
طباعة التقدير . A
==========
المر switch:
متحول ) Switch (
}
Case
;Break
{
} ()void main
;double x,y
;char op
;cin>>x
;cin>>op
;cin>>y
(switch(op
;break
;case'-':cout<<x-y<<endl
;break
;case'*':cout<<x*y<<endl
;break
;cout<<x/y<<endl
else
;cout<<"div/0"<<endl
;break
;Default
;cout<<"Error In Operator"<<endl
{ {
إلى هنا يكون درسنا الثاني قد انتهى ..موعدنا في الدرس القادم مع أوامر التكرار
) ( LooPوهي مهمة جدًا ..
بس لزم تحّلو هالوظيفة بعد ما تفهموا الدرس الوظيفة مكونة من سؤالين: