View Full Version : سوال: مرتب سازی
Salam ay doost
جمعه 02 اسفند 1387, 17:10 عصر
آقا سلام :بامزه:
من معذرت میخوام که همچین سئوالی رو میپرسم.
ولی راهی ندارم فردا امتحان عملی دارم .
شما میتونین در مورد مرتب کردن کد زیر یکم توضیح بدین
'*********************
For i = 0 To 8
For j = i + 1 To 9
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next
Next
'************************
xman_dj
جمعه 02 اسفند 1387, 17:41 عصر
در اينجا متغيير t يا همون temp فقط براي ذخيره سازي موقت استفاده ميشه
و كار اين دستور عوض كردن مقادير (a(j و (a(i هستش و از دو تا for براي اينكه كل آرايه رو تا آخر مقايسه كنه استفاده شده
يا به عبارتي مقدار آرايه با مقدار خانه يكي بيشتر آرايه مقايسه ميشه اگه بيشتر بود جاشون عوض ميشه و اگر نبود همون طوري ميمونه
Salam ay doost
جمعه 02 اسفند 1387, 19:33 عصر
ممنون
ولی من تو vb6 تازه کارم خوب متوجه نشدم
اگه میشه خط به خط توضیح بدین
xman_dj
جمعه 02 اسفند 1387, 20:01 عصر
For i = 0 To 8
For j = i + 1 To 9
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next
Next
دو تا فور برای اینکه آرایه از اول تا آخر خونده شه
چون آرایه A مقدارش 8 تا هست فور اولی از صفر شروع شده و فور دوم از 1 تا بتونه مقادیرو با هم مقایسه کنه فور دوم برای مقدار برای مقایسه هست.
برای مثال اگر در خانه های آرایه مقادیر به ترتیب 3 2 5 6 4 8 7 و... باشه
اول خونه (A(0 و( A(1 هم مقایسه میکنه
3 در خونه اول یعنی A(0)
2 در خونه (A(1
بعد میرسه به شرط
If a(0) > a(1) Then
چون مقدار (A(0 از مقدار (A(1 بیشتره شرط اجرا میشه
3>2
بنابراین T=3
بعد تو A(0)=2
بعد تو A(1)=T یا همون 3
در اینجا از متغییر T برای عوض کردن جای مقادیر استفاده شده
و همین طوری میره تا آخر تا فور ها تموم بشن این کار باعث میشه که کل آرایه از کوچک به بزرگ مرتب شه
Salam ay doost
جمعه 02 اسفند 1387, 20:36 عصر
For i = 0 To 8
For j = i + 1 To 9
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next
Next
چرا تو فور j باز i رو باهاش جمع کرده؟
xman_dj
جمعه 02 اسفند 1387, 20:48 عصر
اینجا i مقدار نیست اینجا این کارو کرده تا یک خانه بعدی آرایه مقایسه شه با خانه انتخابی آرایه
اگه i مینوشت که عمل مرتب سازی انجام نمیشد
اینطوری میشد
If a(i) > a(i) Then
چون i و j یکی میشد .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.