PDA

View Full Version : سوال: سورت کردن لیبل های حاوی عدد



magnet
یک شنبه 26 اردیبهشت 1389, 00:18 صبح
فرض کنید در یک فرم 10 لیبل داریم که از بالا به پایین و زیر هم ردیف شده اند و و هر کدومشون یک عدد خاصی دارند. چطور می تونم این لیبل ها رو سورت کنم، یعنی لیبلی که بیشترین مقدار رو داره در بالاترین قسمت بذارم و همین طور تا آخر.
ممنون میشم کمکم کنید.

ali.aghdam
یک شنبه 26 اردیبهشت 1389, 00:54 صبح
می تونی مقدار های لیبل رو بخونی در آرایه بریزی سورتش کنی و مقدار ها رو به ترتیب در لیبل ها قرار بدی

saber187518
یک شنبه 26 اردیبهشت 1389, 00:57 صبح
با سلام دوست عزیز
برای این کار باید به چند نکته توجه کنی.
1)اندازه لیبل ها باید یکساب یاشه.
2)از الگوریتم های عادی مرتب سازی استفاده کن.
هر وقت دیدی مقدار یک لیبل از لیبل دیگه بیشتره کافیه که جاشون رو با هم عوض کنی.
این در صورتی که بخوای جای لیبل ها رو تعویض کنی.
--------------------------------------------------------------------------------------------
اگر هم بخوای فقط مقدار لیبل ها رو عوض کنی که فقط کافی است به روش حبابی عمل کنی.

hojjatshariffam
یک شنبه 26 اردیبهشت 1389, 00:58 صبح
می تونی از لیست باکس به جای لیبل استفاده کنی

mmd2009
یک شنبه 26 اردیبهشت 1389, 07:21 صبح
به نظر من استفاده از یک آرایه بهترین راه و کم خرج ترین راه هستش بعدش مقدار ها رو تغییر بدی تو لیبل ها نه اینکه بخوای جاشونو تغییر بدی

magnet
یک شنبه 26 اردیبهشت 1389, 16:58 عصر
ممنون از جواب های عالی تون.
میشه کد سورت کردن با آرایه و قرار دادن آرایه مرتب شده در لیبل رو برام بنویسید.
خیلی خیلی ممنون میشم.

ali.aghdam
یک شنبه 26 اردیبهشت 1389, 19:50 عصر
ببینید منطق اینو میگه که اگه خودت تلاش نکنی نه چیزی یاد می گیری و نه چیزی به دست می آری.

راستی برای سورت کردت از Array.sort استفاده کن .

hojjatshariffam
یک شنبه 26 اردیبهشت 1389, 20:04 عصر
ببینید منطق اینو میگه که اگه خودت تلاش نکنی نه چیزی یاد می گیری و نه چیزی به دست می آری.

راستی برای سورت کردت از Array.sort استفاده کن .
منم موافقم

magnet
یک شنبه 26 اردیبهشت 1389, 22:16 عصر
دوستان عزیز من مثل شما حرفه ای نیستم، تازه کارم، لطفا کمکم کنیدف خیلی لازم دارم.

Salar Ashgi
یک شنبه 26 اردیبهشت 1389, 22:44 عصر
همانطور که دوستان هم گفتند هیچ وقت خودتون رو عادت ندید به بدست آوردن کد آماده ؛ چون تو این

حالت اون ذهن الگوریتمی فرد به هیچ وجه فعال نخواهد بود ! ولی خوب جهت راهنمایی :



private void button1_Click(object sender, EventArgs e)
{
List<int> list = new List<int>();
for (int i = 1; i <= 3; i++)
{
list.Add(Convert.ToInt32(this.Controls["label" + i.ToString()].Text));
}
list.Sort();
for (int i = 1; i <= 3; i++)
{
this.Controls["label" + i.ToString()].Text = list[i-1].ToString();

}

}

موفق باشید .

magnet
دوشنبه 27 اردیبهشت 1389, 12:31 عصر
خیلی خیلی ممنون از کدی که برام نوشتی.
حالا یه سوال دیگه دارم:
اگه هرکدوم از این لیبل ها یک لیبل دیگه درکنارشون داشته باشن مثلا در فرم قبل از سورت شما Labal1 موربوط به عدد5 و Label2 مربوط به عدد 9 و Label3 مربوط به عدد 3 باشه، چطور میشه کاری کرد که بعد از سورت کردن لیبل مربوط به هر عدد کنارش قرار بگیره؟؟؟ ( یعنی مثلا در فرم بعد از سورت شما، Label3 در کنار عدد 3 که در بالاترین سطح هست قار بگیره و همینطور الی آخر)

