Monday, January 3, 2011

Monday 1/03/11


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "Convert Temperatures"

End Sub

Private Sub Convert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Convert.Click
On Error Resume Next

If (SourceFahrenheit.Checked = True) Then
' Convert from Fahrenheit to other types.
If (IsNumeric(ValueFahrenheit.Text) = True) Then
ValueCelsius.Text = _
(Val(ValueFahrenheit.text) - 32) / 1.8
ValueKelvin.Text = _
((Val(ValueFahrenheit.Text) - 32) / 1.8) + 273.15
Else
ValueCelsius.Text = "Error"
ValueKelvin.Text = "Error"
End If
ElseIf (SourceCelsius.Checked = True) Then
If (IsNumeric(ValueCelsius.Text) = True) Then
ValueFahrenheit.Text = _
(Val(ValueCelsius.Text) * 1.8) + 32
ValueKelvin.Text = Val(ValueCelsius.Text) + 273.15
Else
'invalid data
ValueFahrenheit.Text = "Error"
ValueKelvin.Text = "Error"
End If
Else
If (IsNumeric(ValueKelvin.Text) = True) Then
ValueFahrenheit.Text = _
((Val(ValueKelvin.Text) - 273.14) * 1.8) + 32
ValueCelsius.Text = Val(ValueKelvin.Text) - 273.15
Else
ValueFahrenheit.Text = "Error"
ValueCelsius.Text = "Error"
End If
End If
End Sub


Here is this same tutorial written as a console application. It comes from Visual Basic 2005 Cookbook by Tim Patrick and John Clark Craig.


Module Module1


Sub Main()
' -- The program starts here.
Dim userInput As String
Dim sourceType As String

On Error Resume Next

' Display general Instructions

Console.WriteLine("Instructions: " & vbCrLf & _
"To convert temperature, enter a starting " & _
"temperature, followed by one of the following letters: " & vbCrLf & _
" F = Fahrenheit" & vbCrLf & _
" C = Celsius " & vbCrLf & _
" K = Kelvin " & vbCrLf & _
"Enter a blank line to exit." & vbCrLf)

'--- The program continues until the user enters a blank line

Do While True
'---Prompt the user
Console.WriteLine("Enter a source temperature.")
Console.Write(">")
userInput = Console.ReadLine()

'---- A blank line exits the application
If (Trim(userInput) = "") Then Exit Do

' ---- Determine the source type.
userInput = UCase(userInput)
If (InStr(userInput, "F") > 0) Then
' ---- Start with Fahrenheit
sourceType = "F"
userInput = Replace(userInput, "F", "")
ElseIf (InStr(userInput, "C") > 0) Then
' --- Start with Celsius
sourceType = "C"
userInput = Replace(userInput, "C", "")
ElseIf (InStr(userInput, "K") > 0) Then
'---- Start with Kelvin
sourceType = "K"
userInput = Replace(userInput, "K", "")
Else
' --- invalid entry
Console.WriteLine("Invalid input: " & _
userInput & vbCrLf)
Continue Do
End If

'Check for a valid temperature.
userInput = Trim(userInput)
If (IsNumeric(userInput) = False) Then
Console.WriteLine("Invalid number: " & _
userInput & vbCrLf)
Continue Do
End If

'----Time to convert.
If (sourceType = "F") Then
' ---- convert from Fahrenheit to other types
Console.WriteLine(" Fahrenheit: " & userInput)
Console.WriteLine(" Celsius: " & _
(Val(userInput) - 32) / 1.8)
Console.WriteLine(" Kelvin: " & _
((Val(userInput) - 32) / 1.8) + 273.15)
ElseIf (sourceType = "C") Then
' ---- convert from Celsius to other types.
Console.WriteLine(" Fahrenheit: " & _
(Val(userInput) * 1.8) + 32)
Console.WriteLine(" Celsius: " & userInput)
Console.WriteLine(" Kelvin: " & _
Val(userInput) + 273.15)
Else
' --- convert from kelvin to other types.
Console.WriteLine(" Fahrenheit: " & _
((Val(userInput) - 273.15) * 1.8) + 32)
Console.WriteLine(" Celsius: " & _
Val(userInput) - 273.15)
Console.WriteLine(" Kelvin: " & userInput)

End If
Loop
End

End Sub

End Module

No comments: