PDA

View Full Version : پیدا کردن مد



man.inam
چهارشنبه 03 بهمن 1386, 16:37 عصر
یه برنامه که عناصر آرایه رو دریافت کرده ، میانگین عناصر آرایه ، مد و میانه رو حساب کنه !
واسه مد چیکار باید بکنم ؟
( مد : عنصری که بیش از همه تکرار شده باشه )

sokote_bi_payan
چهارشنبه 03 بهمن 1386, 16:54 عصر
به نام خدا

با سلام

خوب اگه همشون و تو یه آرایه بریزی بعد اون آرایه رو مرتب کنی فکر کنم راحت بتونی این کار و انجام بدی

MMR_1344
چهارشنبه 03 بهمن 1386, 17:07 عصر
دوست عزیز میتونی یک ماتریس دو بعدی بسازی و هر عدد جدید که اومد اون رو در یک خانه خالی قرار بدی و بعد دوم رو یک در نظر بگیری اگر اون عدد قبلاً وجود داشت در بعد دوم یکی به مقدار موجود اضافه کنی البته اگر اونها رو مرتب کنی کارت راحت تر میشه

man.inam
چهارشنبه 03 بهمن 1386, 17:25 عصر
دوست عزیز میتونی یک ماتریس دو بعدی بسازی و هر عدد جدید که اومد اون رو در یک خانه خالی قرار بدی و بعد دوم رو یک در نظر بگیری اگر اون عدد قبلاً وجود داشت در بعد دوم یکی به مقدار موجود اضافه کنی البته اگر اونها رو مرتب کنی کارت راحت تر میشه

خوب مرتبشون کردم ولی چطوری بنویسمش ؟
کمکم می کنید ؟ فردا امتحان دارم ...امکانش هست که اینم بده

mononok
چهارشنبه 03 بهمن 1386, 17:35 عصر
Private Sub Command1_Click()
Dim a(1 To 3) As Integer
a(1) = 1
a(2) = 2
a(3) = 3
For i = LBound(a) To UBound(a)
Sum = a(i) + Sum
Next
Print Sum
Dim c(1 To 3) As Integer
For i = LBound(a) To UBound(a)
For o = LBound(a) To UBound(a)
If a(i) = a(o) Then
c(i) = c(i) + 1
End If
Next
Next
For i = LBound(c) To UBound(c)
If c(i) > Max Then
Max = c(i)
Index = i
End If
Next
Dim f As Boolean
For i = LBound(c) To UBound(c) - 1
If c(i) = c(i + 1) Then
f = True
End If
Next
If f = False Then
Print "num:"; a(Index)
Print "count:"; Max
Else
Print "all nums equal repeat"
End If
End Sub
این کد کاملا عمل می کنه برای جمع و مد..منظورت رو از میانه نفهمیدم
قسمت اول کد برای جمع کردنه
قسمت دوم برای هر عدد تعداد تکرار رو حساب می کنه
قسمت سوم مقایسه میکنه کدام بیشتره(تعداد تکرار)
قسمت بعدی چک می کنه که شاید همه ی اعداد فقط یک بار تکرار شدند یا تعداد تکرارشان یکی هست...
با توجه به موارد گفته شده قسمت آخر نتیجه رو چهپ می کنه...
من این کد رو سریع نوشتم ممکنه باز موردی داشته باشه ولی به نظرم درسته

man.inam
چهارشنبه 03 بهمن 1386, 19:15 عصر
این کد کاملا عمل می کنه برای جمع و مد..منظورت رو از میانه نفهمیدم
قسمت اول کد برای جمع کردنه
قسمت دوم برای هر عدد تعداد تکرار رو حساب می کنه
قسمت سوم مقایسه میکنه کدام بیشتره(تعداد تکرار)
قسمت بعدی چک می کنه که شاید همه ی اعداد فقط یک بار تکرار شدند یا تعداد تکرارشان یکی هست...
با توجه به موارد گفته شده قسمت آخر نتیجه رو چهپ می کنه...
من این کد رو سریع نوشتم ممکنه باز موردی داشته باشه ولی به نظرم درسته

دست گلت درد نکنه دوست عزیز ...
فقط تو مد اشکال داشتم ...
میانه یعنی اینکه کودوم عنصر وسطه ...

man.inam
چهارشنبه 03 بهمن 1386, 19:30 عصر
فقط ینجا مقدار اولیه max چیه ؟

mononok
پنج شنبه 04 بهمن 1386, 06:27 صبح
مقدار اولیه max صفر هستش اما حتما نیازی نیست که بنویسیم چون متغیری که به آن مقدار ندهیم خود برنامه به آن صفر می دهد...