Aufgabe:
Erstellung eines Programms zur Berechnung des Ohmschen GesetzesEingaben:
R, U, I (daraus 2)Ausgaben:
R, U, I (die fehlende Größe)Berechnung:
R = U / I , I = U / R , U = I * RSteuerelemente:
Textboxen:
txtohm
txtvolt
txtampere
Label:
lblohm
lblampere
lblvolt
Command-ButtonVariablen:
dblu as double
dbli as double
dblr as double
Oberfläche:
Quellcode:
'Name: C.Klisch
'Klasse: ITA2B
'Zweck: Berechnung mittels ohmschen Gesetz
'Datum: 28.08.01 - ??.10.01
Option Explicit
Dim dblU As Variant
Dim dblI As Variant
Dim dblR As Variant
Dim dblumrechnungsfaktora As Variant
Dim dblumrechnungsfaktoro As Variant
Dim dblumrechnungsfaktorv As Variant
Dim dbllistindexa As Variant
Dim dbllistindexo As Variant
Dim dbllistindexv As Variant
Dim fehler As Integer
Dim fehlerzähler As Integer
Private Sub beenden_Click()
'######Menüpunkt Datei-Ende
End
End Sub
Private Sub berechnen_Click()
fehler = 1
fehl.Visible = False
'####### Berechnungsfaktor festlegen
dbllistindexa = cmbfaktorampere.ListIndex
dbllistindexv = cmbfaktorvolt.ListIndex
dbllistindexo = cmbfaktorohm.ListIndex
dblumrechnungsfaktora = 10 ^ (9 - (3 * dbllistindexa))
dblumrechnungsfaktorv = 10 ^ (9 - (3 * dbllistindexv))
dblumrechnungsfaktoro = 10 ^ (9 - (3 * dbllistindexo))
'####### VOLT
If txtVolt.Text = "" And IsNumeric(txtAmpere.Text) And IsNumeric(txtOhm.Text) Then
dblI = txtAmpere.Text
dblI = dblI * dblumrechnungsfaktora
dblR = txtOhm.Text
dblR = dblR * dblumrechnungsfaktoro
txtVolt.Text = dblI * dblR
dblU = txtVolt.Text
fehler = 0
'####### AMPERE
ElseIf IsNumeric(txtVolt.Text) And txtAmpere.Text = "" And IsNumeric(txtOhm.Text) Then
dblU = txtVolt.Text
dblU = dblU * dblumrechnungsfaktorv
dblR = txtOhm.Text
dblR = dblR * dblumrechnungsfaktoro
txtAmpere.Text = dblU / dblR
dblI = txtAmpere.Text
fehler = 0
'##### OHM
ElseIf IsNumeric(txtVolt.Text) And IsNumeric(txtAmpere.Text) And txtOhm.Text = "" Then
dblU = txtVolt.Text
dblU = dblU * dblumrechnungsfaktorv
dblI = txtAmpere.Text
dblI = dblI * dblumrechnungsfaktora
txtOhm.Text = dblU / dblI
dblR = txtOhm.Text
fehler = 0
End If
'print (Int(((Log(###) / Log(10)) - 9) / (-3))) + 1
'### Wenn keine Fehler, dann
If fehler = 0 Then
'### Ergebnisse / Zahlen in geeignete Größe umwandeln
cmbfaktorampere.ListIndex = (Int(((Log((dblI)) / Log(10)) - 9) / (-3))) + 1
txtAmpere.Text = dblI / (10 ^ (9 - (3 * cmbfaktorampere.ListIndex)))
cmbfaktorvolt.ListIndex = (Int(((Log((dblU)) / Log(10)) - 9) / (-3))) + 1
txtVolt.Text = dblU / (10 ^ (9 - (3 * cmbfaktorvolt.ListIndex)))
cmbfaktorohm.ListIndex = (Int(((Log((dblR)) / Log(10)) - 9) / (-3))) + 1
txtOhm.Text = dblR / (10 ^ (9 - (3 * cmbfaktorohm.ListIndex)))
End If
If fehler = 1 Then
fehl.Visible = True
End If
End Sub
Private Sub ende_Click()
End
End Sub
'#######Hinzufügen der VorAuswahlen in der Combobox (bes. in Eigenschaften)
Private Sub Form_Load()
cmbfaktorohm.Text = "Ohm"
cmbfaktorvolt.Text = "Volt"
cmbfaktorampere.Text = "Ampere"
End Sub
Private Sub hilfe_Click(Index As Integer)
If timerfehler.Enabled = True Then
timerfehler.Enabled = False
berechnen.Enabled = True
Else
timerfehler.Enabled = True
End If
End Sub
Private Sub lblwww_Click()
'## URL im Browser starten
URLGoTo Me.hWnd, wwwadresse.Caption
End Sub
Private Sub loesch_Click(Index As Integer)
'#####Löschen aller Felder
txtOhm.Text = ""
txtAmpere.Text = ""
txtVolt.Text = ""
cmbfaktorampere.Text = "Ampere"
cmbfaktorvolt.Text = "Volt"
cmbfaktorohm.Text = "Ohm"
fehl.Visible = False
End Sub
Private Sub loeschen_Click()
'#####Löschen aller Felder
txtOhm.Text = ""
txtAmpere.Text = ""
txtVolt.Text = ""
cmbfaktorampere.Text = "Ampere"
cmbfaktorvolt.Text = "Volt"
cmbfaktorohm.Text = "Ohm"
fehl.Visible = False
End Sub
Private Sub blinker_Timer()
If fehl.ForeColor = &H80000012 Then
fehl.ForeColor = &HFF&
Else
fehl.ForeColor = &H80000012
End If
If berechnen.Caption = "Berechnen" Then
berechnen.Caption = "Hier klicken"
Else
berechnen.Caption = "Berechnen"
End If
End Sub
Private Sub timerfehler_Timer()
'#### Zählen der ausgefüllten Felder
fehlerzähler = 0
If IsNumeric(txtVolt.Text) And txtVolt.Text <> "" Then fehlerzähler = fehlerzähler + 1
If IsNumeric(txtAmpere.Text) And txtAmpere.Text <> "" Then fehlerzähler = fehlerzähler + 1
If IsNumeric(txtOhm.Text) And txtOhm.Text <> "" Then fehlerzähler = fehlerzähler + 1
If fehlerzähler = 2 Then
berechnen.Enabled = True
blinker.Enabled = True
Else
berechnen.Enabled = False
blinker.Enabled = False
End If
End Sub
Zu kompliziert??
Dann Download als Projekt (5 KB)