PDA

View Full Version : وارد کردن n ورودی



alireza1919
پنج شنبه 29 فروردین 1392, 17:15 عصر
من باید n عدد ورودی رو از یک textbox دریافت کنم و از کوچک به بزرگ مرتب کنم .
چطور میشه این کارو کرد؟

Veteran
پنج شنبه 29 فروردین 1392, 19:50 عصر
یاد هنرستان به خیر :لبخند:

SlowCode
پنج شنبه 29 فروردین 1392, 19:54 عصر
سلام
از روشهای مختلفی میتونی استفاده کنی ولی من اینو توضیح میدم.
اعداد باید موقع وارد کردن با فاصله از هم جدا بشن.
داخل دو تا حلقه(روش حبابی) مرتبشون میکنی.

a = Split(Text1, " ")
For i = 0 To UBound(a)
For j = 0 To i
If a(i) > a(j) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
End If
Next
Next

واسه چاپ کردن:
For i = 0 To UBound(a)
list1.AddItem a(i)
Next

alireza1919
پنج شنبه 29 فروردین 1392, 20:03 عصر
با تشکر
چطوری اعداد رو از هم جدا کنم ؟
توی textbox می خوام جواب بده.
اگه ممکنه کار ubound split رو توضیح بدین

SlowCode
پنج شنبه 29 فروردین 1392, 20:55 عصر
split میاد یه رشته رو با توجه به یه کاراکتر(یا رشته) از هم جدا میکنه و بعد تو یه ارایه میریزه.
ubound هم ایندکس بزرگترین عنصر رو برمیگردونه.

چطوری اعداد رو از هم جدا کنم ؟
اگه باز هم متوجه نشدی تو گوگل جستجو کن.
مخصوصا msdn رو نگاه کن.

alireza1919
پنج شنبه 29 فروردین 1392, 22:19 عصر
من وقتی این سورسی که شما گذاشتی رو اجرا می کنم اعداد رو هر جور می خواد مرتب میکنه مشکل از کجاست؟ :متفکر:

SlowCode
جمعه 30 فروردین 1392, 08:37 صبح
هرجور میخواد!! مگه خودش عقل و اختیار داره!:لبخند:
یه تکست باکس، یه کاماند باتن و یه لیست باکس بزار رو فرم بعد این کد رو کپی کن تو پروژت و اجرا کن.

Private Sub Command1_Click()
Text1 = "2 5 3 4 0"
a = Split(Text1, " ")
For i = 0 To UBound(a)
For j = 0 To i
If a(i) > a(j) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
End If
Next
Next
For i = 0 To UBound(a)
List1.AddItem a(i)
Next
End Sub

alireza1919
جمعه 30 فروردین 1392, 14:43 عصر
الان مشکل این کجاست ؟

a = Split(Text1, " ")
For i = 0 To UBound(a)
For j = 0 To i
If a(i) > a(j) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
End If
Next
Next
For i = 0 To UBound(a)
Text2.Text = Text2.Text + Space(3) + a(i)
Next i

setroyd
جمعه 30 فروردین 1392, 15:40 عصر
Private Sub Command1_Click()
a = Split(Text1, " ")
For i = 0 To UBound(a)
For j = 0 To i
If a(i) < a(j) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
End If
Next
Next
For i = 0 To UBound(a)
Text2.Text = Text2.Text + Space(3) + a(i)
Next i
End Sub
این هم درستش البته برای اینکه از کوچیک به بزرگ مرتب کنه نه از بزرگ به کوچیک .

setroyd
جمعه 30 فروردین 1392, 15:55 عصر
این کدم برات نوشتم که اگه میخوای عدد هارو جدا کنی از هم یعنی اگه space() نداره خودش برات جدا کنه و تو ارایه بریزه که این میتونی حتی جایگزین split هم بکنیش


Option Base 1
Private Sub Command1_Click()
Dim s() As String
Name1 = "3456791"
ReDim s(Len(Name1))
For b = 1 To Len(Name1)
a = Mid(Name1, b, 1)
s(b) = a
Text1.Text = Text1.Text & s(b) & Space(1)
Next
End Sub