ahmed.o.mohamed

اختبر قدراتك في C/CPP - الحلقة الرابعة, الجزء الأول

5 ردود في هذا الموضوع

السلام عليكم

الحلقة الأولى.

الحلقة الثانية - الجزء الأول.

الحلقة الثانية - الجزء الثاني.

الحلقة الثانية - الجزء الثالث.

الحلقة الثانية - الجزء الرابع.

الحلقة الثانية - الجزء الخامس.

الحلقة الثانية - الجزء السادس و الأخير.

الحلقة الثالثة - الجزء الأول.

الحلقة الثالثة - الجزء الثاني.

الحلقة الثالثة - الجزء الثالث.

الحلقة الثالثة - الجزء الرابع.

الحلقة الثالثة - الجزء الخامس و الأخير.

مرحبا بكم إخوتي الكرام في الجزء الأول من الحلقة الرابعة من سلسلة اختبر قدراتك, قمتُ بتقسيم الحلقة الرابعة إلى عدة أجزاء, مُرتبة حسب الصعوبة.

لا شك أن أصدقاء السي++ متذمرون جدا من حلقات هذه السلسلة :D لأننا لم نتعرض بعد بشكل مباشر لمواضيع البرمجة الكائنية التوجه :P

لذا, قررتُ أن أعتذر لعشاق C++ و أعدهم أيضا أن هذه الحلقة ستكون الأكثر أجزاءاً إن شاء الله :)

نبدأ بسؤال بسيط جدا, لكي يُشاركنا الجميع :happy:

الإختبار الرابع (الجزء الأول) :

ما هي الأخطاء التي يحتوي عليها الكود التالي, علل إجابتك ! (يُمنع استخدام الــ Compiler)

#include <iostream>
using namespace std;

class point {
int x, y;
public:

point() {
x = 0;
y = 0;
cout << "** constructeur 0 argument" << endl;
}

point(int abs) {
x = abs;
y = 0;
cout << "** constructeur 1 argument" << endl;
}

point(int abs, int ord) {
x = abs;
y = ord;
cout << "** constructeur 2 arguments" << endl;
}

point(point & p) {
x = p.x;
y = p.y;
cout << "**constructeur par recopie" << endl;
}

void affiche() {
cout << "point de coordonnees : " << x << " " << y << endl;
}
};

int main() {
point a(10, 20);
point b(30, 40);
point courbe[6] = {4, a, 0, b};

for (int i = 0; i < 6; i++)
courbe[i].affiche();

return 0;
}

صحح الأخطاء ثم خَـمـِّـنْ مُخرجات الكود.

سأضع حل السؤال بعد إنتهاء عرض المحاولات.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يمنع استخدام الكومبايلر = إجاباتي ستكون مجرد تخمين في الأشياء التي لم يسبق التعامل معها :huh:

محاولة/

تصحيح الخطأ:

point courbe[6] = {4, a, 2, b};

مخرجات الكود:

** constructeur 2 arguments
** constructeur 2 arguments
**constructeur par recopie
**constructeur par recopie
**constructeur par recopie
**constructeur par recopie
**constructeur par recopie
**constructeur par recopie
point de coordonnees : 10 20
point de coordonnees : 10 20
point de coordonnees : 10 20
point de coordonnees : 10 20
point de coordonnees : 30 40
point de coordonnees : 30 40

حسنا, لا تضحك على المحاولة, السطر الذي ما مر علي من قبل توقعت يكون فيه الخطأ

في انتظار الحل الصحيح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بسم الله الرحمن الرحيم

أظن أن هناك خطأ واحد فقط ...وهو هنا :

point courbe[6] = {4, a, 0, b};

حيث أن المصفوفة هي للكائنات وليست للأعداد الصحيحة ...يمكن أن نصحح ذلك بكتابة هذا بدلاً منه :

point courbe[6] ;
courbe[0]=4;
courbe[1]=a;
courbe[3]=b;

وستكون مخرجات الكود هي :

point de coordonnees : 4 0
point de coordonnees : 10 20
point de coordonnees : 0 0
point de coordonnees : 30 40
point de coordonnees : 0 0
point de coordonnees : 0 0

والسلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الخطأ اكتشفه الأخ مصطفى و لكنه لم يذكر المخرجات بشكل كامل :)

المُخرجات الكاملة هي :

** constructeur 2 arguments // construction (classique) de a

** constructeur 2 arguments // construction (classique) de b

** constructeur 1 argument // construction courbe[0]

**constructeur par recopie // construction courbe[1]

** constructeur 1 argument // construction courbe[2]

**constructeur par recopie // construction courbe[3]

** constructeur 0 argument // construction courbe[4]

** constructeur 0 argument // construction courbe[5]

point de coordonnees : 4 0

point de coordonnees : 10 20

point de coordonnees : 0 0

point de coordonnees : 30 40

point de coordonnees : 0 0

point de coordonnees : 0 0

فكرة السؤال تكمن في إنشاء مصفوفة تحوي 6 كائنات من الفئة point, يتم إنشائهم كالآتي :

  • استدعاء دالة البناء ذات وسيط واحد (بالنسبة لــ 4).
  • استدعاء دالة البناء التي تسقبل كائن من نوع point (بالنسبة لــ a).
  • استدعاء دالة البناء ذات وسيط واحد (بالنسبة لــ 0).
  • استدعاء دالة البناء التي تسقبل كائن من نوع point (بالنسبة لــ b).
  • بقي كائنين في الجدول لم يتم إسناد قيم ابتدائية لهم و بالتالي سيتم استدعاء دالة البناء التي لا تستقبل أية وسائط.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تم منح النقاط للمشاركات المفيدة و حذف الردود الغير مفيدة, حفاظا على تنسيق الموضوع.

يُغلق.

أراكم في الجزء الثاني من الحلقة الرابعة.

تم تعديل بواسطه أحمد الشنقيطي
إضافة الرابط.
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .