سلام
من یه کلاس از مرتب کردن نوشتم بعد میخوام تو باتن یه کد بنویسم که با زدن دکمه مرتب کنه اعداد رو چی بنویسم؟؟؟
سلام
من یه کلاس از مرتب کردن نوشتم بعد میخوام تو باتن یه کد بنویسم که با زدن دکمه مرتب کنه اعداد رو چی بنویسم؟؟؟
خب این کار بستگی به این داره که ورودی و خروجی کلاست چی باشه
به نظرم بهتره کل کلاس یا خط تعریف متد کلاست رو بزاری تا سریعتر کمکت کنیم
آخرین ویرایش به وسیله saeed zarei : سه شنبه 10 اردیبهشت 1392 در 17:34 عصر
خط تعرف چطوری بزارم یعنی ایجوری؟؟
کد دیگه ای هست بگین؟؟؟کد HTML:buuble bubl=new bubble();
نه - منظورم اینه که کلاس رو چطوری تعریف کردین
مثلا :
public class test
{
public int[] sort(int[] arr)
{
Array.Sort(arr);
return arr;
}
}
این کلاس یه متد Sort داره که ارایه ای از اعداد رو به عنوان ورودی گرفته و مرتب میکنه و بعد میفرسته به خروجی
حالا طریقه استفادش ، وقتی روی دکمه دابل کلیک کردی این کد رو بنویس :
test t = new test();
t.sort(ارسال ارایه به عنوان ورودی);
ممنون قسمت اخر ارسال ارایه به عنوان ورودی یعنی چی چی بزارم؟؟ من عددام تو لیست بوکس هستش همونجا میخوام مرتب شن
؟؟
خب اون اعداد رو از کجا وارد کومبو باکس کردی ؟ از طریق کد نویسی یا در محیط طراحی فرم ؟
در هر صورت به نظرم این کار رو انجام بدی بهتره :
ابتدا یه ارایه درست کن و اعدادت رو بریز داخلش و بعد اونا رو مرتب کن و در نهایت به کامبو باکست Bind کن ، قسمت اول رو که توضیح دادم ، اینم قسمت اخر (همون Bind کردن)
int[] aa={10 , 12 , 2 , 5 , 25 , 33};
test t = new test();
t.sort(aa);
comboBox1.DataSource = aa;
کمک خواستی بگو
مرسی ...من عددم را از فرم ریختم یه تکس باکس دارم یکی یکی عدد میدم میره تو لیست باکس حالام میخوام لیست باکس و مرتب کنم ممنون میشم کمک کنی
این یه نمونه هست . مشکل داشتی بگو
http://uploadtak.com/images/j9836_Wi...msApplicat.zip
متاسفانه نشد... اگه میشه یه مثال از کلاس بزن
میخای یه پروژه جدید با کنترل هایی که میخای داخلش باشه ، درست کن و بفرست تا برات درست کنم . راستش جوابهات خیلی مبهمه . مشکلتو کامل با کد بنویس تا کمک کنیم
تو این تایپک هم شکل فرمم هست هم کلاسی که نوشتم.فقط یه کد میخوام تو باتن مرتب کردن بزارم
https://barnamenevis.org/showthread.p...DB%8C%D9%86%29
بیا دوست عزیز : از الگوریتم bubbel sort برای مرتب سازی استفاده کردم ... بجاش میتونی اون متد خودت رو بنویسی و استفاده کنی ...
void Bubbel_Sort(int[] array)
{
int temp;
for (int i = array.Length - 1; i > 0; i--)
for (int j = 0; j < i; j++)
{
if (array[j] > array[j + 1])
{
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
for (int k = 0; k < array.Length; k++)
{
listBox1.Items.Add(array[k]);
}
}
int[] a = new int[5];
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
a[i] = int.Parse(textBox1.Text);
textBox1.Clear();
listBox1.Items.Clear();
Bubbel_Sort(a);
i++;
}
دستت درد نکنه داداش ولی این خطو ارور میده
کد HTML:a[i] = int.Parse(textBox1.Text);
Input string was not in a correct format.
فقط باید متغیر i رو بیرون تابع و به صورت Public تعریف کنی . چون محل قرار گرفتن عدد بعدی به ارایه a رو مشخص میکنه . که صددرصد به دلیل سریع جواب دادن این اشتباه کوچیک رو کردی
میتونی از این کد تو رویداد KeyPress تکست باکست استفاده کنی که کاربر نتونه غیر عدد چیزی وارد کنه . ولی حتما تبدیل رو زمانی انجام بده که باکست خالی نباشه که برای اون هم میتونی از خط زیر استفاده کنی :
if (char.IsDigit(e.KeyChar) || e.KeyChar == (char) Keys.Back)
e.Handled = false;
else
e.Handled = true;
اینم برای اینکه اگه باکس خالی بود خطا نده :
int sTemp = 0; int.TryParse(txtNumber.Text, out sTemp);
دستت درد نکنه حل شد
یه چیز دیگه الان ما یه تابع تو برنامه نوشتیم ولی اگه یه کلاس بنویسیم چه کدی باید نوشت یعنی استفاده از کلاس بلد نیسم اگه اینم بکی یه دنیا ممنون میشم
اول یه نمونه از کلاست میسازی و بعد از اون استفاده میکنی :
TestClass tc = new TestClass() ;
tc.Sort(arr(;
همین کارو میکنم ولی این ارورو میده
Error 1 'jostejo.bubble' does not contain a definition for 'sort' and no extension method 'sort' accepting a first argument of type 'jostejo.bubble' could be found (are you missing a using directive or an assembly reference?) F:\Program Files\Microsoft Visual Studio 10.0\EJRAEI\jostejo\jostejo\Form1.cs 27 18 jostejo
شما اومدی از تابع Sort که من نوشتم استفاده کردی . به جای TestClass نام کلاس خودت و به جای Sort نیز نام تابع خودت باید بزاری . حتما قبل از نام کلاس و تابع از کلمه Public استفاده کن . چون کلاس و تابع به طور پیش فرض Private میشن و دسترسی بهشون نداری
میدونم این کلاس منه ببین درسته؟؟؟
خوب حالا میخوام تو باتن کد بنویسم چی بنویسم ؟؟کد HTML:namespace jostejo { public class bubble { public void buuble(int[] temp, int len) { int i, j, item; for (i = len - 1; i > 0; i--) for (j = 0; j < i; j++) if (temp[j] > temp[j + 1]) { item = temp[j]; temp[j] = temp[j + 1]; temp[j + 1] = item; } } } }
طبق همون فرم قبلی عدد از تکست باکس بگیره تو لیست باکس بزاره بعدم سورت
تو این ادرس https://barnamenevis.org/showthread.p...=1#post1757392 بهت که گفتم تابع تغییر کرده (طبق تعریف جدید arash691 )
حالا فقط میمونه استفادش که اونم راحته
bubble b = new bubble();
b.buuble(نام ارایه جهت مرتب سازی);
اگه مشکل داشتی کل پروژه رو بزار تا برات درست کنم
http://up.toca.ir/images/ewue10fpqeqs972hkm.rar
اگه میشه درست کن ممنون
اگه مشکل داشتی بگو ، البته صبح جواب میدم
http://uploadtak.com/images/i389_jostejo.zip
التماس دعا
سلام دستت درد نکنه ولی یه مشکایه من هر ععدی اضافه میکنم 0 نشون میده هر کاری کردم درست نشد علتش چیه؟؟؟
من دوباره اونو تست کردم . فقط زمانی که هیچ عددی وارد نکنی یعنی باکست خالی باشه ، صفر وارد میشه که با یه شرط میتونی جلوی این کار هم بگیری
شاید شما باز روی اون تغییراتی رو اعمال کردید
حل شد خیلی ممنون
میشه فرق int.parse با int.tyeparse رو بگی؟؟
کد بالا out stemp چیکار میکنه؟؟کد HTML:int.TryParse(textBox1.Text, out sTemp);
int.parse : رشته ورودی رو به عدد تبدیل میکنه و اگه نتونست بهت خطا میده
int.tyeparse : رشته ورودی رو به عدد تبدیل میکنه و اگه نتونست تبدیل کنه دیگه خطایی دریافت نمیکنی
در هر صورت شما باید مقدار تبدیل شده رو یه جا دخیره کنی ، که من اونو تو یه متغییر به نام sTemp گذاشتم . و TryParse اگه تونس رشته رو تبدیل کنه اونو میریزه تو sTemp و اگه نتونست کاری به این متغییر نداره ، یعنی متغییر sTemp مقدارش برابر مقدار اولیش که من بهش صفر دادم میمونه (خط کد اول)
int sTemp = 0;
int.TryParse(txtNumber.Text, out sTemp);
خیلی ممنون بابت کمکات