Übungsaufgabe und Lösung zu „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 8
Aufgabe:
Berechnen Sie die Wurzeln von 1 bis n in einer for Schleife
- n soll von dem Anwender frei eingegeben werden
- Speichern Sie die Wurzeln in einem Array der richtigen Größe
- Bilden Sie den Mittelwert aller Wurzeln in dem Array
- Implementieren Sie Ausnahmebehandlung um potentielle Fehler abzufangen
- Geben Sie alle Wurzeln und deren Mittelwert aus
Lösung:
Option Explicit On
Option Strict On
Imports System.Math
Module Hausaufgabe8
Sub Main()
Dim anzahlWurzeln As Integer
Console.WriteLine("Wurzeln berechnen")
Console.WriteLine("=================")
Console.WriteLine()
Dim Eingabe As String
Console.Write("Anzahl der Wurzeln eingeben: ")
Eingabe = Console.ReadLine
' Überprüfen, ob
' (1) eine gültige Zahl eingegeben wurde und
' (2) die eingegebene Zahl > 0 ist
If Integer.TryParse(Eingabe, anzahlWurzeln) = False _
OrElse anzahlWurzeln <= 0 Then
Console.WriteLine("Sie haben keine gültige Zahl eingegeben. Nur ganze Zahlen > 0 sind erlaubt.")
Return
End If
' Array für die Wurzelberechnung anlegen
Dim Zahlen(anzahlWurzeln - 1) As Double
Dim Zahl As Double
For i As Integer = 0 To Zahlen.Length - 1
Console.Write("Bitte Zahl {0} eingeben: ", (i + 1).ToString)
Eingabe = Console.ReadLine
' überprüfen, ob eine gültige Zahl eingegeben wurde
If Double.TryParse(Eingabe, Zahl) = False _
OrElse Zahl < 0 Then
Zahl = 0
End If
' eine gültige Zahl >= 0 wurde eingegeben
Zahlen(i) = Zahl
Next
Dim Mittelwert As Double
' Alle Wurzeln ausgeben und den Mittelwert berechnen
For i As Integer = 0 To Zahlen.Length - 1
' Wurzel berechnen und ausgeben
Console.WriteLine("Die Wurzel von {0} ist {1}.", _
Zahlen(i), Sqrt(Zahlen(i)))
Try
' alle Wurzeln für den Mittelwert addieren
Mittelwert += Sqrt(Zahlen(i))
' Mittelwert = Mittelwert + Sqrt(Zahlen(i))
Catch ex As OverflowException
Console.WriteLine("Overflow ist aufgetreten.")
Catch ex As Exception
Console.WriteLine("Allgemeiner Fehler ist aufgetreten.")
End Try
Next
' Mittelwert berechnen
Mittelwert /= Zahlen.Length
'Mittelwert = Mittelwert / Zahlen.Length
Console.WriteLine()
Console.WriteLine("Der Mittelwert aller Wurzeln ist {0}.", _
Mittelwert)
End Sub
End Module