الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سي بلس بلس

مغلقرائج
بدأه البارودي في 28 نوفمبر 2004 · 165 رد · 36,744 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#126

هنا الارقام من 6 : 10 تم قسمتها علي 8 باستخدام معامل الباقي .

الاجابه ستكون : 6 و 7 و صفر و 1 و 2 . و هي بواقي عمليات القسمه .

معامل الباقي يستخدم في كثير من الحالات . سنري مثال بعد ذلك .

لاحظ في ما سبق : في التعبير

 Cout<<6%8;

معامل الباقي تم تقييمه الاول لان له الاولويه الاعلي عن معامل << .

لو لم يكن هذا سنحتاج لوضع قوسين حول 6%8 للتاكد من ان تم تقييمهم قبل ان يكونوا تحت تصرف المعامل << .

#127

ليش وقفت عن الشرح ؟؟

متى راح يكون الاختبار ؟؟

plz انا ودي ما يكون الاختبار الاسبوع الجاي

بكون شاكره لو لبيتو طلبي

#129

• معاملات التخصيص الرياضي

ال C++ تعرض طرق متعدده لتقصير و تصفية الشفرات .

احد هذه الطرق هو معاملات التخصيص الرياضي . هذا المعمل يساعدك لتعطي لاستجابة ال C++ مظهر مميز .

النوع التالي من العباره هو الرئيسي في معظم اللغات .

 Total = total + item;   // add " item " to " total "

في هذه الحاله انت تضيف بعض الاشياء للقيمه المتبقيه . ( او تستخدم بعض المعاملات الرياضيه الاخري بها ) . لكن نسق العباره اخطأ في ايهما الاختصار يكون مهم . لان الاسم Total ظهر مرتين .

لذي C++ تعرض تلخيص اقرب : معامل التخصيص الحسابي و التي مزجت معامل حسابي و معامل تخصيص و عناصر اعادة العمليه . هنا عباره لها نفس التاثير كما عرضنا من قبل .

Total + = item;  // add " item " to " total "

الشكل رقم ( 10 ) ياكد تساوي النموزجين .

post-14-1104008730_thumb.jpg

تم تعديل هذه المشاركة بواسطة البارودي في 26 ديسمبر 2004 في 00:05

#130

هذه هي معاملات التخصيص الحسابيه مماثله لكل المعاملات الرياضيه :

+= و -= و *= و /= و %=

( وبعض المعاملات الاخري جيده ) . المثال التالي يعرض معاملات التخصيص الرياضيه المستخدمه :

#include<iostream.h>
int main()
{
	int ans=27;
	ans+=10;
	cout<<ans<<",";
	ans-=7;
	cout<<ans<<",";
	ans*=2;
	cout<<ans<<",";
	ans/=3;
	cout<<ans<<",";
	ans%=3;
	cout<<ans<<endl;
	return 0;
}

post-14-1104008875_thumb.jpg

تم تعديل هذه المشاركة بواسطة البارودي في 26 ديسمبر 2004 في 00:10

#133

لن نحتاج لاستخدام معاملات التخصيص الرياضيه في الشفرات و لكن ذلك الشكل الرئيسي في المستقبل للغه .

ستظهر في امثله عديده في هذا الكتاب .

#134

• معاملات الزياده

ها هي كل معاملات التخصيص . كثيرا ما تحتاج لاضافة 1 الي قيمة المتغيرات المتبقيه . يمكنك فعل ذلك بطريقه بسيطه :

Count = count + 1; //add 1 to " count "

او يمكنك استخدام معاملات التخصيص الرياضي :

Count + = 1; //add 1 to " count "

لكن هذا كل التقريب المركز :

++ count; //add 1 to " count "

معامل الزياده ++ ( يضيف 1 الي موضعها ) .

#135

• قبل التحديد و بعد التحديد

كما لو لم يكن غريب بدرجه كافيه . معاملات الزياده يمكن ان تستخدم بطريقتين : مثل قبل التحديد بمعني ان المعامل يسبق المتغير و مثل بعد التحديد بمعني ان المعامل يتبع المتغير . ما هو الاختلاف ؟

كثيرا ما المتغيرات تزداد بداخل الشفرة و التي تقوم بعمل بعض العمليات الاخري بداخلها .

