VisualBasic "Kreisberechnung" Problem

Martin.P

Lt. Commander
Registriert
Mai 2004
Beiträge
1.280
Hallo Community

Ich habe ein Problem mit dem erstellen einer Kreisberechnung mit der Konsole. Ich will das er bei r > 0 sagt: Error. Und ich würde gerne Wissen, wie ich das mache,. das er die konsole nicht sofort ausmacht nach einmal ausführen.

Mfg Martin

Imports System.Console
Module Module1

Sub Main()
Dim r, U, A As Single
Const Pi = 3.1415926

WriteLine("KREISBERECHNUNG")
Write("Radius eingeben: > ")
r = ReadLine()

If r > 0 Then

WriteLine("Error")

Else

U = 2 * Pi * r
A = Pi * r * r

WriteLine("Umfang = " & U)
WriteLine("Fläche = " & A)

Read()
End Sub

End Module
 
du meinst wenn r < 0 ist dass error kommt, oder?! weil r muss ja positiv und nicht gleich 0 sein!
 
Hmmm ... wieso eigentlich "Error" bei r > 0 ?
Wäre das bei r < 0 nicht angebrachter?
:)

Das beenden der console kannst z.b. verhindern, indem Du
am ende des programms auf einen tastendruck wartest ...
 
zu der Zeile "If r > 0 Then" fehlt natürlich das entsprechende End if.

Wenn die Commandobox nicht sofort geschlossen werden soll, dann mach aus dem Read() ein ReadLine(). Dann musst du noch ne Taste drücken, bevor sich die Box schließt.

Die Logik ist übrigens auch falsch. Es muss natürlich "If r <= 0 Then" heissen.

Vorschlag:


Imports System.Console
Module Module1

Sub Main()
Console.Clear
Const Pi = 3.1415926

WriteLine("KREISBERECHNUNG" & vbCRLF & "Radius eingeben: > ")
Dim r as integer = ReadLine()

If r <= 0 Then

WriteLine("Error")

Else

WriteLine("Umfang = " & CStr(2*Pi*r))
WriteLine("Fläche = " & CStr(Pi*r*r))
End If

ReadLine()
End Sub

End Module
 
okay dann musst du die Zeile "Dim r as integer = ReadLine()" doch splitten. Das Problem dabei: Du kannst das Ergebnis von ReadLine nur in String Variablen einlesen. Dann kannst du damit aber nicht weiterrechnen. Also müssen wir noch eine Umwandlung einbauen:

Dim r as integer = ReadLine() ersetzen durch:

Dim r as integer = CInt(ReadLine())
 
Zuletzt bearbeitet:
Zurück
Oben