Salar Ashgi
دوشنبه 27 اردیبهشت 1389, 15:28 عصر
دوست عزیز اگه آدم همه چیز رو آماده بخواد ، پیشرفت نمیکنه که !

اینکار شما تو همون حلقه ای که نوشتم ، بسادگی امکان پذیره !

خودتون هم تلاش کنید !

magnet
دوشنبه 27 اردیبهشت 1389, 15:57 عصر
چرا شما فکر میکنید که من اصلا تلاش نمیکنم؟!!! :ناراحت:
من اول کلی فکر و تلاش و حتی جستجو میکنم، بعد وقتی میبینم که به نتیجه ای نمی رسم خوب باید از یه نفر کمک بگیرم دیگه!! :افسرده: :گریه:

magnet
سه شنبه 28 اردیبهشت 1389, 12:17 عصر
یعنی هیچکس نمیخواد کمک کنه !!!

اَرژنگ
سه شنبه 28 اردیبهشت 1389, 16:24 عصر
فرض کنید در یک فرم 10 لیبل داریم که از بالا به پایین و زیر هم ردیف شده اند و و هر کدومشون یک عدد خاصی دارند. چطور می تونم این لیبل ها رو سورت کنم، یعنی لیبلی که بیشترین مقدار رو داره در بالاترین قسمت بذارم و همین طور تا آخر.
ممنون میشم کمکم کنید.
دلیلی اساسی برایه این روش وجود دارد؟
جایی سورت شدن لیبل‌ها را کسی دیده؟
شاید قبل از اینکه به حل کردن یک مسعله توجه بشد اول درست بودن سوال را باید مورد توجه قرار داد.

magnet
سه شنبه 28 اردیبهشت 1389, 22:03 عصر
به نظرتون این توجیه خوبی برای جواب ندادنه؟!!!

اَرژنگ
چهارشنبه 29 اردیبهشت 1389, 01:27 صبح
به نظرتون این توجیه خوبی برای جواب ندادنه؟!!!

اگر یکی بپرسه بهترین روش برایه خودکشی چیه قبل از اینکه جواب بدید نمیپرسید برایه چی میپرسه؟
اگر واقعاً نیاز هست و دلیل منطقی دارد ، اول به این توجه کنید:
لیبل برایه نشان دادن مقادیر است، روشهایه اشتباه به لیبل و یا کنترلهایه نمایشی توجه میکنند تا اینکه داده‌هایی را که قرار است نمایش داده بشند را اول سورت کنند و بعد نمایش بدند.
اگر جواب بدیم به مشکلات دیگری مداوم در این روش کاری که پیش گرفتید برخواهید خورد، حالا اگر جواب این سوال را بدیم قول میدید که مشکلات دیگری را از استاده از یک روش اشتباه بوجود میاد به حضورمان نیارید و از اینکه چرا برایه اینکه به پایه خودتان آجر بکوبید کمکتان نمیکنند گله نکنید؟ اگر که بله برایه پیادی سازی همین روش اشتباه کمکتان میکنیم ، اگر هم که فکرتان را عوض کنید و مشکل اصلی را توضیح بدید روش درست را برایتان میفرستیم.
انتخاب با شماست.

اَرژنگ
چهارشنبه 29 اردیبهشت 1389, 03:05 صبح
خیلی خیلی ممنون از کدی که برام نوشتی.
حالا یه سوال دیگه دارم:
اگه هرکدوم از این لیبل ها یک لیبل دیگه درکنارشون داشته باشن مثلا در فرم قبل از سورت شما Labal1 موربوط به عدد5 و Label2 مربوط به عدد 9 و Label3 مربوط به عدد 3 باشه، چطور میشه کاری کرد که بعد از سورت کردن لیبل مربوط به هر عدد کنارش قرار بگیره؟؟؟ ( یعنی مثلا در فرم بعد از سورت شما، Label3 در کنار عدد 3 که در بالاترین سطح هست قار بگیره و همینطور الی آخر)
من این پست را ندیده بودم وگرنه اصلاً خودم را قاطی این توپیک نمیکردم.
روش از بیخ اشکال دارد، چونکه تا به حال به چنین نیازی در برنامه‌نویسی برنخوردیم.
اگر از روشهایه معمول استفاده نشه ، روشهایه تکی دلبخواهی یک نفر فقط مشکل خودشه. دیگران در همین زمینه به اندازه کافی کمک کردند، از اینجا ببعد ادامه و استفاده از این روش فقط با خود شماست و احتمال اینکه کسی برایه چنین شرایط استثنائی که خودتان بوجود آوردید کمک کند خیلی کمه.
روشهایه راحتر و درست وجود دارند که به احتما ۹۰٪ مشکل اصلی را حل کنند.

