ورود

View Full Version : سوال: کار با آرایه ها



nabavi1387
جمعه 20 خرداد 1390, 19:18 عصر
سلام دوستان عزیز خسته نباشید :

من می خواهم برنامه ای بنویسم با آرایه ها که شکل زیر 3*3 را چاپ کند.

100
010
001

با تشکر

pcdownload.bloghaa.com
جمعه 20 خرداد 1390, 23:54 عصر
سلام


Private Sub Form_Load()
Dim a(2, 2) As Long
Me.AutoRedraw = True
For i = 0 To 2
a(i, i) = 1
Next i
For i = 0 To 2
For j = 0 To 2
Print a(i, j);
Next j
Print
Next i
End Sub

nabavi1387
شنبه 21 خرداد 1390, 08:48 صبح
سلام دوست عزیز ممنونم که پاسخ دادی حالا یکی دیگه می خوام 5*5 به شکل زیر :

01111
10111
11011
11101
11110

با تشکر

arenaw
شنبه 21 خرداد 1390, 11:02 صبح
با سلام؛

Private Sub Form_Load()
Dim a&(4, 4)
Me.AutoRedraw = True
For i = 0 To 4
For j = 0 To 4
a(i, j) = 1
Next j
a(i, i) = 0
For j = 0 To 4
Print a(i, j);
Next j
Print
Next i
End Sub

محسن واژدی
شنبه 21 خرداد 1390, 11:21 صبح
سلام علیکم
Private Sub Form_Load()

Dim a(4, 4) As Long
Me.AutoRedraw = True
For i = 0 To 4
For j = 0 To 4
a(i, j) = 1
Next j
Next i
For i = 0 To 4
a(i, i) = 0
Next i
For i = 0 To 4
For j = 0 To 4
Print a(i, j);
Next j
Print
Next i
End Sub

البته روش جناب arenaw کوتاه تر است

موفق باشید

pcdownload.bloghaa.com
شنبه 21 خرداد 1390, 22:46 عصر
تابع زیر را برات نوشتم حالشو ببری:

Private Sub MatX(n As Long, v As Long, x As Long)
Dim a() As Long
ReDim a(n * n - 1)
Me.AutoRedraw = True
For i = 0 To n * n - 1
a(i) = x
Next i
For i = 0 To n - 1
p = i * (n + 1)
a(p) = v
Next i
For i = 0 To n * n - 1
If (i \ n) = (i / n) And i <> 0 Then
Print
End If
Print a(i);
Next i
End Sub

ورودی های تابع : n که باعث ایجاد یه ماتریس n*n میشه.V عدد روی قطر اصلی و x هم عدد بقیه عناصر.

پس برای ساخت ماتریس

01111
10111
11011
11101
11110

دستور :
MatX 5, 0, 1

برای ماتریس

100
010
001

از دستور :

MatX 3, 1, 0

استفاده کنید یا هر ماتریس n*n دیگه.

vbhamed
یک شنبه 22 خرداد 1390, 19:45 عصر
سلام

اينم يك راه ساده تر با امكان تنظيم تعداد توسط متغير L

Dim l%, i%, j%, x(100, 100)
l = 20
For i = 1 To l
x(i, i) = 1
For j = 1 To l
Print Abs(1 - x(i, j));
Next
Print
Next

البته اگر اجبار به استفاده از آرايه 2 بعدي نباشه ساده تر هم ميشه

Dim l%, i%, x(100)
l = 20
For i = 1 To l
x(i) = String$(l, "1")
Mid$(x(i), i, 1) = "0"
Print x(i)
Next