منتدى طلاب جامعة الحديدة

أخي الزائر إن لم تكن عضواً في المنتدى فنحن ندعوك لكي تنظم إلينا وشكراً تحيات مدير المنتدى طارق البغوي

انضم إلى المنتدى ، فالأمر سريع وسهل

منتدى طلاب جامعة الحديدة

أخي الزائر إن لم تكن عضواً في المنتدى فنحن ندعوك لكي تنظم إلينا وشكراً تحيات مدير المنتدى طارق البغوي

منتدى طلاب جامعة الحديدة

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


4 مشترك

    العلاقة بين المؤشرات والمصفوفات

    مأمون المفلحي
    مأمون المفلحي
    مستشار إداري
    مستشار إداري


    ذكر
    عدد الرسائل : 2676
    العمر : 37
    البلد : في كل حلم جميل
    القسم والمستوى : برمجة حاسوب
    المزاج : أحب الهــــدووووووووء والصراحة
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 13
    نقاط : 1666
    تاريخ التسجيل : 26/04/2008

    العلاقة بين المؤشرات والمصفوفات Empty العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف مأمون المفلحي الثلاثاء فبراير 17, 2009 11:46 am

    The Relation between Pointers and Arrays

    2-Arrays of Pointers
    -__


    1-العلاقة بين المؤشرات والمصفوفات

    هناك علاقة وثيقة بين المصفوفات والمؤشرات ويمكن استخدام احدهما للحلول مكان الاخر في معظم الحالات.

    لو تم التصريح عن مصفوفة لاعداد الصحيحة
    كود:
    b[5]
    وعن مؤشر كود:
    int * bPtr
    يمكن ان نضع في bPtr عنوان بداية المصفوفة بواسطة التعليمة التالية:
    كود:
    bPtr=b;
    وذالك لان اسم المصفوفة هو عبارة عن مؤشر على اول عنصر لها.
    تكافئ التعليمة السابقة التعليمة التالية:

    كود:
    bPtr = &b [0];
    الان اخذنا عنوان اول عنصر من عنصر المصفوفة بدلا من اسم المصفوفة.

    ويمكن التنقل بين عناصر المصفوفة بأاستخدام المؤشر (تسمى هذي العملية بي تعبير المؤشرات):
    كود:
    *(bPtr + 3)
    يدل الرقم 3 على مقدار الانزياح offset مقارنة بقيمة المؤشر.

    حيث تدل على العنصر
    كود:
    b[3]
    __________________________________________________
    ملاحظة مهمة:
    يمكن استخدام العمليات الحسابية مع المؤشرات لكن هناك اختلاف .فامثلا لو عنوان المؤشر في الذاكرة 2000 وهو من نوع الاعداد الصحيحة .فالعملية التالية 2000+2 طبيعا تساوي 2002 لكن في المؤشرات هذي النتيجة خاطئة
    تتم هذي المعادلة بالطريقة التالية
    كود:
    (2000+2*2)
    على ان الاعداد الصحيحة تخزن بالذاكرة في 2 بايت.
    __________________________________________________ __

    ويجب الانتباة لضرورة وجود القوسين وتصبح العبارة السابقة عند كتابتة بدون قوسين (اي نضيف 3 الى العنصر كود:
    b[0]
    )
    وعلى اعتبار انة يمكن استخدام عناصر المصفوفة ضمن تعابير المؤشرات فان العنوان :

    كود:
    &b[3]
    يمكن كتابتة بهذي الطريقة
    bPtr + 3

    وبما ان اسم المصفوفة عبارة عن عنوان اول عنصر من عناصرها يمكن ان نعاملها معاملة المؤشرات

    كود:
    *( b +3 )
    يعطي القيمة
    كود:
    b[3]
    بشكل عام يمكن الوصول الى اي عنصر من عناصر المصفوفة بأستخدام مؤشر مضاف الية مقدار الانزياح.

    ويمكن استخدام المؤشر مثل ما نفعل بالمصفوفات :

    كود:
    bPtr [1]
    يدل على العنصر
    كود:
    b[1]
    المثال التالي يستخدم الطرق الاربعة الي تكلمنا عنها


    كود:
    [
    int main()
    {
    int b[]= {10 ,20 ,30 ,40 };
    int *bPtr= b;

    cout<<"Array supscript \n";
    for (int i=0;i<4;i++)
    cout<<"b["<<i<<"] = "<<b[i]<<endl;
    cout<<"Pointer offset"<<endl;
    for (int i=0;i<4;i++)
    cout<<"*(b + "<<i<<" ) = "<<*(b + i)<<endl;
    cout<<"Pointer subscribt"<<endl;
    for (int i=0;i<4;i++)
    cout<<"bPtr ["<<i<<"] = "<<bPtr[i]<<endl;
    cout<<"Pointer offset\n";
    for (int i=0;i<4;i++)
    cout<<"*( bPtr + "<<i<<" ) = "<<*(bPtr +i)<<endl;


    system("PAUSE");
    return 0;
    }
    مأمون المفلحي
    مأمون المفلحي
    مستشار إداري
    مستشار إداري


    ذكر
    عدد الرسائل : 2676
    العمر : 37
    البلد : في كل حلم جميل
    القسم والمستوى : برمجة حاسوب
    المزاج : أحب الهــــدووووووووء والصراحة
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 13
    نقاط : 1666
    تاريخ التسجيل : 26/04/2008

    العلاقة بين المؤشرات والمصفوفات Empty رد: العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف مأمون المفلحي الثلاثاء فبراير 17, 2009 11:50 am

    نشووف المثاال اتالي


    كود:
    #include

    using namespace std;

    void copy1 (char *s1,const char *s2)
    {
    for (int i=0; s1[i] = s2[i];i++);//do nothing in body
    }

    void copy2 (char *s1,const char *s2)
    {
    for ( ; *s1 = *s2; s1++ , s2++ );
    }
    int main()
    {
    char string1[10], *string2 ="Hello",
    string3[10] , string4[] ="Good Bya";
    copy1(string1 , string2);
    cout<<"string1 = "<
    copy2(string3, string4);
    cout<<"string3 = "<
    system("PAUSE");
    return 0;
    }

    المثال التالي راح يوضح فكرررة المصفوفا والمؤشرات .

    نشووف التابعين copy1 و copy2
    تقووم بنسخ سلسلة الحروف في البرنامج.
    التابعين يقومان بنفس المهمة لكن مكتووبة بطريقة مختلفة ..

    يقوم التابع copy1 بااستخدام رموز أدلة المصفوفة لنسخ السلسلة s2 ضمن مصفوفة الحروف s1.
    يستخدم التابع copy2 المؤشرات وحسابات المؤشرات لنسخ السلسة s2 الى المصفوفة الحروف s1 .لو نشوف الجزء الرأسي للبنية for يقوم بتنفيذ عملية النسخ ولا يتضمن اعطاء اي قيمة ابتدائية .كماء في التابع copy1 يقوم الشرط

    كود:
    (*s1 = *s2) !='\0'
    وهو شرط الخرووج .
    عبد الواسع عمر الرمانه
    عبد الواسع عمر الرمانه
    طالب لا يضاها
    طالب لا يضاها


    ذكر
    عدد الرسائل : 1299
    العمر : 38
    البلد : اليمن
    القسم والمستوى : أستاد حاسوب
    المزاج : عسل+سكرزياده
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 5
    نقاط : 430
    تاريخ التسجيل : 14/10/2007

    بطاقة الشخصية
    تخصصي: حاسوب
    المحافظة: الحديدة

    العلاقة بين المؤشرات والمصفوفات Empty رد: العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف عبد الواسع عمر الرمانه الثلاثاء فبراير 17, 2009 7:26 pm

    مشكور الف الف شكر يأستاذ مامون المفلحي


    تسلم الايدي التى كتبت
    مأمون المفلحي
    مأمون المفلحي
    مستشار إداري
    مستشار إداري


    ذكر
    عدد الرسائل : 2676
    العمر : 37
    البلد : في كل حلم جميل
    القسم والمستوى : برمجة حاسوب
    المزاج : أحب الهــــدووووووووء والصراحة
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 13
    نقاط : 1666
    تاريخ التسجيل : 26/04/2008

    العلاقة بين المؤشرات والمصفوفات Empty رد: العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف مأمون المفلحي الأربعاء فبراير 18, 2009 12:14 pm

    نورت اخي الغالي عبدالواسع ...
    تسلم على توقيعك في صفحتي ....
    وردة الخريف
    وردة الخريف
    نائب المدير
    نائب المدير


    انثى
    عدد الرسائل : 1374
    العمر : 37
    البلد : اليمن
    القسم والمستوى : معلم حاسوب
    المزاج : ممتاز
    العضوية : 75
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 9
    نقاط : 586
    تاريخ التسجيل : 21/01/2008

    بطاقة الشخصية
    تخصصي: حاسوب
    المحافظة: الحديدة

    العلاقة بين المؤشرات والمصفوفات Empty رد: العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف وردة الخريف الأربعاء فبراير 18, 2009 8:30 pm

    شكراً لك أخ مأمون على هذا الموضوع الجميل والمفيد

    تقبل مروري
    مأمون المفلحي
    مأمون المفلحي
    مستشار إداري
    مستشار إداري


    ذكر
    عدد الرسائل : 2676
    العمر : 37
    البلد : في كل حلم جميل
    القسم والمستوى : برمجة حاسوب
    المزاج : أحب الهــــدووووووووء والصراحة
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 13
    نقاط : 1666
    تاريخ التسجيل : 26/04/2008

    العلاقة بين المؤشرات والمصفوفات Empty رد: العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف مأمون المفلحي الأربعاء فبراير 18, 2009 9:01 pm

    نورتي الصفحة اختي الغالية ...
    تسلمي ع المرور الرائع...
    ماجد العريفي
    ماجد العريفي
    إعلامي
    إعلامي


    ذكر
    عدد الرسائل : 681
    العمر : 37
    البلد : اليمن
    القسم والمستوى : خريج قسم معلم حاسوب
    المزاج : سكر
    العضوية : 15
    أختر علم دولتك : العلاقة بين المؤشرات والمصفوفات Female10
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 10
    نقاط : 198
    تاريخ التسجيل : 11/11/2007

    بطاقة الشخصية
    تخصصي: حاسوب
    المحافظة:

    العلاقة بين المؤشرات والمصفوفات Empty رد: العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف ماجد العريفي الخميس فبراير 19, 2009 6:02 am

    مشكوور أخي مأمون والله موضوع رائع
    تسلم والف شكر
    تحياتي
    مأمون المفلحي
    مأمون المفلحي
    مستشار إداري
    مستشار إداري


    ذكر
    عدد الرسائل : 2676
    العمر : 37
    البلد : في كل حلم جميل
    القسم والمستوى : برمجة حاسوب
    المزاج : أحب الهــــدووووووووء والصراحة
      : العلاقة بين المؤشرات والمصفوفات 15781610
    السٌّمعَة : 13
    نقاط : 1666
    تاريخ التسجيل : 26/04/2008

    العلاقة بين المؤشرات والمصفوفات Empty رد: العلاقة بين المؤشرات والمصفوفات

    مُساهمة من طرف مأمون المفلحي الخميس فبراير 19, 2009 1:45 pm

    هلا بالغائب ...نورت اخي ماجد والله لك وحشة داخل المنتدى ..
    تسلم ع المرور الجميل ياجميل...

      الوقت/التاريخ الآن هو الجمعة أبريل 26, 2024 8:55 am