140 likes | 217 Views
VB Core II. Conditional statements Exception handling Loops Arrays Debugging. if statements. If c > 5 Then x = 1: y = 3. If c > 5 Then x = 1 y = 3 End If. If c > 5 Then x = 1 y = 3 ElseIf c = 4 Then z = 7 Else x = 9 End If. If c > 5 Then x = 1
E N D
VB Core II • Conditional statements • Exception handling • Loops • Arrays • Debugging
if statements If c > 5 Then x = 1: y = 3 If c > 5 Then x = 1 y = 3 End If If c > 5 Then x = 1 y = 3 ElseIf c = 4 Then z = 7 Else x = 9 End If If c > 5 Then x = 1 y = 3 Else z = 7 End If
Exercise – quadratic equation solver Create a form with – 3 textboxes to input values for a b and c (and labels as prompts) 2 labels where the roots will be shown A button captioned 'Solve' Code the button (square root function is sqr )
select • Dim Number • Number = 8 ' Initialize variable. • Select Case Number ' Evaluate Number. • Case 1 To 5 ' Number between 1 and 5, inclusive. • x=4 • Case 6, 7, 8 ' Number between 6 and 8. • x=5 • Case 9 To 10 ' Number is 9 or 10. • x=6 • Case Else ' Other values. • x=7 • End Select
Error and exception handling • exception = problem event at run-time • usually related to I/O • eg file not found, server connection lost, invalid user input • not a programming bug • VB calls exception errors • (Unlike Java) VB does not force exception handling
Error handlers – example - invalid numbers Private Sub Command1_Click() Dim num1 As Integer Dim num2 As Integer Dim result As Integer On Error GoTo myErrorHandler num1 = Text1.Text num2 = Text2.Text result = num1 + num2 Label1.Caption = result Exit Sub myErrorHandler: If Err.Number = 13 Then MsgBox ("Please enter a valid number") Else MsgBox (Err.Description) End If Resume Next End Sub Exercise Try this out in the calculator program Then deal with divide by zero (11)
For next loops Dim x as Integer, total As Integer total = 0 For x = 1 To 5 total = total + x Next Dim x as Integer, total As Integer total = 0 For x = 1 To 5 Step 2 total = total + x Next
Debugging – debug.print • Debug.print x,y,z • Immediate window – CTRL G Exercise – write a for next loop to add up the odd numbers from 1 to 9 inclusive. Use debug.print to check it works
Other loops Dim c As Integer c = 1 Do While c < 5 c = c + 1 Loop Dim c As Integer c = 1 Do Until c >4 c = c + 1 Loop Dim c As Integer c = 1 Do c = c + 1 Loop While c < 5 Dim c As Integer, x as integer c = 1 x=2 Do c = c + 1 Loop Until c>4 And x<>3
Arrays (fixed size) Dim x(100) As Integer Dim i As Integer For i = 0 To 100 x(i) = 99 Next Dim x(1 To 3, 1 To 3) As Integer Dim i as integer, j As Integer For i = 1 To 3 For j = 1 To 3 x(i, j) = 99 Next Next
Dynamic arrays Dim x() As Integer ReDim x(5) Dim i, j As Integer For i = 1 To 5 x(i) = 99 Next ReDim Preserve x(10) For i = 6 To 10 x(i) = 100 Next
User defined type – record or struct • Private Type employee • payrollNumber As Integer • name As String • End Type • Private Sub Command1_Click() • Dim emp1 As employee • emp1.name = "John" • emp1.payrollNumber = 4082 • End Sub • Tidier • Halfway to class • Needed for Win32 API
Exercise • Program a button so it finds the prime numbers up to 100 • Produce output using Debug.print • Use the Sieve of Eratosthenes: • Mark off every second number after 2 • Every third number after 3 • Every fourth number after 4 • .. • What is left are the primes