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

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

مغلق
بدأه Snack3r في 9 سبتمبر 2012 · 4 رد · 777 مشاهدة · في اختبر قداراتك
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

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

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

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

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

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

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

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

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

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

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

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

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

لا شك أن أصدقاء السي++ متذمرون جدا من حلقات هذه السلسلة :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.affiche();

    return 0;
}

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

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

#2

يمنع استخدام الكومبايلر = إجاباتي ستكون مجرد تخمين في الأشياء التي لم يسبق التعامل معها :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

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

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

[سبحان الله و بحمده, سبحان الله العظيم]

#3

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

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

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

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

#4

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

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

** 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).
  • بقي كائنين في الجدول لم يتم إسناد قيم ابتدائية لهم و بالتالي سيتم استدعاء دالة البناء التي لا تستقبل أية وسائط.
#5

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

يُغلق.

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

تم تعديل هذه المشاركة بواسطة أحمد الشنقيطي في 10 سبتمبر 2012 في 23:18 — السبب: إضافة الرابط.

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

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