مـنـتــدى شـبـاب اليمن العامه
الدرس الثاني  1317025253111



"¨°°o°°¨]§[°مرحباُ بك في منتديات شباب اليمن °]§[¨°°o°°¨"
مـنـتــدى شـبـاب اليمن العامه
الدرس الثاني  1317025253111



"¨°°o°°¨]§[°مرحباُ بك في منتديات شباب اليمن °]§[¨°°o°°¨"
مـنـتــدى شـبـاب اليمن العامه
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.



 
الرئيسيةالبوابهأحدث الصورالتسجيلدخولمنتدى شباب اليمن
الدرس الثاني  Register
الدرس الثاني  11111110

 

 الدرس الثاني

اذهب الى الأسفل 
كاتب الموضوعرسالة
شعاع الامل
الـــمـــديــــر
الـــمـــديــــر
شعاع الامل


الـــديـــانـــه الـــديـــانـــه : مسلم( بحمد الله)
علم الــــدولـــة : الدرس الثاني  Yemen110
الجنس : ذكر

الابراج : الجوزاء

الثعبان
عدد المساهمات عدد المساهمات : 318
نقاط : 861

تاريخ التسجيل : 18/01/2011
العمر : 34
الموقع الموقع : https://www.facebook.com/profile.php?id=100007798747315
تعاليق :

أجـــمـــل ما فـــى الحـــياه " انـــسان"يـــقرأك دون حـــروف ...يفـــهمك دون كـــلام ...يحـــبك دون مـــقابل



الدرس الثاني  Empty
مُساهمةموضوع: الدرس الثاني    الدرس الثاني  Emptyالأحد ديسمبر 04, 2011 9:14 pm

الدرس الثاني

العمليات الحسابية في لغة السي بلس بلس ..


في لغة السي بلس بلس نستخدم رموز معروفة للعمليات الحسابية مثل الجمع والطرح والضرب ....... إلخ .


[frame="3 80"]

= = علامة المساوة

+ علامة الجمع .


- علامة الطرح .


* علامة الضرب .


/ علامة القسمة .


% علامة إيجاد الباقي من القسمة
.[/frame]



فمثلاً .. لو أردنا كتابة المعادلة التالية بـ لغة البرمجة ..


R = 5 × 6 + ( y ÷ 4 ) -3



ستكون بالشكل التالي :



R = ( (5 * 6 ) + ( y / 4 ) -3 )


س / مالفرق إذا بين علامة المساواة الواحدة ( = ) وعلامة المساواة الثنائية ( = = ) ؟؟


إن علامة المساواة الواحد تستخدم لعملية وضع قيمة .. يعني نريد أن نضع قيمة x في y ،


على سبيل المثال ،



في البرنامج التالي :

كود:
# include
void main ( void )
{
int x = 5 ;
int y = 6 ;
int z ;

z = x + y ;
cout << z ;

}
سيقوم البرنامج بفتح 3 أماكن فارغة في الذاكرة للـ x و y و z ..



ثم سيقوم بوضع القيمة 5 في مكان x بالذاكرة ..


ويضع القيمة 6 في مكان y بالذاكرة ..


