یکشنبه ۲۳ خرداد ۱۴۰۰

ویژال بیسیک

بخش

مبحث سوم(آرایه)

1- 5 عدد  را دریافت در آرایه ذخیره ،  و  نمایش مجموع و میانگین آنها

یک عدد commamd و دو عدد textbox بر روی فرم قرار دهید و کد زیر را برای Command1درج کنید

Option Base 1
Const n = 5
Dim x(n) As Single
Dim s As Single
Private Sub Command1_Click()
     For i = 1 To n
           x(i) = InputBox("Enter number:")
           s = s + x(i)
     Next i
      Text1 = s
      Text2 = s / n
End Sub

2- 5 عدد  را دریافت در آرایه ذخیره ،  و  نمایش بزگترین عدد (ماکزیمم)

-برنامه ی زیر 5 عدد را دریافت و در یک آریه ذخیره می کند و سپس ماکزیمم(بزرگترین) را نمایش می دهد

--فرمی دارای یک command و یک textbox ایجاد نمایید و سپس کد زیر را درج کنید

Const n = 5
Dim x(n) As Single
Dim max As Single
Private Sub Command1_Click()
    x(1) = InputBox("Enter number:")
    max = x(1)
    For i = 1 To n
     x(i) = InputBox("Enter number:")
     Print x(i)
     If x(i) > max Then max = x(i)
    Next i
    Text1 = max
End Sub

3- مرتب سازی حبابی

برنامه ای بنویسید که تعداد 5 عد را دریافت و در یک آرایه ذخیره کند . با کلیک بر روی دکمه مرتب سازی آنها را مرتب کند و با کلیک بر روی دکمه نمایش آرایه را در ListBox نمایش دهد

1- سه عدد CommandButton بر روی فرم قرار دهید

2- یک عدد ListBox ّبه فرم اضافه کنید

3- کدهای مربوطه را درج نمایید

Const n = 5
Dim x(1 To n) As Integer
Private Sub Command1_Click()
     'دریافت آرایه
     For i = 1 To n
       x(i) = InputBox("Enter X ")
      Next i
End Sub

Private Sub Command2_Click()
    'نمایش آرایه
     List1.Clear
     For i = 1 To n
        List1.AddItem x(i)
      Next i
    
End Sub

Private Sub Command3_Click()
    'مرتب سازی حبابی
    
        For i = n - 1 To 1 Step -1
          For j = 1 To i
             If x(j) > x(j + 1) Then
                temp = x(j)
                x(j) = x(j + 1)
                x(j + 1) = temp
              End If
          
          Next j
        Next i
End Sub
      

4-جستجوی خطی

برنامه ی زیر 10 عدد تصادفی تولید و در آرایه ذخیره و در لیست یک نمایش می دهد با کلیک بر روی دکمه جستجو ، کلید را در آرایه به صورت خطی جستجو می کند

مراحل طراحی : 1- دو عدد ListBox و یک عدد TextBoxو دو عدد Command بر روی فرم قرار دهید 2-کد های زیر را درج کنید


Const n As Integer = 10
Dim x(1 To n) As Integer
Private Sub Command1_Click()
 'تولید اعداد تصادفی و ذخیره در آرایه
  List1.Clear
  Call Randomize
  For i = 1 To n
    x(i) = 1000 + Rnd * 9000
    List1.AddItem x(i)
  Next i
End Sub

Private Sub Command2_Click()
  'جستجوی خطی
  Dim r   As Boolean
  r = False 'äÊíÌå ÌÓÊÌæ
  For i = 1 To n
    If x(i) = Text1 Then
       r = True
       Exit For
    End If
  Next i
  
  
 If r = True Then
     List1.ListIndex = i - 1
     MsgBox "عدد پیدا شده " & "در خانه " & i & "است"
   
 Else
   MsgBox "عدد پیدا نشد  !! "
 End If

End Sub


5-جستجوی دودویی

دریافت و ذخیره 5 عدد در آرایه و نمایش در لیست 1 ، جستجوی کلید به صورت باینری

مراحل طراحی
1- کنترل های زیر را بر روی فرم قرار دهید 
    الف -  یک عدد Command  با عنوان  دریافت  اعداد 
    ب- یک Command  با عنوان مرتب سازی 
    ج-یک TextBox  برای ورود کلید جستجو 
    د- یک Command  برای جستجوی دودویی
2- کد های زیر را درج کنید 

Const n = 5
Dim x(1 To n) As Integer
'----
Private Sub Cmd_Bianary_Search_Click()
    'جستجوی دودویی
     Dim L As Integer, M As Integer, H As Integer
     Dim R As Boolean
     w = Text1
     R = False
     L = LBound(x)
     H = UBound(x)
     M = (L + H) / 2
     Do While L <= H
     
      If x(M) = w Then
        R = True
        Exit Do
      End If
      If x(M) > w Then
        H = M - 1
      End If
      
      If x(M) < w Then
         L = M + 1
      End If
       M = (L + H) / 2
     Loop
     
     
    If R = True Then
       MsgBox "ÚÏÏ íÏÇ ÔÏ "
    Else
       MsgBox "ÚÏÏ æÌæÏ äÏÇÑÏ !!!!"
    End If
End Sub
'---------
Private Sub Cmd_Bubble_Sort_Click()
     'مرتب سازی حبابی
     For i = n - 1 To 1 Step -1
      For j = 1 To i
         If x(j) > x(j + 1) Then
           temp = x(j)
           x(j) = x(j + 1)
           x(j + 1) = temp
         End If
      
      Next j
    Next i
    
    'نمایش  آرایه ی مرتب شده در لیست 2
     For i = 1 To n
      List2.AddItem x(i)
     Next i
End Sub
'---
Private Sub cmd_Input_Array_Click()
      'دریافت اعداد 
      For i = 1 To n
        x(i) = InputBox("Enter x(" & i & ")")
        List1.AddItem x(i)
      Next i
End Sub

6- دریافت ماتریس 4 در 4 و بررسی صفر بودن تمام اعداد قطر اصلی

برنامه ای بنویسید که : 1- یک ماتریس 4 در 4 را دریافت کند 2- در صورتیکه تمامی اعداد قطر اصلی صفر باشد با پیغام مناسب اعلام کند

مراحل طراحی 1- یک عدد Command بر روی فرم قرار دهید 2- کد زیر را وارد کنید

<

Option Base 1
Dim x(4, 4) As Integer
Private Sub Command1_Click()
        'دریافت ماتریس 
        For i = 1 To 4 'ÈÑÇí ÓØÑåÇ
          For j = 1 To 4  ' ÈÑÇí ÓÊæä åÇ
             x(i, j) = InputBox("Enter x(" & i & "," & j & ")")
          Next j
        Next i
        
        'نمایش ماتریس
        For i = 1 To 4 'ÈÑÇí ÓØÑåÇ
          For j = 1 To 4  ' ÈÑÇí ÓÊæä åÇ
             Print x(i, j),
          Next j
          Print
        Next i
        
        'بررسی صفر بودن تمامی اعداد روی قطر اصلی ماتریس
        s = 0
        For i = 1 To 4 'ÈÑÇí ÓØÑåÇ
           If x(1, 1) = x(i, i) Then s = s + 1
        Next i
        
        If s = 4 Then
           Print "ok"
        Else
           Print "NO"
        End If
        
End Sub

7- دریافت نمره و نام 5 دانش آموز و ذخیره در آرایه و نمایش شاگرد دوم کلاس

برنامه ای بنویسید که

1- نام و نمره 5 دانش آموز را دریافت و در آرایه ذخیره کند

2- شاگرد دوم کلاس را نمایش دهد

مراحل طراحی

1- یک Command برای دریافت نام و نمره بر روی فرم قرزار دهید

2- یک Command برای مرتب سازی و نمایش در لیست دو درج کنید

3- یک Command برای نمایش شاگرد دو قرار دهید

4- دو عدد Text Box بر روی فرمی برای نمایش مشخصات شاگرد دوم درج کنید


Option Base 1
Const n = 5
Dim fname(n) As String
Dim score(n) As Single
'-----------
Private Sub Command1_Click()
 'دریافت نام و نمره
 For i = 1 To n
    fname(i) = InputBox("Enter Fname" & i)
    
    score(i) = InputBox("Enter score " & i)
 Next i
End Sub
'------
Private Sub Command2_Click()
 'نمایش نام و نمره در لیست 
  List1.Clear
  List2.Clear
 For i = 1 To n
    List1.AddItem fname(i)
    List2.AddItem score(i)
 Next i

End Sub
'---
Private Sub Command3_Click()
'مرتب سازی 

For i = n - 1 To 1 Step -1
 For j = 1 To i
  If score(j) < score(j + 1) Then
     temp = score(j)
     score(j) = score(j + 1)
     score(j + 1) = temp
      
     temp = fname(j)
     fname(j) = fname(j + 1)
     fname(j + 1) = temp
  End If
 Next j
Next i
'---------              
 Command2_Click 'نمایش مرتب شده
 Text1 = fname(2)
 Text2 = score(2)
End Sub


8- تغیر رنگ فرم یا استفاده از عدد Command Button که به صورت آرایه کنترلی ایجاد شده اند

برنامه ای بنویبید که : با کلیک بر روی هر دکمه رنگ فرم تغیر کند

دکمه 1 : رنگ قرمز

دکمه 2 : رنگ آبی

دکمه 3 : رنگ زرد

توجه : از آرایه کنترلی استفاده شود .

یک عدد CommandButton بر روی فرم قرار دهید

1- نام آن را به cmd تغییر دهید

2- مشخصه ی index آن را برابر صفر قرار دهید تا آرایه کترلی شود

3- سپس با copy , paste دو عدد کنترل دیگر بر روی فرم ایجاد کنید



Private Sub Form_Load()
 cmd(0).Caption = "Red"
 cmd(1).Caption = "Blue"
 cmd(2).Caption = "Yellow"
End Sub


Private Sub cmd_Click(Index As Integer)
  
 Select Case Index
  Case 0
     Me.BackColor = vbRed
  Case 1
      Me.BackColor = vbBlue
  Case 2
      Me.BackColor = vbYellow
  End Select
  
End Sub

آرایه های کنترلی

9-نمایش 5 تصویر با کلیک بر روی دکمه ی Next jw کنترل های Image به صورت آرایه کنترلی هستند

برنامه ای بنویسید که با هر بار کلیک بر روی دکمه Next تصویر بعدی را نمایش دهد توجه :از آرایه کنترلی استفاده شود

مراحل انجام کار :

1- یک عدد Image بر روی فرم قرار دهید

2- نام آن را به img تغییر دهید

3- مشخصه index ان را برابر صفر قرار دهید تا بصورت آرایه کنترلی تبدیل شود

4- تعداد چهار عدد از ان را به با استفاده از Copy , Paste ایجاد کنید

5- با استفاده از مشخصه picture برای هر کدام تصویر ی دلخواه انتخاب کنید

6-یک عدد CommandButton به فرم اضافه کنید و عنوان آن را Next قرار دهید

7- کدهای زیر را درج کنید


Dim k As Integer

Private Sub Command1_Click()
     If k = 4 Then Exit Sub
     img(k).Visible = False
     k = k + 1
     img(k).Visible = True
     
End Sub

Private Sub Form_Load()
     For i = 1 To 4
       img(i).Visible = False
     Next i
      k = 0
End Sub

10- بار گذاری 5 عدد کنترل آرایه ای از نوع TextBox

برنامه ای بنویسید که در زمان اجرا چهار عدد جعبه متن بر اساس جعبه ی متن شماره یک ایجاد کند

1- یک عدد جعبه متن بر روی فرم قرار داده و نام آنرا txt قرار دهید

2- مقدار index آن را برابر صفر قرار دهید تا تبدیل به آرایه کنترلی شود

3- یک عدد command نیز به فرم اضافه کنید

4- حال کدهای زیر را درج کند


Private Sub Command1_Click()
For i = 1 To 4
    Load txt(i)
    txt(i).Visible = True
    txt(i).Top = txt(i).Top + txt(0).Height * i
    txt(i).Text = i
    txt(i).BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Next i

End Sub

تعداد بازدید کنندگان : 781807
هرگونه کپی برداری با ذکر منبع بلامانع است -