c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس
c p p

c p p

کدها و برنامه های سی پلاس پلاس ، ساختمان داده به زبان cpp، کدها و برنامه های اسمبلی،پروژه های آماده سی پلاس ،سی پلاس تحت داس

جمع دو جمله ای با لیست پیوندی

سلام دوستان خوبم.

یکی از تمرین های ساختمان داده ، برنامه ای هست که دو عبارت دوجمله ای رو دریافت کنه و به کمک لیست پیوندی حاصلجمعشونو حساب کنه.

برنامه ای که اینجا گذاشتم همین کاررو انجام میده.منتها من یک کم گسترشش دادم.امکانات برنامه اظافه کردن چند دوجمله ای ، پاک کردن ، نمایش ، ساده کردن ، و جمع دو عبارت هستن.یک کلاس برای ساختن گره node هست که نما و ضریب رو در خودش نگه میداره ، یک کلاس برای پیوند دادن این گره ها وساختن دو جمله ای و کلاس دیگر هم برای لیست کردن این دو جمله ای ها و امکانات دیگه هست.  

 

برای ساده کردن دو جمله ای  در یک حلقه for هر بار یکی از داده های node را با تمام node های دیگر مقایسه میکنیم و در صورت برابر بودن اندیس دوم آنها مجموع در یکی از node ها قرارمیگیرد و node دیگری پاک میشود.این تابع ساده کردن هست:(لطفا کپیش کنید تو نوت پد) 

 

 void list::sade()
                                     {

  node *p=first; 

  node *q,*r;

  while(p->link!=NULL)
        {
         q=first;
         while(q->link!=NULL)
        {
         r=q;
         q=q->link;
         if(p->nama==q->nama && q!=p)
     {
      p->zarib+=q->zarib;
      r->link=q->link;
      q->link=NULL;
      q=r;
     }
        }
         p=p->link;
        }

    }

برای جمع کردن هم همین کار انجام میشه البته این بار حاصل جمع ها در یک لیست دیگر از node ها قرار میگیرند.  

 


  while(a->link!=NULL)
         {
   plusslist.insert(a->zarib , a->nama);
   a=a->link;
         }
  plusslist.insert(a->zarib , a->nama);
  while(b->link!=NULL)
         {
   plusslist.insert(b->zarib , b->nama);
   b=b->link;
         }
  plusslist.insert(b->zarib , b->nama);

  plusslist.sade(); 

 

 

در روش دیگه با استفاده از آرایه ها میتونید عبارت رو بصورت رشته دریافت کنید و در یک آرایه نما ها و ضرایب رو قرار بدید.فقط یه تابع اسکن برای تشخیص اعداد و علامت ها میخواد که کار سختی نیست.نمونش تو برنامه ماشین حساب تو همین وبلاگه.امیدوارم بتونه بهتون کمک کنه.

 برنامه دو جمله ای بکمک لیست پیوندی

درخت دودویی

سلام خدمت دوستان عزیز برنامه نویس. 

 

امروز یک برنامه درخت دودویی نوشتم _دودویی  به معنی اینکه هر گره صرفا دو ریشه داره _ که در اون در محیط توربو چیزی شبیه داس دستوراتتونو تایپ میکنید _ دستوراتی مثل افزودن گره /بازکردن گره / حذف گره / تغییر نام گره / جستجو در درخت /ا فزودن دیتا/بازگشت به ریشه اول و ...  .یه چیزی! اسم هرگره باید حتما عدد int باشه. من در پیاده سازی درخت با نام char مشکل داشتم.همین طور درمورد پیاده سازی گراف اون.حتما برنامه گرافیکی اش رو تا چندروز دیگه رو وب میذارم. 

حتما help برنامه ور بخونید.یادتون نره که باید بعد از هر دستور یه فاصله بذارید.بنویسید help و یک فاصله بعدش.  

 

مثلا میخواین چند تا گره بسازین  و جستجو کنین این عبارات رو وارد کنید: 

 

insert 1 

insert 2 

open 2 

insert 21 

insert 22 

first 

search 22 

exit

 

 

دانلود فایل

مرتب سازی در سی پلاس

اینجا یک فایل گذاشتم که توش کد 5 نوع مرتب سازی آرایه ها در سی پلاس پلاس به همراه توضیحاتشون رو قرار دادم.مرتب سازی های shell,bubble,insertion,selection,quickرو قرار دادم.این مطالب رو از یکی از سایت های آموزشی برداشتم.امیدوارم براتون مفید باشه. 

 

دریافت فایل

بازی maze

 

                            M   A   Z   E

<تحت داس>

 

این هم بازی maze یا هزارتو  گرافیکی که خوب کارمیکنه فقط در مورد مسیرهای پیچ حلزونی خوب جواب نمیده.البته سورس اون به ربان اسمبلی هم تو همین وبلاگ موجود میباشد. 

کار برنام اینه که چهارتابع حرکت به چهارجهت اصلی رو پشت سر هم فراخانی کنه تا مسیر هزارتو طی بشه.البته یک مشکل داره این که مسیر حلزونی رو بعضی موقع ها اشتباه رسم میکنه.نقشه بازی رو هم باید خودتون به برنامه بدید.برنامه یک نقشه پیش فرض هم داره.برای رسم نقشه از دستور  (L)line برای رسم خط و دستور putdot(P)از help برنامه هم استفاده کنید. میتونید خودتون هم بازی رو  با حرکت در طول مسیر حل کنید.

برای اینکه یک کم هم جال بشه مسیر بازی رو یه مار طی میکنه.

امیدوارم بتونید برنامه رو بهتر از اینی که هست تغییرش بدید.اینجا کد برنامه با فایل اجرایی برای دانلو د هست.

 

دانلود برنامه