نكشات البرمجة 3

كل ما يتعلق بمادة البرمجة 3 من استفسارات و مناقشات و محاضرات...........

المشرف: STEEV

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة $ M.Y.T $ » الاثنين يناير 10, 2011 10:32 pm

الملكي1 كتب:
ابو حميد لا تجنني .. إذا كان ( dq1.end هوي العنصر بعد الاخير .. كيف عم يقبل يطبعو عندك ؟؟؟ باول تعليمة


سلامتك من الجنان فراسو :iok:

بيطبع قيمة عشوائية يلي هي قيمة موجودة بالذاكرة بمكان غير محجوز

بس الـ 2008 ما بيقبلها ويمكن بيطلع رن تايم .. اما 6 ففهمان بيقبلها :wink2:
قال تعالى:
"ما يفعلُ اللهُ بِعذابِكُمْ إنْ شَكَرتُمْ وآمنتُم وكانَ اللهُ شَاكِراً عَليمَاْ"


مدونتـــــي
صورة العضو الشخصية
$ M.Y.T $
عضو فعال
عضو فعال
 
مشاركات: 989
اشترك في: الأحد سبتمبر 27, 2009 8:23 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة feras alkasar » الثلاثاء يناير 11, 2011 1:21 am

ليش هاد غلط
CODE: تحديد الكل
void main()
{
   Dad d;
   Son s();
   s.print();
}
صورة العضو الشخصية
feras alkasar
عضو فعال
عضو فعال
 
مشاركات: 662
اشترك في: الخميس أكتوبر 01, 2009 5:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: ذكاء صنعي

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة feras alkasar » الثلاثاء يناير 11, 2011 1:32 am

اذا عنا هاد ال class

CODE: تحديد الكل
class Dad
{
public:
   Dad(int x)
   {cout<<"constructr Dad"<<endl;}
};


اذا حطينا بال main
CODE: تحديد الكل
Dad d;

compiler error

أما اذا حطينا
CODE: تحديد الكل
   Dad d(3);
   //OR
   Dad d1();

شغال نظامي
صورة العضو الشخصية
feras alkasar
عضو فعال
عضو فعال
 
مشاركات: 662
اشترك في: الخميس أكتوبر 01, 2009 5:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: ذكاء صنعي

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة MhdSyrwan » الثلاثاء يناير 11, 2011 1:46 am

يفترض هاد ما يشتغل
CODE: تحديد الكل
  Dad d1();

طبعاً هو شغال بس الكائن d1 ما بعود instance of Dad ولكنه يصبح instance of __cdecl*(void)‎
لا حول ولا قوة إلا بالله


صورة العضو الشخصية
MhdSyrwan
عضو فعال
عضو فعال
 
مشاركات: 506
اشترك في: الأحد أكتوبر 04, 2009 11:28 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة *virus* » الثلاثاء يناير 11, 2011 2:21 am

feras alkasar كتب:اذا عنا هاد ال class

CODE: تحديد الكل
class Dad
{
public:
   Dad(int x)
   {cout<<"constructr Dad"<<endl;}
};


اذا حطينا بال main
CODE: تحديد الكل
Dad d;

compiler error

أما اذا حطينا
CODE: تحديد الكل
   Dad d(3);
   //OR
   Dad d1();

شغال نظامي

بالاضافة ليلي قالو MHD في ملاحظة كتير هامة :
قاعدة :
لما بتعرف باني مو افتراضي ، وبدك تسمح للمستخدم يعرف instance بدون ما يحط أي argument بهالحالة لازم تعرّف باني افتراضي .
(هي تفسير ال compiler error :ism: ) .
. Under the injection
صورة

Last Chance
صورة
صورة العضو الشخصية
*virus*
متميز لعامنا الثالث
متميز لعامنا الثالث
 
مشاركات: 612
اشترك في: السبت أكتوبر 03, 2009 1:24 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: غير ذلك

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة AbuHammzah » الثلاثاء يناير 11, 2011 12:44 pm

*virus* كتب:
feras alkasar كتب:اذا عنا هاد ال class

CODE: تحديد الكل
class Dad
{
public:
   Dad(int x)
   {cout<<"constructr Dad"<<endl;}
};


اذا حطينا بال main
CODE: تحديد الكل
Dad d;

compiler error

أما اذا حطينا
CODE: تحديد الكل
   Dad d(3);
   //OR
   Dad d1();

شغال نظامي

بالاضافة ليلي قالو MHD في ملاحظة كتير هامة :
قاعدة :
لما بتعرف باني مو افتراضي ، وبدك تسمح للمستخدم يعرف instance بدون ما يحط أي argument بهالحالة لازم تعرّف باني افتراضي .
(هي تفسير ال compiler error :ism: ) .


تامر كان ناوي ينزل هالنكشة مبارح المسا.. :mrgreen: Dial UP :mrgreen: :mrgreen:
AbuHammzah
مشرف منتدى السوفتوير و البرمجيات
مشرف منتدى السوفتوير و البرمجيات
 
مشاركات: 578
اشترك في: السبت ديسمبر 12, 2009 2:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: متخرج

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة *virus* » الثلاثاء يناير 11, 2011 2:14 pm

AbuHammzah كتب:
*virus* كتب:
feras alkasar كتب:اذا عنا هاد ال class

CODE: تحديد الكل
class Dad
{
public:
   Dad(int x)
   {cout<<"constructr Dad"<<endl;}
};


اذا حطينا بال main
CODE: تحديد الكل
Dad d;

compiler error

أما اذا حطينا
CODE: تحديد الكل
   Dad d(3);
   //OR
   Dad d1();

شغال نظامي

بالاضافة ليلي قالو MHD في ملاحظة كتير هامة :
قاعدة :
لما بتعرف باني مو افتراضي ، وبدك تسمح للمستخدم يعرف instance بدون ما يحط أي argument بهالحالة لازم تعرّف باني افتراضي .
(هي تفسير ال compiler error :ism: ) .


تامر كان ناوي ينزل هالنكشة مبارح المسا.. :mrgreen: Dial UP :mrgreen: :mrgreen:

يعني هية لاتعتبر نكشة ، بس كتير ضرورية ..
حظ أوفر ... :ism:
. Under the injection
صورة

Last Chance
صورة
صورة العضو الشخصية
*virus*
متميز لعامنا الثالث
متميز لعامنا الثالث
 
مشاركات: 612
اشترك في: السبت أكتوبر 03, 2009 1:24 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: غير ذلك

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة Mr.TAMER » الثلاثاء يناير 11, 2011 2:39 pm

السلام عليكم

من بعد إذنك ياسر :ism: ، ولكن علي أن أكرر ما كتبته أنت لأنني أعطيت معلومات خاطئة وعلي تصحيحها :

بخصوص الباني الافتراضي، كنت قد قُلت بأن الباني الافتراضي ينشئه المترجم في حال كان غير موجود، ولا ينشئه فقط إذا كان موجوداً، وهذا خاطئ :

القاعدة هي (في كلا النسختين Visual C++ 6.0 و Visual Studio 2008) :

إذا قمنا بكتابة أي باني (أياً كانت الوسطاء التي يستقبلها، أي سواء أكان بانياً افتراضياً أم ناسخاً أو غيرهما)، فإن المترجم لن يقوم بإنشاء بانٍ افتراضي.

أما إذا لم نقم بكتابة أي بانٍ، فإن المترجم سيقوم بإنشاء بانٍ افتراضي.

آسف ممن قلت لهم خلاف ذلك، وشكراً لمحمد السيروان MHD على تنبيهي لهذه الملاحظة.

مثال : هنا لم نقم بتعريف أي بانٍ للكلاس A، لذلك سيقوم المترجم بإنشاء بانٍ افتراضي ولن يظهر أي خطأ (ولكن سيظهر تحذير) :
CODE: تحديد الكل
class A
{
private:
   int i;
};

void main()
{
   A a;
}


مثال 2 : هنا سنقوم بتعريف بانٍ للكلاس A، ولذلك لن يقوم المترجم بتعريف بانٍ افتراضي، وعند استدعاء الباني الافتراضي في تعريف object في الـ main سيظهر المترجم خطأً :
CODE: تحديد الكل
class A
{
public:
   A(int val)
   {
      i = val;
   }
private:
   int i;
}
void main()
{
   A a;   // compiler error C2512: 'A' : no appropriate default constructor available
}


والسلام عليكم ورحمة الله تعالى وبركاته.
Volunteer at Wikilogia

Member of WikiTechie

Contributor in Wiki ITE... Let's open-source our university

All with Proud & Pleasure :)
صورة العضو الشخصية
Mr.TAMER
عضو فعال
عضو فعال
 