كمثال :

Totalweight = avgweight * ++ count;

السؤال هنا هو :

هل عملية الضرب تنفذ قبل او بعد زيادة المتغير Count ؟

في هذه الحاله Count تزداد اولا . كيف عرفنا ذلك ؟

لان اشارة قبل التحديد استخدمت :

++count .

لو استخدمنا اشارة بعد التحديد

Count++

فان عملية الضرب ستنفذ اولا ثم زيادة المتغير Count .

هذا واضح بالشكل رقم (11 ).

تم تعديل هذه المشاركة بواسطة البارودي في 26 ديسمبر 2004 في 00:22

#138

ها هو مثال يوضح اصدارات قبل و بعد التحديد لمعاملات الزياده و اسم البرنامج Increm :

#include<iostream.h>
int main()
{
	int count=10;
	cout<<"count="<<count<<endl;
	cout<<"count="<<++count<<endl;
	cout<<"count="<<count<<endl;
	cout<<"count="<<count++<<endl;
	cout<<"count="<<count<<endl;
	return 0;
}

post-14-1104010038_thumb.jpg

تم تعديل هذه المشاركة بواسطة البارودي في 26 ديسمبر 2004 في 00:27

#141

في اول مره count ازدادت و عامل قبل التحديد ++ استخدم .

هذا سبب الزيادة التي حدثت في بداية تقييم الشفره .

و قبل طباعة مخرجات العامل . عندما قيمة التعبير

++count

عرضت فانها تلقائيا ازدادت و ال << عرض القيمه 11 .

في المرة التاليه count ازدادت و معامل بعد التحديد ++ استخدم .

عندما التعبير

 Count++

عرض و حتي الان قيمتها ال 11 لم تزداد .

باتباع تكملة الشفرة الزياده تاخذ التاثير . لذلك في اخر الشفرة بالبرنامج سنري ان Count اتخذت القيمه 12 .

#142

• معامل الانقاص (- - )

معامل الانقاص - - يكون طبق الاصل مثل معامل الزياده ماعدا انه يقوم بانقاص 1 من معامله . انه ايضا يمكن استخدامه مع كل من نمازج قبل التحديد و بعد التحديد .

#143

• مكتبة الدوال

العديد من الانشطه في ال C++ يتم تنفيذها عن طريق مكتبة الدوال . هذه الدوال تقوم بعمل ملفات تنظيميه للدخول و الحسابات الرياضيه و احداث البيانات و تضم اشياء اخري .

نحن لا نحتاج للدخول بعمق اكثر في مكتبات الدوال قبل ان نوضح كيف تعمل هذه الداله .

لكن يمكنك استخدام مكتبة دوال بسيطه بدون فهم تام لمعاملاتها .

المثال التالي sqrt تستخدم مكتبة الداله sqrt( ) لحساب الجزر التربيعي لرقم يتم ادخاله بواسطة المستخدم .

#include<iostream.h>
#include<cmath>

int main()
{
	double number,answer;
	cout<<"Enter the number:";
	cin>>number;
	answer=sqrt(number);
	cout<<"square root is "<<answer<<endl;
	return 0;
}

post-14-1104010606_thumb.jpg

تم تعديل هذه المشاركة بواسطة البارودي في 26 ديسمبر 2004 في 00:37

#146

البرنامج في الاول يحصل علي رقم من المستخدم . هذا الرقم بعد ذلك يستخدم كقضيه مطروحه لدالة ال sqrt( ) في الشفره .

Answer = sqrt( number );

القضيه او الموضوع هو مدخل للداله انها توضع بداخل قوسين عبارة يتبعوا اسم الداله .

الداله بعد ذلك تعالج الموضوع و ترجع القيمه وهي عبارة عن مخرجات من الداله .

في هذه الحاله القيمه الراجعه هي الجزر التربيعي للرقم الاصلي .

ارجاع القيمه يعني ان جملة الداله تاخذ القيمه التي بعد ذلك يمكن ان تخصص لمتغير اخر – في هذه الحاله Answer .

البرنامج بعد ذلك يعرض القيمه . ها هي بعض المخرجات من البرنامج :

post-14-1104010895_thumb.jpg

#147

