PDA

View Full Version : سوال: پیدا کردن بیشترین مقدار یک لیست باکس



IMANAZADI
چهارشنبه 17 آبان 1391, 15:44 عصر
با سلام
در یک لیست باکس حدود 150000 عدد گوناگون وارد شده است چطوری میتونم بزگترین عدد این لیست باکس رو پیدا کنم ؟

سوال دوم :
یکجا از سایت دیدم (مطمئن نبودم این سایت بود یا سایت دیگه) که با استفاده از تابع math.max()
بیشترین مقدار متغیر int یا متغیر های دیگه رو بدست میاورد کسی میدونه چطوری ؟
البته منظورم اینه که تا چه عددی میشه ذخیره کرد نه اینکه بگید سایز int چهار بایته
با تشکر

r_s1389@yahoo.com
چهارشنبه 17 آبان 1391, 16:48 عصر
سلاام
اگر در لیت باکست اعداد مرتب باشند خوب واضحه اخرین مقدارت میشه بزرگترین
اگر مرتب نبود باید با یکی از الگوریتم های مرتب سازی(حبابی یا سریع) مقدار هات رو به صورت مرتب شدن در لیست باکس ذخیره کنی

harani
چهارشنبه 17 آبان 1391, 16:53 عصر
سوال 1 : ببین کد زیر بدبدت میخوره ولی چون تعداد اعدادت خیلیی زیاده برنامه با تأخیر انجام میشه وایسا اگه این بدردت نخورد یه راه بهتر برات پیدا کنم .


double max;//k
private void btnMax_Click(object sender, EventArgs e)//d
{
for (int i = 0; i < listbox1.Items.Count; i++)//c
{
max = Math.Max(Double.Parse(listbox1.Items[i].ToString()), max);//b
}
label1.Text = max.ToString();//a
}



سوال 2 :


int x = Int32.MaxValue;//a
label2.Text = x.ToString();//b

مهرداد صفا
چهارشنبه 17 آبان 1391, 17:07 عصر
با سلام
در یک لیست باکس حدود 150000 عدد گوناگون وارد شده است چطوری میتونم بزگترین عدد این لیست باکس رو پیدا کنم ؟
سلام
مقادیر را در آرایه کپی کنید و با متود Max بیشترین مقدار آن را به دست بیاورید. به این صورت:

Object[] numbers = new Object
[listBox1.Items.Count];
listBox1.Items.CopyTo(numbers, 0);
MessageBox.Show(numbers.Max().ToString());



سوال دوم :
یکجا از سایت دیدم (مطمئن نبودم این سایت بود یا سایت دیگه) که با استفاده از تابع math.max()
بیشترین مقدار متغیر int یا متغیر های دیگه رو بدست میاورد کسی میدونه چطوری ؟
البته منظورم اینه که تا چه عددی میشه ذخیره کرد نه اینکه بگید سایز int چهار بایته
System.Int32.MaxValue بیشترین مقدار یک Int32 است و Math.Max بین دو عدد بزرگترین را بر می گرداند.
موفق باشید.

harani
چهارشنبه 17 آبان 1391, 17:09 عصر
اگه تعداد ارقامت زیاده بهتره که از کد زیر استفاده کنی :


var numbers = listbox1.Items.Cast<string>().Select(obj => Convert.ToDouble(obj));//a
double min = numbers.Min();//b
double max = numbers.Max();//c

label1.Text = "Max = (" + max + ") , Min = " + min ;//d