مشاركات: 721
اشترك في: الجمعة يناير 01, 2010 12:46 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة sema » الثلاثاء يناير 11, 2011 3:15 pm

Mr.TAMER كتب:

مثال 2 : هنا سنقوم بتعريف بانٍ للكلاس A، ولذلك لن يقوم المترجم بتعريف بانٍ افتراضي، وعند استدعاء الباني الافتراضي في تعريف object في الـ main سيظهر المترجم خطأً :
CODE: تحديد الكل
class A
{
public:
   A(int val)
   {
      i = val;
   }
private:
   int i;
}
void main()
{
   A a;   // compiler error C2512: 'A' : no appropriate default constructor available
}


والسلام عليكم ورحمة الله تعالى وبركاته.

هنا ما الحل لو كان بين القوسين ما قي A(int ) متحول هون بصير صح وبيستدعي الافتراضي
اخيرااااااااااااااااااااااا تانية
صورة العضو الشخصية
sema
عضو فعال
عضو فعال
 
مشاركات: 349
اشترك في: الأربعاء نوفمبر 11, 2009 9:14 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثانية
الاختصاص: غير ذلك

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة Mr.TAMER » الثلاثاء يناير 11, 2011 3:18 pm

sema كتب:
Mr.TAMER كتب:

مثال 2 : هنا سنقوم بتعريف بانٍ للكلاس A، ولذلك لن يقوم المترجم بتعريف بانٍ افتراضي، وعند استدعاء الباني الافتراضي في تعريف object في الـ main سيظهر المترجم خطأً :
CODE: تحديد الكل
class A
{
public:
   A(int val)
   {
      i = val;
   }
private:
   int i;
}
void main()
{
   A a;   // compiler error C2512: 'A' : no appropriate default constructor available
}


والسلام عليكم ورحمة الله تعالى وبركاته.

هنا ما الحل لو كان بين القوسين ما قي A(int ) متحول هون بصير صح وبيستدعي الافتراضي

لو لم يكن هنالك int Val بين القوسين لكان هذا الباني هو الباني الافتراضي. ولاستدعاه بدون أي خطأ :iok:
Volunteer at Wikilogia

Member of WikiTechie

Contributor in Wiki ITE... Let's open-source our university

All with Proud & Pleasure :)
صورة العضو الشخصية
Mr.TAMER
عضو فعال
عضو فعال
 
مشاركات: 721
اشترك في: الجمعة يناير 01, 2010 12:46 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة feras alkasar » الثلاثاء يناير 11, 2011 3:26 pm

طيب يا حزركون هاد صح لما خطأ

CODE: تحديد الكل
class Dad
{
public:
   Dad(int x)
   {cout<<"c"<<endl;}
   void print()
   {cout<<"Dad"<<endl;}
};

class Son:public Dad
{
public:
   Son():Dad(3)
   {cout<<"const Son"<<endl;}
   virtual void print1()
   {cout<<"Son"<<endl;
   }
};
صورة العضو الشخصية
feras alkasar
عضو فعال
عضو فعال
 
مشاركات: 662
اشترك في: الخميس أكتوبر 01, 2009 5:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: ذكاء صنعي

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة Mr.TAMER » الثلاثاء يناير 11, 2011 3:29 pm

feras alkasar كتب:طيب يا حزركون هاد صح لما خطأ

CODE: تحديد الكل
class Dad
{
public:
   Dad(int x)
   {cout<<"c"<<endl;}
   void print()
   {cout<<"Dad"<<endl;}
};

class Son:public Dad
{
public:
   Son():Dad(3)
   {cout<<"const Son"<<endl;}
   virtual void print1()
   {cout<<"Son"<<endl;
   }
};

هذا الكود صحيح، لا يوجد فيه أي مشكلة :iok:
Volunteer at Wikilogia

Member of WikiTechie

Contributor in Wiki ITE... Let's open-source our university

All with Proud & Pleasure :)
صورة العضو الشخصية
Mr.TAMER
عضو فعال
عضو فعال
 
مشاركات: 721
اشترك في: الجمعة يناير 01, 2010 12:46 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة feras alkasar » الثلاثاء يناير 11, 2011 3:40 pm

Mr.TAMER كتب:
feras alkasar كتب:طيب يا حزركون هاد صح لما خطأ

CODE: تحديد الكل
class Dad
{
public:
   Dad(int x)
   {cout<<"c"<<endl;}
   void print()
   {cout<<"Dad"<<endl;}
};

