PDA

View Full Version : سوال: تشخیص بزرگترین عدد



ALI TT
دوشنبه 30 دی 1387, 02:13 صبح
سلام دوستان
دیشب من و رفیقم کل انداختیم ( کل عمرا حرفه ای !! ) که هر کی بتونه با کمترین کد و با استفاده از حلقه For عدد بزرگتر را از بین اعضای یه آرایه تشخیص دهد . ( بدون استفاده از توابع دیگر ) .
اون این کد را داد . که ایرادش اینه که با اعداد زیر صفر ( منفی ) کار نمی کنه .

Dim a As Integer() = {100, 5, 101, 20, 8, 214, 75, 5, 65}
Dim uses As Integer = 0


For H As Integer = 0 To a.Length - 1

If uses < a(H) Then uses = a(H)

Next

MessageBox.Show(uses)

منم اینو دادم که از هر لحاظ کار می کنه :


Dim Array_int As Integer() = {-100, -5, -654, -20}
Dim use_Long As Long = Long.MinValue

For Each Max As Long In Array_int
If use_Long < Max Then use_Long = Max
Next

MessageBox.Show(use_Long)

حالا سوال من : کسی بلد از این کمتر کد بده به من که برم حالشو بگیرم ، دمتون گرم :قلب:

#target
دوشنبه 30 دی 1387, 21:20 عصر
راه حل منطقی دیگه ای به فکرم نمی آد ولی روش فکر می کنم اگه جوابشو گرفتم می گم .

رضا نانوا
سه شنبه 01 بهمن 1387, 13:06 عصر
حالا سوال من : کسی بلد از این کمتر کد بده به من که برم حالشو بگیرم ، دمتون گرم :قلب:

فکر میکنم تابعی بنام MAX() باشد ولی من اونو توی SQL امتحان کردم نمیدونم توی VBجواب میده یانه

mostafaaa
سه شنبه 01 بهمن 1387, 17:23 عصر
سلام دوست من

فکر میکنم تابعی بنام MAX() باشد ولی من اونو توی SQL امتحان کردم نمیدونم توی VBجواب میده یانه

یه آرایه تشخیص دهد . ( بدون استفاده از توابع دیگر ) .

ALI TT
سه شنبه 01 بهمن 1387, 18:25 عصر
ممنون دوستان
به نظر خودم هم از این سبکتر و بهتر نمیشه !
اولین عدد رو با کوچکترین عدد ممکن (Long.MinValue) مقایسه میکنه و بزرگتر رو نگه میداره ، ( یعنی میده به متغیر use_Long )
بعد دومین عدد رو با مقداری که توی شرط قبلی بزرگتر بود ( use_Long ) مقایسه و بعد اگه بزرگتر از قبلی بود ، قبلی رو ول میکنه و عدد جدیده ( که دومی باشه ) رو میده به use_Long . و همین طور تا آخر ......... در آخر هم مقدار use_Long مسلما بزرگتر از همه است .

برای بدست آوردن کوچکترین عدد هم کافیه :

اینو : Long.MinValue رو بکنی Integer.MaxValue
و علامت > رو بکنی <

در کل :

Dim Array_int As Integer() = {-100, -5, -654, -20}
Dim use_Long As Long = Long.MaxValue

For Each Max As Long In Array_int
If use_Long > Max Then use_Long = Max
Next

MessageBox.Show(use_Long)