Modify a text file: $/nov19a.vb
$/nov19a.vb
Public Class Form1 '///////// I/O methods Sub get2(ByRef p As Integer, ByRef q As Integer) '//// Get 2 input values from strings in txt boxes. Dim s As String s = Me.txtA.Text p = CInt(s) s = Me.txtB.Text q = CInt(s) End Sub '(Too condensed!) p=CInt(Me.txtA.Text) : q = CInt(Me.txtB.Text) '(Don't do this!) p = Me.txtA.Text:q = Me.txtB.Text Sub say(ByVal s As String) Me.output.Items.Add(s) '//// Output a string End Sub Sub saywhat(ByVal s As String, ByVal n As Integer) Me.output.Items.Add(s) '//// Output a string & a value Call say(s & " " & CInt(n)) End Sub Private Sub btnPower_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPower.Click '/////// Calculate a to the b power; output the result. Dim a, b As Integer 'Input values Dim answer As Integer 'The computed value (result of function) Call get2(a, b) '// INPUT: a, b answer = power(a, b) '// PROC: Compute the answer ( a raised to b ). saywhat("The result is:", answer) '// OUTPUT: msg & # End Sub Function power(ByVal a As Integer, ByVal b As Integer) As Integer '//// Compute a raised to b power Dim result As Integer result = a ^ b Return result End Function Function quotient(ByVal a As Integer, ByVal b As Integer) As Integer '//// Return the quotient of a divided by b Return a / b End Function Private Sub btnQuotient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuotient.Click '///// Compute & show quotient a/b Dim a, b As Integer 'Input values Dim answer As Integer 'The computed value (result of function) Call get2(a, b) '// INPUT: a, b answer = quotient(a, b) '// PROC: Compute the answer ( a/b) saywhat("The quotient is:", answer) '// OUTPUT: msg & End Sub Private Sub btnCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheck.Click '//// Determine if inputs are in order. Dim a, b As Integer 'Input values Dim ok As Boolean 'True if value of first < val of 2nd Dim s As String 'The selected msg Call get2(a, b) '// INPUT: a, b ok = isInOrder(a, b) 'PROC: Set ok based on a, b 'OUTPUT: one of 2 msgs If (ok) Then s = "The values are in order" Else s = "Whoops, they're NOT in order" End If say(s) End Sub Function isInOrder1(ByVal p As Integer, ByVal q As Integer) As Boolean '///// Return true iff p <= q. false if q>p Dim result As Boolean If (p <= q) Then result = True Else result = False End If Return result End Function Function isInOrder2(ByVal p As Integer, ByVal q As Integer) As Boolean '///// Return true iff p <= q. false if q>p Dim result As Boolean result = p <= q 'If (p <= q) Then ' result = True 'Else ' result = False 'End If Return result End Function Function isInOrder(ByVal p As Integer, ByVal q As Integer) As Boolean Return p <= q '///// Return true iff p <= q. End Function Private Sub btnFix_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFix.Click '//// Fix (strings in txtBoxes) if out of order. Dim a, b As Integer 'Input values Dim ok As Boolean 'True if value of first < val of 2nd Call get2(a, b) '// INPUT: a, b ok = isInOrder(a, b) 'PROC: Set ok based on a, b '//// Now change the txtbox values (if necc.) If (ok) Then 'Call fix2(a, b) Else Call fix2(b, a) End If 'OUTPUT: bye by msg say("All is well, now.") End Sub Sub fix2(ByVal p As Integer, ByVal q As Integer) '//// Put new value strings into txtboxes Me.txtA.Text = Format(p) Me.txtB.Text = Format(q) End Sub End Class