class Son:public Dad
{
public:
   Son():Dad(3)
   {cout<<"const Son"<<endl;}
   virtual void print1()
   {cout<<"Son"<<endl;
   }
};

هذا الكود صحيح، لا يوجد فيه أي مشكلة :iok:


تمام نحن من خلال الوراثة حددنا ال constructr تبع الأب
لو ما حطينا
CODE: تحديد الكل
Son():Dad(3)

كان لح يعطي compiler error
أما لما حطيناها فنحن حددنا constructr الأب
صورة العضو الشخصية
feras alkasar
عضو فعال
عضو فعال
 
مشاركات: 662
اشترك في: الخميس أكتوبر 01, 2009 5:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: ذكاء صنعي

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة sniper13891 » الثلاثاء يناير 11, 2011 9:30 pm

اختصاصي STL :mrgreen:
1-
لما بنستخدم تابع الـ difference اي بياخد العناصر الموجودة بالأول ومانو موجود بالتاني
إذا كان في عنصرين متساويين وكان في عنصر مقابل الن بالتاني راح ياخد واحد مشابه ويضيف التاني للناتج
مثلاً البرنامج التالي :

CODE: تحديد الكل
const int SIZE1 = 11, SIZE2 = 5, SIZE3 = 20;
int a1[ SIZE1 ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 4 , 10 };
int a2[ SIZE2 ] = { 4, 5, 6, 7, 8 };
vector< int > v1( a1, a1 + SIZE1 );
vector< int > v2( a2, a2 + SIZE2 );
int difference[ SIZE1 ];
int *ptr = set_difference( v1.begin(), v1.end(), v2.begin(), v2.end(),difference );
cout << "\n\nset_difference of a1 and a2 is: ";
copy( difference, ptr, output );cout <<endl;


رح يكون الخرج
CODE: تحديد الكل
set_difference of a1 and a2 is: 1 2 3 9 4 10


ونفس الشي بالنسبة للـ set_symmetric_differenc
السبب لأنو هوة يفرض انو تنيناتن مرتبين فإذا حطينا بالبداية ال 5 وبعدين الـ 4 رح يطبع الأربعة الأولى والثانية
لأنو يعبر الأربعة تبع التاني بس يوصلا
الحياه قد تتعثر , و لكنها لا تتوقف
و الأمل قد يختفي , و لكن لا يموت ابداً
و الفرص قد تضيع , و لكنها لا تنتهي
و مهما ضاقت الدنيا عليك
تذكر أن فرج الله قريب

http://mhdaljobory.wordpress.com/
صورة العضو الشخصية
sniper13891
عضو جديد
عضو جديد
 
مشاركات: 244
اشترك في: الأربعاء سبتمبر 30, 2009 9:29 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Shift Operators

مشاركة غير مقروءةبواسطة MhdSyrwan » الأربعاء يناير 12, 2011 2:39 am

ما عمل هذا الـ << و >> على الـint
أي ما خرج الكود التالي ؟
CODE: تحديد الكل
cout << (1 << 2);
cout << (8 >> 1);


الخرج هو :
4
4

يقوم الـ >> بإزاحة بتات العدد إلى اليسار
يقوم الـ << بإزاحة بتات العدد إلى اليمين
لا حول ولا قوة إلا بالله


صورة العضو الشخصية
MhdSyrwan
عضو فعال
عضو فعال
 
مشاركات: 506
اشترك في: الأحد أكتوبر 04, 2009 11:28 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة adnan_khabbaz » الأربعاء يناير 12, 2011 10:41 am

في ملاحظة بالتحميل الزائد للعمليات ما بعرف إذا طرحت من قبل

وهي:
إذا ضمّنا تابع التحميل الزائد ضمن الصف على الشكل التالي
CODE: تحديد الكل
class test
{
public:
       test(int v){valu=v;}
       ostream & operator <<(ostream & output){
                output<<this->valu;
                return output;}
private:
      int valu;
};


فيكون الاستدعاء على الشكل

CODE: تحديد الكل
test t(4);
t<<cout;
<<إن الله لا يغير ما بقوم حتى يغيروا ما بأنفسهم>>
adnan_khabbaz
عضو جديد
عضو جديد
 
مشاركات: 90
اشترك في: الثلاثاء إبريل 13, 2010 10:58 am
مكان: دمشق
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة baha'a » الأربعاء يناير 12, 2011 10:55 am

adnan_khabbaz كتب:في ملاحظة بالتحميل الزائد للعمليات ما بعرف إذا طرحت من قبل