اَرژنگ
چهارشنبه 29 اردیبهشت 1389, 06:31 صبح
دوستان عزیز من مثل شما حرفه ای نیستم، تازه کارم، لطفا کمکم کنیدف خیلی لازم دارم.

اگر در مورد اینکه چکاری انجام میدید توضیح بدین من شخصاً قول میدم کمک کنم، فقط لطفاً به استفاده از لیبل توجه نکنید، داستان اصلی را تعریف کنید، شاید داتاگرید ویو و یا کنترلهایه بهتری برایه اینکار وجود داشته باشند که با یکدهم زحمتی که در این روش قبلی پیش گرفته بشند بشه پیاده‌شان کرد.

کمکمان کنید که کمکتان کنیم، اینکه حرفه‌ای نیستید مهم نیست ، هر کی میره دکتر از طبابت هیچ چی نمیدونه ولی دکتر به داستانش گوش میده، یکی نمیره دکتر بگه من جراحی لازم دارم، شما هم بگو داستانت چیه .

magnet
چهارشنبه 29 اردیبهشت 1389, 23:09 عصر
ارژنگ عزیز خیلی از نوشته هات خوشم اومد، حق با شماست.
و اما قضیه اصلی اینه که من میخوام یه برنامه بنویسم که توش حداکثر 10 نفر داوطلب داشته باشم و بینشون رای گیری بشه و در نهایت اسامیشون با تعداد آراشون سورت بشه.

اَرژنگ
پنج شنبه 30 اردیبهشت 1389, 01:33 صبح
ارژنگ عزیز خیلی از نوشته هات خوشم اومد، حق با شماست.
و اما قضیه اصلی اینه که من میخوام یه برنامه بنویسم که توش حداکثر 10 نفر داوطلب داشته باشم و بینشون رای گیری بشه و در نهایت اسامیشون با تعداد آراشون سورت بشه.


این برنامه را با هم به شکل گام به گام پیاده میکنیم:
۱.اول یک کلاس کاندید تعریف کنید که حاوی این ۲ پروپرتی باشد اسم و شمارش رای.

magnet
پنج شنبه 30 اردیبهشت 1389, 20:14 عصر
ارژنگ عزیز، من که گفتم مبتدیم.
من حتی تعریف کلاس رو هم بلد نیستم

اَرژنگ
جمعه 31 اردیبهشت 1389, 00:09 صبح
ارژنگ عزیز، من که گفتم مبتدیم.

من حتی تعریف کلاس رو هم بلد نیستم

مهم نیست که بلد نیستید،
اولین چیزی که مبدتی‌ها باید یاد بگیرند همان تعریف کلاس است.
سعی کن یکچیزی را شروع کنی، بعدش بفرست اینجا درستش کنیم ، گفتم گام به گام میریم جلو، یک چیزی هر چی شده را امتحانی را بنداز کمک اینجا هست.

magnet
جمعه 31 اردیبهشت 1389, 12:15 عصر
namespace WindowsFormsApplication1
{
class Candidate
{
int VoteNO;
string Name;
}
}

اَرژنگ
جمعه 31 اردیبهشت 1389, 14:20 عصر
namespace WindowsFormsApplication1
{
class Candidate
{
int VoteNO;
string Name;
}
}
نزدیک،
از فیلدها استفاده کردید، این پروژه ضمیمه از پروپرتی استفاده میکنه.
قسمت بعد در فرم اصلی یک نمونه از کاندید ایجاد کنید و زمانی که باتن کلیک شد شماره رایش را یکی ببرید بالا.
همین پروژه را ویرایش کنید و بفرستید.

magnet
جمعه 31 اردیبهشت 1389, 19:35 عصر
چرا موقع باز کردن پروژه با خطای تصویر ضمیمه روبرو میشم؟!!!

اَرژنگ
شنبه 01 خرداد 1389, 00:57 صبح
چرا موقع باز کردن پروژه با خطای تصویر ضمیمه روبرو میشم؟!!!
با ویژوال استودیو ۲۰۱۰ بازش میکنید؟
اگر که نه از
http://www.microsoft.com/express/downloads/#2010-Visual-CS
ویژوال سی‌شارپ ۲۰۱۰ اکسپرس را دانلود کنید ، من با اون نوشتمش.
اگر مشکلش زیاده با سی‌شارپ اکسپرس ۲۰۰۸ ادامه میدیم.