صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 10 من 14
الموضوع:

برنامج الطابور C++

الزوار من محركات البحث: 3093 المشاهدات : 7708 الردود: 13
جميع روابطنا، مشاركاتنا، صورنا متاحة للزوار دون الحاجة إلى التسجيل ، الابلاغ عن انتهاك - Report a violation
  1. #1
    صديق جديد
    تاريخ التسجيل: April-2013
    الجنس: أنثى
    المشاركات: 23 المواضيع: 7
    صوتيات: 0 سوالف عراقية: 4
    التقييم: 4
    مزاجي: مزاجي متقلب دومآ لااحد يفهمني ولاحتى انا
    آخر نشاط: 26/June/2013
    مقالات المدونة: 3

    برنامج الطابور C++

    كود:
    #include <iostream.h>
    int queout(int,int);
    int que[10];
    main()
    
     int k,i,h,t;
     t=h=-1;
     i=0;
     cout<<"\n";
     cout<<"The head of your queueis..."<<h;
     cout<<"\nand the tailis..."<<t;
     cout<<"\n\n";
     k=1;
     while (k!=0) {
     cout<<"*********************************\n";
     cout<<"*****  operation on queue   *****\n";
     cout<<"*********************************\n";
     cout<<"**** 1- Adding to queue      ****\n";
     cout<<"**** 2- Deleting fromqueue  ****\n";
     cout<<"*********************************\n";
     cout<<"***<<<   entere 0 to end   >>>***\n";
     cout<<"*********************************\n\n";
     cout<<"choose one of theabove=";
     cin>>k;
     switch(k)
             {
              case 1: if (t-h+1==10)cout<<"\n===>>>the queue is full_ this case is[overflow]<<<===\n\n";
                                     else
                                              {
                                                    if((t==9) && (h!=0))
                                                            {
                                                             for (i=0;i<=t-h+1;++i) que[i]=que[h+i];
                                                             t=t-h;
                                                             h=0;
                                                             cout<<"t="<<t<<"h="<<h;
                                                             cout<<"\n";
                                                            }
                                                     if((t==-1) && (h==-1)) h=0;
                                                     cout<<"enter new item=";
                                                     t++;
                                                     cin>>que[t];
                                                     queout(h,t);
                                                    }
                                     break;
      case 2: if ((t==-1)&& (h==-1)) cout<<"\n===>>>the queue is nill_ thiscase is [underflow]<<<===\n\n";
                                     else
                                              {
                                                    que[h]=0;
                                                    h++;
                                                    if(h>t)
                                                            {
                                                             h=t=-1;
                                                             cout<<"===>>>the queue isnill<<<===\n";
                                                            }
                                                    elsequeout(h,t);
                                              }
                                      break;
             }
     }
    cout<<"\n***ending program ***";
    }
    
    intqueout(int h1,int t1)
    {
     int j;
     cout<<"\t       %%%%%%%%%%%%%\n\n";
     if ((h1==-1) && (t1==-1))cout<<"===>>>the queue is empty<<<===\n";
     else
                    {
                     cout<<"head=["<<h1<<"]";
                     for(j=h1;j<=t1;++j)
                            {
                             if (j==h1) cout<<"\t";
              else cout<<"\t\t";
                             cout<<"queue["<<j<<"]="<<que[j];
                             if (j==t1)cout<<"\ttail=["<<t1<<"]\n";
                             else cout<<"\n";
                            }
                    }
     cout<<"\n\t       %%%%%%%%%%%%%\n";
    }
    
    
    
    
    
    
    
    
    
    
    
    التعديل الأخير تم بواسطة Samer ; 21/April/2013 الساعة 4:30 pm السبب: تنسيق
    اخر مواضيعينصائح لرسم العيوننصائح كيفية اختيار المكياج المناسبصوره........انا فراشة حبيبيطريقه صيانه المذر بوردلاتعشقيني

  2. #2
    المدير الفني للموقع
    تاريخ التسجيل: January-2010
    الدولة: بغداد &
    الجنس: ذكر
    المشاركات: 17,392 المواضيع: 1,088
    صوتيات: 71 سوالف عراقية: 328
    التقييم: 9783
    مزاجي: روبوت
    المهنة: <dev></dev>
    أكلتي المفضلة: مربى وخبز &
    آخر نشاط: منذ 4 يوم
    الاتصال: إرسال رسالة عبر Yahoo إلى Samer
    مرحبا .. كشرح اضافي للفكرة من البرنامج (حسب فهمي) .. البرنامج يصنع طابور (queue ) بسيط، يمكنك (فقط) من إدخال قيم إلى الطابور، و حذف قيم من الطابور، بدون أي عملية أخرى، الطابور هو نوع من أنواع هياكل البيانات اللي يعتمد على فكرة (من يدخل أولا يخرج اولا) First IN FIRST OUT على عكس الـ Stack اللي يعتمد على مبدأ LAST IN FIRST OUT ،

    ما ركزت هواي بالبرنامج بس فكرة البرنامج جميلة للغاية على الرغم بساطتها ترتكز على تعريف دالة queout تقوم بالحقيقة بـ (معالجة الطابور) و ايضا تعريف المصفوفة que اللي تمثل الطابور نفسه ، و عبارة while اللي تتيح للمستخدم التحكم بمسار البرنامج (إدخال، اخراج، او خروج من البرنامج)

    تحياتي و شكري (روجينا)

  3. #3
    من المشرفين القدامى
    تاريخ التسجيل: July-2012
    الدولة: بغدادية الهوى
    الجنس: أنثى
    المشاركات: 2,734 المواضيع: 229
    صوتيات: 57 سوالف عراقية: 2
    التقييم: 3920
    أكلتي المفضلة: قورمة سبزي
    مقالات المدونة: 25
    تسلمين روجينا

  4. #4
    من المشرفين القدامى
    اقتباس المشاركة الأصلية كتبت بواسطة Samer مشاهدة المشاركة
    مرحبا .. كشرح اضافي للفكرة من البرنامج (حسب فهمي) .. البرنامج يصنع طابور (queue ) بسيط، يمكنك (فقط) من إدخال قيم إلى الطابور، و حذف قيم من الطابور، بدون أي عملية أخرى، الطابور هو نوع من أنواع هياكل البيانات اللي يعتمد على فكرة (من يدخل أولا يخرج اولا) First IN FIRST OUT على عكس الـ Stack اللي يعتمد على مبدأ LAST IN FIRST OUT ،

    ما ركزت هواي بالبرنامج بس فكرة البرنامج جميلة للغاية على الرغم بساطتها ترتكز على تعريف دالة queout تقوم بالحقيقة بـ (معالجة الطابور) و ايضا تعريف المصفوفة que اللي تمثل الطابور نفسه ، و عبارة while اللي تتيح للمستخدم التحكم بمسار البرنامج (إدخال، اخراج، او خروج من البرنامج)

    تحياتي و شكري (روجينا)
    طروحاتك واضافاتك مبرمجنا المبدع لا يعلى عليها تقديري واحترامي

  5. #5
    صديق جديد
    شرح عن برنامج الطابور........
    هناك ثلاث انواع من برنامج الqueue
    ﺍﻟﻨﻮﻉ ﺍﻻﻭﻝ ﻭﻫﻮ ﺍﻝ linear :
    ﻭﻫﻮ ﻛﻤﺎ ﺭﺍﻳﻨﺎ ﺍﻧﻪ ﻳﺘﻢ ﺍﺿﺎﻓﺔ ﺍﻟﻌﻨﺎﺻﺮ ﻋﻦ ﻃﺮﻳﻖ ﺍﻝ rear ﻭﺳﺤﺒﻬﺎ ﻋﻦ
    ﻃﺮﻳﻖ ﺍﻝ front ﻭﻟﻜﻦ ﻫﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ﺗﺎﺧﺬ ﻋﺪﺩ ﺍﺭﻗﺎﻡ ﻣﻌﻴﻦ ﻭﻫﻮ ﻋﻠﻰ ﺣﺠﻢ
    ﺍﻟﻤﺼﻔﻮﻓﺔ ﻓﻘﻂ .
    ﺍﻟﻨﻮﻉ ﺍﻟﺜﺎﻧﻲ ﻭﻫﻮ ﺍﻝ physical :
    ﻭﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻳﻘﻮﻡ ﺑﻨﻔﺲ ﺍﻟﺸﻲء ﻭﻟﻜﻦ ﻫﻨﺎ ﺍﻝ front ﻻ ﻳﺘﻐﻴﺮﺭ ﻣﻜﺎﻧﻬﺎ ﻭﺗﺒﻘﻰ
    ﺛﺎﺑﺘﺔ ﻃﻮﺍﻝ ﺍﻟﻮﻗﺖ ﺗﺎﺷﺮ ﻋﻠﻰ ﺍﻟﻌﻨﺼﺮ 0 ﻓﻌﻨﺪﻣﺎ ﻧﺮﻳﺪ ﺣﺬﻑ ﻋﻨﺼﺮ ﻧﺤﺬﻓﻪ
    ﻭﻟﻜﻦ ﺑﻘﻴﺔ ﺍﻟﻌﻨﺎﺻﺮ ﻛﻠﻬﺎ ﺗﺘﺤﺮﻙ ﺍﻟﻰ ﺍﻻﺳﻔﻞ ﺍﻱ ﺍﻧﻪ ﻳﺼﺒﺢ ﺍﻟﻌﻨﺼﺮ ﺭﻗﻢ
    ﻭﺍﺣﺪ ﻓﻲ 0 ﻭﺍﻟﻌﻨﺼﺮ ﺭﻗﻢ 2 ﻓﻲ ﻭﺍﺣﺪ ﻭﻫﻜﺬﺍ ﻃﺒﻌﺎ ﻫﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ﻣﻌﻘﺪﺓ ﻭﻏﻴﺮ
    ﻣﻔﻴﺪﺓ ﻭﺗﺄﺧﺬ ﻭﻗﺖ ﻃﻮﻳﻞ ﻋﻨﺪ ﺍﻟﺘﻨﻔﻴﺬ.
    ﺍﻟﻨﻮﻉ ﺍﻟﺜﺎﻟﺚ ﻭﻫﻮ ﺍﻝ circular :
    ﻭﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻧﻔﺲ ﻣﺒﺪﺃ ﺍﻝ linear ﻭﻟﻜﻨﻪ ﻋﻨﺪﻣﺎ ﺗﻤﺘﻠﺊ ﺍﻟﻤﺼﻔﻮﻓﺔ ﻓﺎﻥ ﺍﻝ
    rear ﻳﺮﺟﻊ ﻭﻳﺄﺷﺮ ﻋﻠﻰ ﺍﻟﻌﻨﺼﺮ 0 ﻭﻫﻜﺬﺍ ﺑﺎﺳﺘﻄﺎﻋﺘﻨﺎ ﺍﻥ ﻧﺪﺧﻞ ﺍﻟﻌﺪﺩ ﺍﻟﺬﻱ
    ﻧﺮﻳﺪﻩ ﻣﻦ ﺍﻻﺭﻗﺎﻡ ﻭﻟﻜﻦ ﻃﺒﻌﺎ ﻋﻨﺪﻣﺎ ﻳﻌﻴﺪ ﻣﻦ ﺍﻝ 0 ﻭﻧﺒﺪﺍ ﺑﺎﺩﺧﺎﻝ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻓﺎﻧﻪ
    ﺳﻮﻑ ﻳﺘﻢ ﻭﺿﻊ ﺍﻟﻘﻴﻢ ﻣﻜﺎﻥ ﺍﻟﻘﻴﻢ ﺍﻟﺘﻲ ﻛﺎﻧﺖ ﻣﻮﺟﻮﺩﺓ
    ﻭﻫﺬﺍ ﺍﻟﻨﻮﻉ ﻫﻮ ﺍﺣﺴﻦ ﻧﻮﻉ ﻣﻦ ﺍﻝ queue ﻋﻠﻰ ﺷﻜﻞ ﻣﺼﻔﻮﻓﺎﺕ. 
    30
    ﻭﻓﻲ ﺍﻝ queue ﻧﺤﺘﺎﺝ ﺍﻟﻰ ﺩﺍﻟﺔ ﻣﻦ ﺍﺟﻞ ﺍﻥ ﻧﻘﻮﻡ ﺑﻌﻤﻠﻴﺔ ﺍﺩﺧﺎﻝ ﺍﻟﺒﻴﺎﻧﺎﺕ
    ﻭﺳﻮﻑ ﻧﺴﻤﻴﻬﺎ append ﻭﺍﺧﺮﻯ ﻣﻦ ﺍﺟﻞ ﺍﻋﺎﺩﺓ ﺍﻟﻘﻴﻢ ﻭﺳﻮﻑ ﻧﺴﻤﻴﻬﺎ
    retrieve ﻭﺍﻳﻀﺎ ﺍﻟﺪﺍﻟﺔ ﺍﻟﺘﻲ ﺗﻌﻤﻞ ﻋﻠﻰ ﻓﺤﺺ ﺍﻟﻤﺼﻔﻮﻓﺔ ﺍﺫﺍ ﻛﺎﻧﺖ ﻓﺎﺭﻏﺔ ﺍﻡ
    ﻻ ﻭﺳﻮﻑ ﻧﺴﻤﻴﻬﺎ isempty ﻭﻓﻲ ﺍﻝ private ﺳﻮﻑ ﻧﻌﺮﻑ ﺍﻝ count ﻭ
    rear ﻭ front ﻭ ﺍﻟﻤﺼﻔﻮﻓﺔ ﻭﺍﺳﻤﻬﺎ qu .
    ﻭﻫﺬﺍ ﻫﻮ ﺗﻌﺮﻳﻒ ﺍﻝ
    queue
    كود:
    enum error {success,underflow,overflow};const int max=10;
    typedef int entry;
    class queue
    {
    public:
    queue();
    error append(entry item);
    error retrieve(entry &item);
    bool isempty();
    private:
    int rear,count;
    int front;
    entry qu[max];
    };
    queue::queue()
    {
    count=0;
    front=0;
    rear=max-1;
    }
    error queue::append(entry item)
    {
    error outcome=success;
    if (rear==max-1)
    rear=0;
    31
    qu[rear]=item;
    rear++;
    return outcome;
    }
    error queue::retrieve(entry &item)
    {
    error outcome=success;
    if (rear==front)
    outcome=underflow;
    else 
    {
    item=qu[front];
    front++;
    }
    return outcome;
    }
    bool queue::isempty()
    {
    if (rear==front)
              return true;
        else 
              return false;

    } تحياتي.........
    التعديل الأخير تم بواسطة Samer ; 23/April/2013 الساعة 11:13 pm السبب: تنسيق الكود

  6. #6
    المدير الفني للموقع
    اوف .. هياكل البيانات من يتم شرحها بالعربي تلاص الامور أكثر .. بس عاشت ايدج اذا تريدين تكتبين (كود) اكتبيه داخل صندوق التحرير، و بعدين ضلليه و اضغطي على زر ادراج Code) بالمحرر (علامة #)

  7. #7
    صديق جديد
    ههههههههه.....اعرف ومادتي انكليزي بس لاني اضوج من الانكليزي ادرس الهياكل عربي حتى افهم ....
    وتعبني الكود مدبرته يلا سااااااااااااااااااااامحن ه

  8. #8
    المدير الفني للموقع
    صدك جذب .. لعد المن خال روحي مدير و لوني ااحمرررررر .. سوينااه للكووود

    بس اني اضوج من الـ OOP لذلك برنامجج الاخير ما حبيته .. احسن شي واحد يخلليها لايصة دوال و متغيرات بدل كلاسات و توريث و مدري شنو

  9. #9
    من أهل الدار
    الكتوم
    تاريخ التسجيل: February-2012
    الدولة: العراق
    الجنس: ذكر
    المشاركات: 4,063 المواضيع: 290
    صوتيات: 4 سوالف عراقية: 0
    التقييم: 952
    مزاجي: الحمدالله
    أكلتي المفضلة: الدولمة
    موبايلي: هواوي
    آخر نشاط: 27/April/2024
    مقالات المدونة: 2
    شكرا على الطرح برمجة جميلة

  10. #10
    من المشرفين القدامى
    روجينا تسلمين غلاتي ...مجهود قيم ...نورتي الدرر

صفحة 1 من 2 12 الأخيرةالأخيرة
تم تطوير موقع درر العراق بواسطة Samer

قوانين المنتديات العامة

Google+

متصفح Chrome هو الأفضل لتصفح الانترنت في الجوال