با سلام.
با کمک دوستان این سایت که خیلی ازشون تشکر می کنم، توانستم با زبان vb6 برنامه ی زیر را بنویسم:
Const M = 7
Const N = 5
Dim A(M, N) As Integer
Dim num As Integer
Dim k As Integer
For j = 0 To N - 1
k = j
For i = 0 To M
num = num + 1
A(i, k) = num
k = k - 1
If k < 0 Then Exit For
Next
Next
num = M * N
For j = N - 1 To 0 Step -1
k = j
For i = M - 1 To 0 Step -1
A(i, k) = num
num = num - 1
k = k + 1
If k > N - 1 Then Exit For
Next
Next
For i = 0 To M - 1
For j = 0 To N - 1
Print (A(i, j)),
Next
Print
Print
Next
این کد ها اگر m=3 و n=5 خروجی زیر را ایجاد می کند:
1 2 4 7 10
3 5 8 11 13
6 9 12 14 15
حالا من دو مشکل دارم:
1.اگر نسبت m به n بیشتر باشه، مثلا M=7 و N=5 باشد، وسط خروجی 0 هایی درست می کنه. در صورتی که اگر نسبت N به M بیشتر باشه این مشکل وجود نداره. لطفا برنامه را طوری ویرایش کنید که به جای M و N هر عددی قرار دهم کار کند و آن صفر ها را قرار ندهد.
2.می خواهم برای کد پرینت به جای For i = 0 To M - 1 از For i = 1 To M و همچنین به جای For j = 0 To N - 1 از For j = 1 To N استفاده کنم که نیاز هست اول کد های بالا ویرایش شود.
لطفا برنامه را طوری ویرایش کنید که به جای M و N هر عددی قرار دهم کار کند و آن صفر ها را قرار ندهد. همچنین در صورت امکان for ها به جای اینکه از 0 شروع شوند از 1 شروع شوند که با برنامه سازگار باشد. البته خود آرایه A باید از 0 شروع شود که الان هم همینطور است.
با تشکر.