alonmahdi
پنج شنبه 03 بهمن 1392, 22:15 عصر
سلام دوستان عزیز
من قصد دارم یک برنامه حسابداری بنویسیم ولی در اون به یک مشکلی بر خورد کردم و اونم نحوه نوشتن کد خودکار برنامه است !!!
با ذکر یک مثال توضیح می دم !
مثلا من می خوام افراد موجود رو در دسته بندی های مختلفی قرار بدم و حالات ممکنه رو بدست بیارم !
یعنی این :
اگه چهار نفر داشته باشم من می تونم با فرض این که این چهار نفر باهم باشند به 15 صورت دسته بندی کنم!
یعنی این ترکیب اون آنها رو بدست بیارم:
با فرض نام های ، مهدی ، محسن ، حسین ، نیما
اولین ترکیب 4 به 1:
1- مهدی 2- حسین 3- محسن 4- نیما
ترکیب 4 به 2 :
1- مهدی ، نیما
2- مهدی، محسن
3- مهدی ،حسین
4- نیما ، حسین
5- نیما ، محسن
6- حسین ، محسن
ترکیب 4 به 3 :
1- مهدی ، حسین ، نیما
2- مهدی ، محسن ، نیما
3- نیما ، حسین ، محسن
4- مهدی ، حسین ، محسن
و آخرین ترکیب :
که میشه یک ترکیب 4 نفری یعنی 4 به 4:
مهدی ، حسین ، نیما ، محسن
خب حالا سوال من اینه که چگونه کدی پویا بنویسیم که در صورتی که دسته بندی من از 4 نفر به 5 نفر تغییر کرد خب به طبع اون ترکیب های منم تغییر می کنه برای تولید ترکیب ها چگونه کدی رو بنویسیم که پویا باشه و خودش بتونه خودش رو تولید کنه !
مثلا اگه من برای ترکیب 4 به 2 بخوام کدی بنویسم این چنین کدی می نوسیم و داخل یک آرایه رشته ای ذخیره می کنم :
با فرض این که با کد های این اشخاص کار بکنیم نه با اسم اون ها :
string []a=new string[6];// چون ترکیب 4 به 2 جوابش میشه 6
for(int i=1;i<4;i++)
for(int j=i+1;j<=4;j++)
string[i-1]=i.+","+j;
که خروجی این کد چیزی شبیه به این میشه :
1,2
1,3
1,4
2,3
2,4
3,4
یعنی من می خوام این حلقه رو یک جوری پویا باشه یا این که با توجه به ترکیب تولید بشه و اجرا بشه !!! چون که با توجه به تعداد دسته ها تعداد حلقه ها هم فرق می کنه مسلما!!!
امیدوارم تونسته باشم منظورم رو رسونده باشم بازم سوالی بود بپرسید. :لبخندساده:
من قصد دارم یک برنامه حسابداری بنویسیم ولی در اون به یک مشکلی بر خورد کردم و اونم نحوه نوشتن کد خودکار برنامه است !!!
با ذکر یک مثال توضیح می دم !
مثلا من می خوام افراد موجود رو در دسته بندی های مختلفی قرار بدم و حالات ممکنه رو بدست بیارم !
یعنی این :
اگه چهار نفر داشته باشم من می تونم با فرض این که این چهار نفر باهم باشند به 15 صورت دسته بندی کنم!
یعنی این ترکیب اون آنها رو بدست بیارم:
با فرض نام های ، مهدی ، محسن ، حسین ، نیما
اولین ترکیب 4 به 1:
1- مهدی 2- حسین 3- محسن 4- نیما
ترکیب 4 به 2 :
1- مهدی ، نیما
2- مهدی، محسن
3- مهدی ،حسین
4- نیما ، حسین
5- نیما ، محسن
6- حسین ، محسن
ترکیب 4 به 3 :
1- مهدی ، حسین ، نیما
2- مهدی ، محسن ، نیما
3- نیما ، حسین ، محسن
4- مهدی ، حسین ، محسن
و آخرین ترکیب :
که میشه یک ترکیب 4 نفری یعنی 4 به 4:
مهدی ، حسین ، نیما ، محسن
خب حالا سوال من اینه که چگونه کدی پویا بنویسیم که در صورتی که دسته بندی من از 4 نفر به 5 نفر تغییر کرد خب به طبع اون ترکیب های منم تغییر می کنه برای تولید ترکیب ها چگونه کدی رو بنویسیم که پویا باشه و خودش بتونه خودش رو تولید کنه !
مثلا اگه من برای ترکیب 4 به 2 بخوام کدی بنویسم این چنین کدی می نوسیم و داخل یک آرایه رشته ای ذخیره می کنم :
با فرض این که با کد های این اشخاص کار بکنیم نه با اسم اون ها :
string []a=new string[6];// چون ترکیب 4 به 2 جوابش میشه 6
for(int i=1;i<4;i++)
for(int j=i+1;j<=4;j++)
string[i-1]=i.+","+j;
که خروجی این کد چیزی شبیه به این میشه :
1,2
1,3
1,4
2,3
2,4
3,4
یعنی من می خوام این حلقه رو یک جوری پویا باشه یا این که با توجه به ترکیب تولید بشه و اجرا بشه !!! چون که با توجه به تعداد دسته ها تعداد حلقه ها هم فرق می کنه مسلما!!!
امیدوارم تونسته باشم منظورم رو رسونده باشم بازم سوالی بود بپرسید. :لبخندساده: