0% found this document useful (0 votes)
9 views

Rana Linear Search

Uploaded by

huzaifar2007
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Rana Linear Search

Uploaded by

huzaifar2007
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

'Huzaifa Rana

'March 28, 2024


'RanaLinearSearch

Public Class frmLinearSearch


'declare global variables
Dim UserValue As Integer

Function FindItemIndex(ByRef array() As Integer, ByVal userNumber As Integer)


As Integer
'empty array
If array.Length = 0 Then
Return -1 'item not found
End If
'find search item
Dim index As Integer = 0
Do While (array(index) <> userNumber) And (index < array.Length - 1)
index += 1
Loop
If array(index) = userNumber Then
Return index 'item found
Else
Return -1 'item not found
End If
End Function

Sub EnableProcess()
Dim isValidInteger As Boolean = Integer.TryParse(txtUserValue.Text,
Nothing)
Dim isAnyRadioButtonChecked As Boolean = radAdd.Checked OrElse
radRemove.Checked OrElse radFind.Checked

btnProcess.Enabled = isValidInteger AndAlso isAnyRadioButtonChecked


End Sub

Sub Display(ByRef array() As Integer, lstDisplay As ListBox)


'clear listbox
lstDisplay.Items.Clear()

'dispay titles
lstDisplay.Items.Add("Index:" & vbTab & "Number:")
lstDisplay.Items.Add("**************************")

For index = 0 To array.Length - 1


lstDisplay.Items.Add(index & vbTab & array(index))
Next index
End Sub

Sub RemoveItem(ByRef array() As Integer, ByVal userNumber As Integer)


'delcare local variable
Dim ItemIndex As Integer

'check to see if number is already in array


ItemIndex = LinearSearch(array, userNumber)
'move rest of the items in array up
If ItemIndex > -1 Then
For index As Integer = ItemIndex To array.Length - 2
array(index) = array(index + 1)
Next index
ReDim Preserve array(array.Length - 2)
End If
End Sub

Sub AddItem(ByRef array() As Integer, ByVal userNumber As Integer)


'increase array size by one
ReDim Preserve array(array.Length)

'add new number to last index


array(array.Length - 1) = userNumber
End Sub

Function LinearSearch(ByRef array() As Integer, ByVal target As Integer) As


Integer
Dim i As Integer = -1
For index = 0 To array.Length - 1
If array(index) = target Then
i = index
Exit For
End If
Next index
Return i
End Function

Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs)


Handles btnExit.Click
'verify user wants to exit program
If MessageBox.Show("Are you sure you want to exit?", "Question",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes
Then
'close program
Application.Exit()
End If
End Sub

Private Sub btnProcess_Click(sender As System.Object, e As System.EventArgs)


Handles btnProcess.Click
'declare local variables
Static UserArray(-1) As Integer
Dim index As Integer

'store user input into variable


UserValue = Val(txtUserValue.Text)

If radAdd.Checked Then
AddItem(UserArray, UserValue)
Display(UserArray, lstDisplay)
ElseIf radRemove.Checked Then
RemoveItem(UserArray, UserValue)
Display(UserArray, lstDisplay)
ElseIf radFind.Checked Then
index = LinearSearch(UserArray, UserValue)
If index = -1 Then
lstDisplay.Items.Add("Element not found")
Else
lstDisplay.Items.Add("Element is at index " & index)
End If
End If
End Sub
Private Sub btnReset_Click(sender As System.Object, e As System.EventArgs)
Handles btnReset.Click
'reset form
btnProcess.Enabled = False
txtUserValue.Clear()
radAdd.Checked = False
radRemove.Checked = False
radFind.Checked = False
lstDisplay.Items.Clear()
End Sub

Private Sub txtUserValue_TextChanged(sender As System.Object, e As


System.EventArgs) Handles txtUserValue.TextChanged
EnableProcess()
End Sub

Private Sub radAdd_CheckedChanged(sender As System.Object, e As


System.EventArgs) Handles radAdd.CheckedChanged
EnableProcess()
End Sub

Private Sub radRemove_CheckedChanged(sender As System.Object, e As


System.EventArgs) Handles radRemove.CheckedChanged
EnableProcess()
End Sub

Private Sub radFind_CheckedChanged(sender As System.Object, e As


System.EventArgs) Handles radFind.CheckedChanged
EnableProcess()
End Sub
End Class

You might also like