[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


وأخيراً يقوم بجمع القيمة الموجودة داخل x مع القيمة الموجودة داخل y ويضع الناتج في مكان z بالذاكرة ..


ولذلك .. عندما نقوم بطباعة z سيكون الناتج 11 .



أما علامة المساواة الثنائية .. فإن أغلب استخداماتها في المقارنة .. فمثلاً عندما نقول أن


كود:
R = = x + y ;
فهذا يعني أن هناك قيمة في
المتغير R وأن قيمة مجموع x + y ستكون مساوية للقيمة الموجودة في R أي
نفس القيمة في المجموع .. ستكون موجودة في R ، ولا تعني أن مكان R فارغ
كما كان مكان z في المثال سابق .



أتمنى أن يكون الأمر قد اتضح الآن .



دعونا نعود مرةً أخرى للبرنامج السابق :

كود:
# include
void main ( void )
{
int x = 5 ;
int y = 6 ;
int z ;

z = x + y ;
cout << z ;

}



عندما يأتي البرنامج لينفذ السطر التالي :

كود:
Z = x + y ;


فإنه سيقوم بـ ((( نسخ ))) القيمة الموجودة داخل x ونفس الأمر مع y ثم يجمعهما ويضع الناتج في مكان z بالذاكرة .


إذا يقوم البرنامج بنسخ القيم ، ولا ينقل القيم ، لأنه لو نقل القيم لأصبح
بعد تنفيذ البرنامج مكان x و y فارغاً .. وبالتالي لو استخدمنا x مرة أخرى
في نفس البرنامج فإن قيمتها ستكون صفر ، لذلك يقوم البرنامج بنسخ القيم
وليس نقلها .



حسناً .. الآن لنتأمل الأربع الجمل التالية ..


كود:
1) X = X + 1 ;
2) X ++ ;
3) ++ X ;
4) X+ =1 ;
انتهينا .. حسناً .. لنتأملهم مرة أخرى !!




..

كود:
5) X = X + 1 ;
6) X ++ ;
7) ++ X ;
Cool X+ =1 ;


إن تلك الجمل الأربعة معناها واحد في لغة سي بلس بلس ..


ومعناها .. أن نقوم بزيادة قيمة x بمقدار واحد 1 .



يعني لو كانت x تساوي خمسة .. بعد تنفيذ أيٍ من الجمل الأربعة السابقة .. ستكون قيمة x تساوي ستة .



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



لذلك سنعبر تلك النقطة إلى ما بعدها ..



أولويات العمليات الحسابية ..

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]




وهذا يعني : أنه إذا تعرضنا لعملية حسابية معينة تحتوي على ضرب وقسمة وجمع
و..... إلخ ، فإننا سنقوم بتنفيذ العمليات بالترتيب كما هو موضح في الجدول
أعلاه .



ملاحظة : إذا تعارضت عمليتان حسابيتان لهما نفس الأولوية فإننا نقوم بتنفيذ العملية الأقرب لليسار ..



فمثلاً .. لو جاءت عملية تحتوي على ضرب وقسمة .. فسنقوم بتنفيذ العملية الأقرب لليسار لأن الضرب والقسمة لهما نفس الأولوية .



عمليات المقارنة ..


تعتبر من أهم العمليات .. وتحتوي على رموز سهلة وبسيطة :

كود:
> أكبر من
< أصغر من
<= أكبر من أو يساوي
>= أصغر من أو يساوي
= = يساوي
=! لا يساوي



ونستخدم عمليات المقارنة كثيراً في أدوات الشرط ..




الجمل الشرطية ..


الجمل والأوامر الشرطية .. تعني أننا نعطي للبرنامج شرط ، وإذا تحقق هذا
الشرط ينفذ البرنامج شيء معين ، أما إذا لم يتحقق ينفذ شيء آخر ..



ومن أشهر الجمل الشرطية اللتي سنستخدمها بإذن الله ..


جملة if ... else ...

وجملة SWITCH


الأمر

If …. Else ….



هذا الأمر بمعنى : لو حدث كذا ( ونعطيه الشرط المطلوب ) افعل كذا (
ونعطيه ما ينبغي فعله في حالة حدوث الشرط ) وإلا كذا ( فإن لم يتحقق الشرط
يفعل شيء آخر )



ولفهم هذا الأمر جيدا .. سنقوم بتطبيقه على مثال عملي ثم نشرحه ..


مثال
: اكتب برنامج اختبار لدرجة الطلاب .. بحث يدخل المستخدم الدرجة ، ولو كات
هذه الدرجة أكبر من أو تساوي الخمسين فإن البرنامج يخبرنا بأن الطالب
ناجح ، وإذا كانت أقل من 50 يخبرنا البرنامج بأن الطالب راسب .

