PDA

View Full Version : مبتدی: فـــوق مبتدی : کمک برای توضیح یک حلقه FOR تو در تو



VB.2000
سه شنبه 21 خرداد 1392, 12:44 عصر
سلام
من این کدو راستش هر جور فکر کردم نتونستم برای خودم تشریح کنم این کدا رو .
راستش من کلا هرچی سعی کردم از همین VB همین حلقه های تکرارو نتونستم برای مغزم تعریف کنم ! شاید واقعا:عصبانی++:شده باشم ...
این برنامه از InputBox , ده تا عدد میگیره و در لیست باکس اد میکنه و در آرایه قرار میده .
و ما میخوایم که عددی که بیشتر از همه تکرار شده رو به ما بگه (همراه با تعداد دفعات تکرار)
حالا من این کدو دارم , و اگه ممکنه برام همین قسمت FOR تو در توشو توضیح بدید ممنوننتون میشم .
ممنون


Dim a(10) As Integer
Dim i, j, Num, Count, MaxCount As Integer
For i = 1 To 10
a(i) = Convert.ToInt16(InputBox("Enter a number", ""))
ListBox1.Items.Add(Str(a(i)))
Next
MaxCount = 0


' ------------------------ FOR

For i = 1 To 10
Count = 0
For j = i To 10
If a(i) = a(j) Then Count = Count + 1
Next
If Count > MaxCount Then
MaxCount = Count
Num = a(i)
End If
Next

' ------------------------ FOR

If MaxCount > 1 Then
Label1.Text = Num.ToString() + " Count is " + MaxCount.ToString()
End If

h_a_m_i_d
سه شنبه 21 خرداد 1392, 13:57 عصر
خوب دوست عزیز ببین شما یک ارایه داری که ده تا خونه داره خوب باید بیای یک بار کل ارایه رو چک کنی تو این که شکی نیست
خوب حالا باید بیای چیکار کنی یکی یکی بنویسی که
اگر 1 بود مثلا به این متغییر یکی اضافه کنید
به جای اینقدر شرط میام چیکار میکنیم یک حلقه میذاریم
کار حلقه هم همینه که کارای تکراری رو برای ما انجام بده
مثلا 2+2+2+2+2+2=2*6 اینم تکراره عملگر جمع هست دیگه
حالا تو برنامه نویسی هم چیزایی که باید تکرار بشه رو ما میتونیم با حلقه بنویسیم
تکرار هم میشه دیگه
ده بار باید یک دستور if بنویسی میای حلقه میذاری
--------------------------------------------------------------------------------------------------------------------
خوب شما الان یک حلقه تکرار داری که ده بار تکرار میشه
یک حلقه تو در تو که داره تکرار میشه
میرسه به خونه اول مقدار ارایه خونه یک رو میگیره بعد میره تو حلقه تو در تو کل ارایه رو میگرده هر مقداری که با خونه اول برابر بود رو پس از بررسی باعث تغییر میشه تو متغییر Count که اونو +1 میکنه
ار حلقه تو در تو میاد پبیرون میگه اگر تعداد تکرار این خونه از تعداد بیشترین تکرار بیشتر بود بیا این مقدار رو بریز تو بیشترین تکرار داشته ها
بعد میاد دوباره اجرا میکنه حلقه رو
میرسه به خونه دوم مقدار ارایه خونه دوم رو میگیره بعد میره تو حلقه تو در تو کل ارایه رو میگرده هر مقداری که با خونه دوم برابر بود رو پس از بررسی باعث تغییر میشه تو متغییر Count که اونو +1 میکنه
ار حلقه تو در تو میاد پبیرون میگه اگر تعداد تکرار این خونه از تعداد بیشترین تکرار بیشتر بود بیا این مقدار رو بریز تو بیشترین تکرار داشته ها
الی اخر
تا اخر هم که بیشترین تعداد رو جاپ میکنه
دیگه تا جایی که میتونستم بازش کردم :)