He-man 123
Grünschnabel
Hallo zusammen,
ich bin gerade dabei einen Taschenrechner zu programmieren. Dieser funktioniert soweit auch.
Mein Problem ist , dass bei der Eingabe keine Sonderzeichen akzeptiert werden sollen. Also nur die Eingabe von Zahlen , sowie "+"und "-" zulässig sein sollen. Bei beispielsweise Buchstaben und Sonderzeichen soll eine Fehlerausgabe und der Programmabbruch erfolgen.
Kann mir da jemand weiterhelfen?
Vielen Dank Schonmal!
Hier mein mal bisheriges Skript :
lg
He-man 123
ich bin gerade dabei einen Taschenrechner zu programmieren. Dieser funktioniert soweit auch.
Mein Problem ist , dass bei der Eingabe keine Sonderzeichen akzeptiert werden sollen. Also nur die Eingabe von Zahlen , sowie "+"und "-" zulässig sein sollen. Bei beispielsweise Buchstaben und Sonderzeichen soll eine Fehlerausgabe und der Programmabbruch erfolgen.
Kann mir da jemand weiterhelfen?
Vielen Dank Schonmal!
Hier mein mal bisheriges Skript :
Code:
Write-Host "Geben Sie zwei Zahlen ein" -ForegroundColor Red
Write-Host "Wählen Sie eine der vier möglichen Rechenoperationen aus:" -ForegroundColor Green
Write-Host "1: Zahl1 : Zahl2 = Ergebnis"
Write-Host "2: Zahl1 + Zahl2 = Ergebnis"
Write-Host "3: Zahl1 - Zahl2 = Ergebnis"
Write-Host "4: Zahl1 * Zahl2 = Ergebnis"
$Zahl1 = Read-Host "Bitte geben Sie die erste Zahl ein"
$Zahl2 = Read-Host "Bitte geben Sie die zweite Zahl ein"
[int]$Eingabe = Read-Host "Wählen Sie eine Rechenoperation"
$Zahl1 = $Zahl1.Replace(",",".")
$Zahl2 = $Zahl2.Replace(",",".")
$Zahl1 = [double] $Zahl1
$Zahl2 = [double] $Zahl2
#Zulässige Rechenoperationen definiert
switch ($Eingabe) {
1 {$Ergebnis = $Zahl1 / $Zahl2}
2 {$Ergebnis = $Zahl1 + $Zahl2}
3 {$Ergebnis = $Zahl1 - $Zahl2}
4 {$Ergebnis = $Zahl1 * $Zahl2}
}
#Fehlerausgabe bei Division durch 0 und Programmabbruch
if(($Zahl2 -eq 0) -and ($Eingabe -eq 1)){
$antwort = "Es darf nicht durch 0 geteilt werden";
[System.Windows.Forms.MessageBox]::Show($antwort, "Ungültige Eingabe"); break
}
#Eingabe Rechenoperation darf nicht kleiner 1 und größer 4 sein.
if(($Eingabe -lt 1) -or ($Eingabe -gt 4) -or ($Eingabe -gt 10)){
$antwort = "Die Eingabe liegt nicht im Wertebereich 1-4";
[System.Windows.Forms.MessageBox]::Show($antwort, "Ungültige Eingabe"); break
}
#stimmt die Eingabe mit dem Muster überein, so erfolgt die Berechnung und Ausgabe des Ergebnisses
else{
if($Eingabe -eq 1){
$antwort = " <" + $Zahl1 + "> : <" + $Zahl2 + "> = <" + $Ergebnis + "> ";
[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A durch B");
}
if($Eingabe -eq 2){
$antwort = " <" + $Zahl1 + "> + <" + $Zahl2 + "> = <" + $Ergebnis + "> ";
[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A plus B");
}
if($Eingabe -eq 3){
$antwort = " <" + $Zahl1 + "> - <" + $Zahl2 + "> = <" + $Ergebnis + "> ";
[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A minus B");
}
if($Eingabe -eq 4){
$antwort = " <" + $Zahl1 + "> * <" + $Zahl2 + "> = <" + $Ergebnis + "> ";
[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A mal B");
}
}
lg
He-man 123