كود:
# include
void main ()
{
float k ;

cout << " Pleas Enter the mark ? " ;
cin >> k ;

if ( k >= 50 )
cout << "\n the student Sucsseful" ;
else
cout << " \n the student Filled " ;

}

شرح المثال :


• في البداية قمنا بتعريف المتغير اللذي سيفتح مكان في الذاكرة ليمكننا من إدخال الدرجة .


• بعد ذلك سنطبع على شاشة عبارة يفهم منها المستخدم أن المطلوب منه إدخال الدرجة .


• استخدمنا cin لبدأ إدخال الدرجة ووضعها في الذاكرة في مكان المتغير k .


• الآن لاحظ التالي :


استخدمنا if لكي نقارن الدرجة المدخلة هل هي أكبر من أو تساوي الخمسين أم أصغر ؟ ...


وضغنا الدرجة k ثم علامة المقارنة أكبر من أو يساوي ثم رقم 50 وهو الرقم الفاصل اللذي سيحدد لنا .


لاحظ .. أننا لم نضع فاصلة منقوطة بعد عبارة if لأنها من الإستثنائيات اللتي تحدثنا عنها في الدرس الأول .


• نعود لبرنامجنا .. إذا تحقق الشرط .. أي كانت الدرجة أكبر من أو تساوي
الخمسين سنقوم بطباعة الأمر ما بعد if وإن لم يتحقق سنقوم بفعل ما بعد else
.


• وهكذا انتهى البرنامج بإغلاق القوس .



ملاحظات عامة :

1 -


لا يشترط كتابة else في جملة if فالبرنامج السابق مثلاً يمكن كتابته على الشكل التالي :

كود:
# include
void main ()
{
float k ;

cout << " Pleas Enter the mark ? " ;
cin >> k ;

if ( k >= 50 )
cout << "\n the student Sucsseful" ;
if ( k< 50 )
cout << " \n the student Filled " ;

}


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



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
void main ( void )
{
float x ;
cin >> x ;
if ( ( x >= 95 ) && ( x < 100 ))
{ cout<< " A " ; }
}


لاحظ : استخدمنا هنا الأداة and لأنه يجب أن يتحقق الشرطان حتى نتمكن من طباعة التقدير A .


==========


الأمر switch


يعتبر من أسهل الأوامر .. وسنأخذه في آواخر دروس الدورة بإذن المولى عز وجل .



===============




إلى هنا يكون درسنا الثاني قد انتهى .. موعدنا في الدرس القادم مع أوامر التكرار ( LooP ) وهي مهمة جداً ..



صحيح ... عشان منساش برضه .. لازم أديكم واجب .. وواجب صعب كمان .. [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]



هاهاها .. لا مش صعب ولا حاجة .. لكن هيكون محتاج مننا إن إحنا نشغل مخنا شوية [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


الواجب عبارة عن سؤالين :


السؤال
الأول : اكتب برنامج بلغة C++ يقوم بحساب مربع العدد N بحيث يخرج ناتج
البرنام على الشكل التالي : مربعه
............... العدد


السؤال
الثاني : اكتب برنامج يقوم بالتحويل من الإنش إلى السنتيمتر والعكس حسب
ما يطلب المستخدم ، مع العلم أن كل إنش واحد يحتوي على 2.54 سم .



السؤال التاني فيه فكرة بسيطة ، بس اللى يفكر هيجيبها بسهولة إن شاء الله ..

واجبك .

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://yemen2day.yoo7.com
 
الدرس الثاني
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» الدرس الأول في تعلم لغة C++
» مراجعه الفصل الدراسي الثاني لطلاب الدبلوم سنه اولا

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
مـنـتــدى شـبـاب اليمن العامه :: قسم الشروحات-
انتقل الى: