View Full Version : سوال: کار با آرایه ها
  
nabavi1387
جمعه 20 خرداد 1390, 20:18 عصر
سلام دوستان عزیز خسته نباشید :
 
من می خواهم برنامه ای بنویسم با آرایه ها که شکل زیر 3*3 را چاپ کند.
 
100
010
001
 
با تشکر
pcdownload.bloghaa.com
شنبه 21 خرداد 1390, 00: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, 09:48 صبح
سلام دوست عزیز ممنونم که پاسخ دادی حالا یکی دیگه می خوام 5*5 به شکل زیر :
 
01111
10111
11011
11101
11110
 
با تشکر
arenaw
شنبه 21 خرداد 1390, 12: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, 12: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, 23: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, 20: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
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.