في التحميل الزائد إذا تم تعريف تابع التحميل الزائد ضمن الصف فيجب أن يكون الغرض على يسار الـ operator ولذلك حين نريد أن يكون الغرض على يمين الـ operator نقوم بتعريف توابع التحميل الزائد على شكل تابع global ونقوم بتعريفه كصديق للصف حتى نتمكن من كتابة التعليمة بالشكل المعتاد
CODE: تحديد الكل
cout << object


مجرد تعميم للقاعدة :)
ليس المهم ما أنت الآن
المهم ما ستكون يوم تقف بين يديه سبحانه

ستقف قريباً، صدقني
صورة العضو الشخصية
baha'a
عضو فعال
عضو فعال
 
مشاركات: 580
اشترك في: السبت ديسمبر 12, 2009 11:40 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: Shift Operators

مشاركة غير مقروءةبواسطة AbuHammzah » الأربعاء يناير 12, 2011 11:44 am

MHD كتب:ما عمل هذا الـ << و >> على الـint
أي ما خرج الكود التالي ؟
CODE: تحديد الكل
cout << (1 << 2);
cout << (8 >> 1);


الخرج هو :
4
4

يقوم الـ >> بإزاحة بتات العدد إلى اليسار
يقوم الـ << بإزاحة بتات العدد إلى اليمين


Bitwise Operators
هالمرة الرابط حلو :iok:

وفينك تقول:
The value of a right-shift expression x >> y is \frac{x}{2^y}, and the value of a left-shift expression x << y is x \times {2^y}.

MSDN
AbuHammzah
مشرف منتدى السوفتوير و البرمجيات
مشرف منتدى السوفتوير و البرمجيات
 
مشاركات: 578
اشترك في: السبت ديسمبر 12, 2009 2:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: متخرج

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة AbuHammzah » الأربعاء يناير 12, 2011 2:33 pm

تكملة لـ:
viewtopic.php?f=54&t=6642&start=180#p145254

بس حبيت وضح أكتر عن التعبير:
CODE: تحديد الكل
cout << x << x++ << ++x << x++ << x++ << x << x++;

بما أن cout على يسار العملية left-shift ستكون cout هي المعامل الأيسر لها، وسيتم تقدير الاستدعاء المتسلسلة على النحو التالي: (اختصرت operator إلى op )!
op<<(op<<(op<<(op<<(op<<(op<<(op<<(cout,x++),x),x++),x++),++x),x++),x)


وهيك رح يتم حساب آخر تعبير لأنو الأكثر عمقاً بالنسبة للأقواس، وهو راجع..
والـ cout بطريقة ما عم تجمّع النتائج!!!
AbuHammzah
مشرف منتدى السوفتوير و البرمجيات
مشرف منتدى السوفتوير و البرمجيات
 
مشاركات: 578
اشترك في: السبت ديسمبر 12, 2009 2:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: متخرج

Re: نكشات البرمجة 3

مشاركة غير مقروءةبواسطة MhdSyrwan » الأربعاء يناير 12, 2011 11:34 pm

السلام عليكم :
يوجد خطأ في سلايدات الـ STL صفحة 103
يتعلق بتابع acuumulate يفترض أن يكون بالشكل :
CODE: تحديد الكل
// for T = int
  int accumulate(iterator begin,iterator end,int zeroElem , int (*function) (int ax,int elem) )

الشرح :
zeroElem رقم يضاف إلى بداية المجموع
أما مؤشر التابع المذكور فهو افتراضياً (إذا لم نرسله) يكون كالتالي
CODE: تحديد الكل
int function(int ax,int elem)
{
   return ax + elem;
}

حيث ax متحول مراكم
و elem متحول العنصر الحالي
لمزيد من التفاصيل :
كود التابع accumulate الذي يوضح آلية عمله
CODE: تحديد الكل
int accumulate(iter _F, iter _L, int _V, int (*function) (int,int) _B)
{
   for (; _F != _L; ++_F)
      _V = function(_V, *_F);
   return (_V);
}
لا حول ولا قوة إلا بالله


صورة العضو الشخصية
MhdSyrwan
عضو فعال
عضو فعال
 
مشاركات: 506
اشترك في: الأحد أكتوبر 04, 2009 11:28 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

السابقالتالي

العودة إلى البرمجة 3

الموجودون الآن

المستخدمون المتصفحون لهذا المنتدى: لا يوجد أعضاء مسجلين متصلين و 1 زائر

cron