ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
2037
2037
EMPFEHLEN
-
09.03.11 10:45 #1
- Registriert seit
- Mar 2011
- Beiträge
- 3
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 :
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
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
-
09.03.11 11:10 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Bsp:
GrußCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
$a = 0 $b = 0 $op = 0 if (![int]::TryParse($Eingabe, [ref]$op) -or $op -lt 1 -or $op -gt 4) { echo "Ungültige Eingabe." return 1 } # $Zahl1 = $Zahl1.Replace(",",".") ist unnötig. if (![double]::TryParse($Zahl1, [System.Globalization.NumberStyles]::Float -bor [System.Globalization.NumberStyles]::AllowThousands, [System.Globalization.CultureInfo]::CurrentCulture::NumberFormat, [ref]$a) { echo "Keine gültige Zahl: $Zahl1" return 1 }If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
09.03.11 11:44 #3
- Registriert seit
- Mar 2011
- Beiträge
- 3
Hi ,
danke für deine schnelle antwort.
Da ich noch nicht so viel Ahnung habe , weiss ich nicht , wie ich das in meinen Code implementieren soll. Könntest du mir dabei vielleicht helfen oder näher das näher erklären?
-
09.03.11 12:01 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Ein/Ausgabe (deutsches System):Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
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" $a = 0 $b = 0 $op = 0 $Zahl1 = Read-Host "Bitte geben Sie die erste Zahl ein" if (![double]::TryParse($Zahl1, [System.Globalization.NumberStyles]::Float -bor [System.Globalization.NumberStyles]::AllowThousands, [System.Globalization.CultureInfo]::CurrentCulture::NumberFormat, [ref]$a)) { echo "Keine gültige Zahl: $Zahl1" return 1 } $Zahl2 = Read-Host "Bitte geben Sie die zweite Zahl ein" if (![double]::TryParse($Zahl2, [System.Globalization.NumberStyles]::Float -bor [System.Globalization.NumberStyles]::AllowThousands, [System.Globalization.CultureInfo]::CurrentCulture::NumberFormat, [ref]$b)) { echo "Keine gültige Zahl: $Zahl1" return 1 } $Eingabe = Read-Host "Wählen Sie eine Rechenoperation" if (![int]::TryParse($Eingabe, [ref]$op) -or $op -lt 1 -or $op -gt 4) { echo "Ungültige Eingabe." return 1 } # $Zahl1 = $Zahl1.Replace(",",".") ist unnötig. switch ($op) { 1 {$Ergebnis = $a / $b} 2 {$Ergebnis = $a + $b} 3 {$Ergebnis = $a - $b} 4 {$Ergebnis = $a * $b} } echo "Ergebnis: $Ergebnis"
GrußCode :1 2 3 4 5 6 7 8 9 10
Geben Sie zwei Zahlen ein Wählen Sie eine der vier möglichen Rechenoperationen aus: 1: Zahl1 : Zahl2 = Ergebnis 2: Zahl1 + Zahl2 = Ergebnis 3: Zahl1 - Zahl2 = Ergebnis 4: Zahl1 * Zahl2 = Ergebnis Bitte geben Sie die erste Zahl ein: 24.493,4942 Bitte geben Sie die zweite Zahl ein: 494 Wählen Sie eine Rechenoperation: 3 Ergebnis: 23999.4942
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
09.03.11 12:59 #5
- Registriert seit
- Mar 2011
- Beiträge
- 3
Vielen dank für deine Hilfe
klapprt jetzt prima.
lg
Ähnliche Themen
-
[Powershell] Taschenrechner
Von freakpc im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 25.02.11, 10:32 -
[Powershell]
Von rkrause im Forum Sonstige SprachenAntworten: 2Letzter Beitrag: 25.09.10, 19:50 -
Einfachen Taschenrechner programmieren
Von Conny22 im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 12.05.10, 14:46 -
Taschenrechner in Java Programmieren
Von sixcross im Forum JavaAntworten: 7Letzter Beitrag: 11.03.09, 20:37 -
Taschenrechner programmieren in C++
Von eriko im Forum C/C++Antworten: 5Letzter Beitrag: 17.08.07, 23:44





Zitieren
Login