بضرب ال 31.6228 في نفسها في نافذة الحاسوب ستتحقق من ان الاجابه تقريبا صحيحه .

موضوع الداله و قيمتها المرجعه يجب ان تكون نوع بيانات صحيحه .

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

ل sqrt( ) البيان يصف كل من الموضوع و القيمه المرجعه للنوع double لذلك سنستخدم متغيرات من هذا النوع في البرنامج .

#148

• الملفات الرئيسيه

كما بال Cout و كذلك الكائنات الاخري يجب ان يكون #include الملف الرئيسي ان يحتوي علي تصريح لاي مكتبة دوال تستخدمها .

في مستندات الداله Sqrt( ) ستري انها خصصت الملف الرئيسي Cmath .

في عملية ما قبل التوجيه لل Sqrt :

#include<cmath>

احترس و انت تضم الملف الرئيسي في ملف المصدر .

لو لم يحتوي علي ملف رئيسي مناسب عندما تستخدم مكتبة الداله ستتسبب في احضار رسالة خطأ مثل هذه من المعالج :

" 'sqrt' unidentified identifier . ".
#149

• ملفات المكتبات

نحن ذكرنا سابقا ان ملفات متعددة تحتوي علي مكتبة دوال و كائنات (اهداف) سيتم اتصالها ببرنامجك لانشاء ملف تنفيذي .

هذه الملفات تحتوي علي اله طبيعيه لتنفيذ شفرات الدوال .

مثل ملفات المكتبات عادتا تحتوي تحتوي علي امتداد .LIB .

الداله Sqrt( ) موجوده بنفس الملف .

انها تلقائيا تستخرج من المف بواسطة الاتصال و الاتصال الجيد يحدث لذلك يمكن ان يسمي ( هذا يستحضر او يدخل ) من برنامج ال sqrt .

معالجك يعتني بكل هذه التفاصيل لك لذلك عادتا لا تحتاج لتقلق عن المعالجه .

ومع ذلك يجب ان تفهم لاي شئ هذه الملفات .

تم تعديل هذه المشاركة بواسطة البارودي في 26 ديسمبر 2004 في 00:48

#150

• الملفات الرئيسيه و ملفات المكتبه

العلاقة التي بين ملفات المكتبه و الملفات الرئيسيه يمكن ان تختلط .

لذلك دعنا نلقي نظره عليها .

لاستخدام مكتبة الداله مثل Sqrt( ) فيجب عليك اتصال ملف المكتبه الذي يحتوي عليه البرنامج .

الدوال المناسبه من ملف المكتبه ثم يتم توصيلها للبرنامج بالموصل .

ومع ذلك فهي ليست نهاية القصه .

الدوال في ملف المصدر تحتاج ان تعرف اسم ونوع الدوال و العناصر الاخري في ملف المكتبه . فهي تحضر هذه المعلومات في الملف الرئيسي .

كل مف رئيسي يحتوي علي معلومات عن مجموعات خاصه من الدوال .

الدوال بنفسها جمعت مع بعضها في ملف مكتبه لكن المعلومات عنها وزعت في كل مكان في عدد من الملفات الرئيسيه .

الملف الرئيسي IOstream يحتوي علي معلومات دوال (I/O) المتنوعه و الاهداف و تحتوي علي Cout .

بينما الملف الرئيسي Cmath يحتوي علي معلومات عن الدوال الرياضيه كذلك مثل Sqrt( ) .

لو استخدمت دوال الجمل كذلك مثل Strcpy( ) فيجب عليك ان تتضمن String.h وهكذا.

الشكل رقم (12) يوضح العلاقه بين الملفات الرئيسيه و ملفات المكتبات للملفات الاخري المستخدمه في تطوير البرنامج .

استخدام الملف الرئيسي هو الشائع في ال C++ .

عندما تستخدم مكتبة الدوال او الاهداف ( الكائنات ) قبل التعريف او المعامل ستحتاج لاستخدام الملف الرئيسي و الذي يحتوي علي تصاريح مناسبه .

post-14-1104011497_thumb.jpg

تم تعديل هذه المشاركة بواسطة البارودي في 26 ديسمبر 2004 في 00:51

هذا الموضوع مغلق.

مواضيع مشابهة