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

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

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

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


    معناه : التركيب structure

    عبد الواسع عمر الرمانه
    عبد الواسع عمر الرمانه
    طالب لا يضاها
    طالب لا يضاها

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

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

    معناه : التركيب structure Empty معناه : التركيب structure

    مُساهمة من طرف عبد الواسع عمر الرمانه في السبت نوفمبر 21, 2009 9:48 pm

    معناه : التركيب structure معناه ان تضع مجموعة من البيانات التى تختلف فى النوع معاً. بحيث يمكن التعامل معها كوحدة واحدة أو يمكن التعامل مع العناصر المفردة داخلها.
    - ومن اهم التطبيقات فى عالم البرامج ( تطبيقات قواعد البيانات ). فمثلا لكتابة برنامج تسجيل بيانات الموظفين فى الشركة التى تعمل فى هذه الحالة انت تحتاج الى تخزين :
    · اسم الموظف وعنوان ( سلسلة حروف من نوع char )
    · سن الموظف ( عدد صحيح int )
    · راتب الموظف ( عدد ذو علامة عشرية float )
    فى هذه الحالة نقوم بعمل تركيب structure يضم هذه العناصر سوياً كوحدة واحدة. وبعد ذلك سوف نتمكن من التعامل مع هذه البيانات المختلفة كوحدة واحدة او نتعامل مع كل عنصر فيها على حدة

    * الاعلان عن التركيب :-
    عندما ترغب فى الاعلان عن تركيب جديد أتبع الصيغة التالية :-
    FPRIVATE "TYPE=PICT;ALT="
    وكلمة struct من الكلمات الاساسية فى لغة C
    · إذا رغبت فى عمل تركيب ليحمل بيانات الموظفين :-
    struct employee
    {
    char name[40];
    char address[40];
    int age;
    float salary;
    };- التركيب employee يعتبر ( وصفه ) نعطيها للمترجم حتى يتعرف على نوع التركيب وحجمه
    - عندما ترغب فى استخدام التركيب فعلاً يجب ان تعلن عن متغير من نفس النوع مثل:
    struct employee emp1;- أصبح لدينا المتغير emp1 وسيقوم المترجم بحجز الذاكرة له حسب ( الوصفة ) السابقة وبالتالى سيكون حجم emp1 يساوى 86 byte ويتكون من اربعة عناصر هى :-
    *
    الاسم (40 byte ) * العنوان (40 byte ) * العمر (2 byte ) * المرتب (4 byte )

    * استخدام التركيب :-
    -
    للتعامل مع اى عنصر داخل التركيب أذكر اسم التركيب ثم حرف النقطة ثم اسم العنصر داخل التركيب مثلاً : emp1.age
    - وإذا أردت ان تضع الرقم 30 فى المتغير age الموجود فى التركيب نكتب التالى : emp1.age=30;
    - كذلك إذا أردت ان تنقل القيمة الموجودة فى العنصر الى متغير آخر اكتب : a.emp1.salary;
    - كذلك يمكن ان تمرر عناصر التركيب إلى إجراءات مكتبة التشغيل كما نفعل مع المتغيرات الأخرى مثل : gets(emp1.name); هنا نستدعى الإجراء gets ليقرأ سلسلة حروف من لوحة المفاتيح ويضعها فى المتغير name الموجود داخل التركيب emp1
    * البرنامج التالى يوضح كيفية الإعلان عن التركيبات واستخدامها :-
    كود:
    # include
    void main(void)
    {
    struct employee
    {
    char name[40];
    char address[40];
    int age;
    float salary;
    }
    كود:

    struct employee emp1;
    printf(“ enter name :”);
    gets(emp1.name);
    printf(“enter address: “);
    gets(emp1.address);
    printf(“ enter age : “);
    scanf(“%d”, &emp1.age);
    pruntf(“enter salary : “ );
    scanf(“%d”,&emp1.salary);
    printf(“\n\n you entered: \n “;
    printf(“ employee name :\t%s\n “, emp1.name);
    printf(“ employee address :\t%s\n “, emp1.address);
    printf(“ employee age :\t%d\n “, emp1.age);
    printf(“ employee salary :\t%f\n “, emp1.salary);
    }
    * مصفوفات من التركيبات *
    - لكى نعلن عن مصفوفة من التركيبات يجب أن تعلن عن التركيب أولاً ثم نعلن عن المصفوفة
    - مثلاً لو أردنا تخزين 100 موظف
    struct employee
    {
    char namr[40];
    char address[40];
    int age;
    float salary;
    };
    struct employee emp[100]- هنا اعلانا عن التركيب employee ثم اعلنا عن المصفوفة emp التى تتسع لتخزين معلومات عن 100 موظف
    - بعد ذلك عند التعامل مع احد التركيبات فى المصفوفة فأنك تذكر رقمه داخل المصفوفة أولاً.
    - فمثلاً إذا أردنا ان تدخل بيانات الموظف الخامس فى المصفوفة نكتب emp[4].age=35;
    - كذلك emp[count].salary = 123.5 هنا نشير الى رقم التركيب داخل المصفوفة باستخدام المتغير count

    *
    البرنامج الآتي يعطى مثالاً على كيفية إنشاء مصفوفة من التركيبات والتعامل مع العناصر المختلفة فيها :-
    كود:
    #inclide
    #include
    #include
    #define max 10 //
    عدد الكتب
    void main(void)
    {
    struct booktag
    {
    char title[40];
    char author[40];
    int pages;
    int year;
    char edition;
    };
    struct bootag book[max]; //
    مصفوفة الكتب
    int c ,c1 , result;
    char temp[10];
    //
    أبدأ فى استقبال المعلومات من المستخدم
    for(c = 0 ; c < max ; c++)
    {
    printf(“ enter data for record no[%d]\n “m c+1);
    printf(“ or enter \ “ quit \ “ to end \n\n”;
    printf”enter title : “ );
    gets(boo[c].title);
    /*
    إذا كتب المستخدم كلمة (خروج) فإننا نخرج من التكرار
    result = strcmp (book[c].title,”quit”);
    if (result = = 0 )
    break;
    printf(“enter author : “);
    gets(book[c].author);
    printf(“enter number of pages : “ );
    gets(temp);
    book[c].pages = atoi(temp);
    printf(“enter year of publication : “ );
    gets(temp);
    book[c].year = atoi(temp);
    printf(“enter edition : “ );
    gets(temp);
    book[c].edition = atoi(temp);
    }
    //
    اطبع المعلومات
    printf(“record no. %d\n:, c1++);
    printf(“book title : \t\%\n “, book[c1].title);
    printf(“ book author : \t%d\n”, book[c1].author);
    printf(“no of pages :\t%d \n “, book[c1].pages);
    printf(“date of pub. \t%d\n”,book[c1].year);
    printf(“edition : \t%d\n\n “,book[c1].edition);
    }
    ** ملاحظات على البرنامج **
    - هذا البرنامج ينشئ مصفوفة باسم book تستخدم لتخزين المعلومات عن الكتب فى مكتبة ما
    - البرنامج يتوقف ليسأل المستخدم عن المعلومات الخاصة بكل كتاب ثم تخزن هذه المعلومات فى المصفوفة ثم طباعة هذه المعلومات
    فى بداية البرنامج نعلن عن التركيب booktag الذى سيستخدم لحمل بيانات الكتب - هذا التركيب يتكون من خمسة عناصر هى :-
    *
    العنوان * المؤلف * عدد الصفحات * سنة النشر * الطبعة
    - بعد ذلك نعلن عن مصفوفة مكونة من 10 تركيبات struct booktag boo[max]
    - بعد ذلك نستخدم التكرار for لإدخال المعلومات الخاصة بالكتب من المستخدم ويستمر ذلك حتى يدخل المستخدم معلومات خاصة بـ 10 كتب او يدخل كلمة quit للخروج بدلاً من عنوان الكتاب
    - لذلك عندما نطلب من المستخدم غدخال عنوان الكتب نقارن ما ادخله بكلمة quit فغن ادخل هذه الكلمة فإننا نستخدم كلمة break لنخرج من التكرار
    result = strcmp(book[c].title , “quit”);
    if(result = = 0
    break;
    - فهنا نستدعى الإجراء strcmp ليقارن العنوان بكلمة quit فإذا كانا متطابقين فإن الإجراء strcmp سيعود بالقيمة صفر ويضعها فى المتغير result وبذلك نخرج من التكرار fot

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

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

    معناه : التركيب structure Empty رد: معناه : التركيب structure

    مُساهمة من طرف مأمون المفلحي في الأحد نوفمبر 22, 2009 12:09 pm

    مشكور يا أستاذ عبدالواسع ع الدرس الجميل ...وانا كمان معايا دروس حلوه عن هذا الموضوع ...
    وانشاءالله بحطها ....
    تحياتي


    _________________
    معناه : التركيب structure Alfaris_net_1264365618
    الحيـــــــــــــــــــــاة دمعـتان .. دمعــة لقاء ودمعــة وداع .. والأصعب من ذلك دمعة لقاء بعد الفــــــــــــراق...!!!
    مجـ(الـقـلـب)ـروح
    مجـ(الـقـلـب)ـروح
    طالب لا يضاها
    طالب لا يضاها

    ذكر
    عدد الرسائل : 1192
    العمر : 32
    البلد : عالم جروحي
    القسم والمستوى : أول جرح
    المزاج : هدوووء شقاوة &lt; ^-^
    أختر علم دولتك : معناه : التركيب structure Female10
      : معناه : التركيب structure 15781610
    السٌّمعَة : 0
    نقاط : 1273
    تاريخ التسجيل : 11/01/2010

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

    معناه : التركيب structure Empty رد: معناه : التركيب structure

    مُساهمة من طرف مجـ(الـقـلـب)ـروح في السبت أبريل 03, 2010 1:48 am

    والله انا مفكر اني ادخل حاسوب ..
    بس احس اني بديت اغير رأي هههههههههههههههههه ..
    لا ان شاء الله لم يتعلم الواحد على هيك حاجات ..
    بيفهم ..
    مجهـود رائع ..
    تقبل مروري يافديتك
    avatar
    غمدان نبيل عبدالعزيز
    عضو جديد
    عضو جديد

    ذكر
    عدد الرسائل : 2
    العمر : 33
    البلد : اليمن
    القسم والمستوى : الحاسب الآلي-المستوى الأول
    المزاج : رايق
    أختر علم دولتك : معناه : التركيب structure Female10
      : وجودك بحياتي
    السٌّمعَة : 0
    نقاط : 2
    تاريخ التسجيل : 28/02/2012

    معناه : التركيب structure Empty رد: معناه : التركيب structure

    مُساهمة من طرف غمدان نبيل عبدالعزيز في السبت مارس 31, 2012 4:32 am

    ماشاء الله الموضوع مره حلو جزاك الله الف خير اخي......

      الوقت/التاريخ الآن هو الإثنين نوفمبر 23, 2020 11:10 am