Taschenrechner programmieren?
Ich möchte mit Notepad einen taschenrechner porgrammieren, der folgendes können muss:
Ein Programm mit funktionen, dass 2 Zahlen, die eingegeben werden mit den 4 Grundrechenarten verknüpft.
Das Ergebnis soll 2 Nachkommastellen haben.
Es soll außerdem am Ende fragen ob es nochmal ausgeführt werden soll, die eingabe soll überprüfen ob es sich um zahlen handelt und die division darf nur ausgeführt werden, wenn die zweite zahl ungleich 0 ist.
Kennt sich da jemand aus und kann mir helfen?
3 Antworten
Zumindest mit einem Punkt:
Notepad ist (wie der Name andeutet) ein Editor, in dem man beliebige Texte schreiben kann. Nicht mehr und nicht weniger.
Das bedeutet, du kannst ihn als Werkzeug für dein Projekt verwenden, wenn du willst. Aber ansonsten lieferst du keinerlei Informationen über weitere Werkzeuge (Sprache, Plattform). Deswegen kann ich nicht weiter helfen.
Du kannst die Scriptsprache VBS verwenden die bei Windows dabei ist.
Füge folgenden Quelltext in eine leere *.txt Datei ein und benenne sie anschliessend in *.vbs
Das mit den Nachkommastellen tüftle ruhig selber mal aus.
'Programm in VBS: Taschenrechner
Dim zahl1
Dim zahl2
Dim operator
Dim text
zahl1=CInt(InputBox("Geben Sie die 1. Zahl ein:"))
zahl2=CInt(InputBox("Geben Sie die 2. Zahl ein:"))
operator=(InputBox("Geben Sie den Rechenoperator ein (+ - * \ ):"))
text=zahl1 & operator & zahl2 & "="
Select Case operator
Case "+"
msgbox text & zahl1 + zahl2
Case "-"
msgbox text & zahl1 - zahl2
Case "*"
msgbox text & zahl1 * zahl2
Case "\"
If zahl2 = 0 Then
msgbox "Fehler Division durch 0"
Else
msgbox text & zahl1 \ zahl2
End If
Case Else
msgbox "Falscher Operator"
End Select
So gehts:
'Programm in VBS: Taschenrechner
Dim zahl1
Dim zahl2
Dim operator
Dim text
Do
zahl1=CDbl (InputBox("Geben Sie die 1. Zahl ein:"))
zahl2=CDbl (InputBox("Geben Sie die 2. Zahl ein:"))
operator=(InputBox("Geben Sie den Rechenoperator ein (+ - * / ):"))
text=zahl1 & operator & zahl2 & "="
Select Case operator
Case "+"
text = text & Round(zahl1 + zahl2,2)
Case "-"
text = text & Round(zahl1 - zahl2,2)
Case "*"
text = text & Round(zahl1 * zahl2,2)
Case "/"
If zahl2 = 0 Then
text = "Fehler Division durch 0"
Else
text = text & Round(zahl1 / zahl2,2)
End If
Case Else
text = "Falscher Operator"
End Select
Msgbox text
Loop While MsgBox("Weiter?", vbYesNo) = vbYes
Eins hab ich in deiner Frage noch überlesen, dass man den Input Prüfen soll.
Hier die Ergänzung:
'Programm in VBS: Taschenrechner
dim temp
Dim zahl1
Dim zahl2
Dim operator
Dim text
dim fehler
Do
temp=InputBox("Geben Sie die 1. Zahl ein:")
If IsNumeric(temp) Then
zahl1 = CDbl(temp)
Else
fehler = True
End If
If Not fehler Then operator = (InputBox("Geben Sie den Rechenoperator ein ( + - * / ):"))
If Not fehler Then temp = InputBox("Geben Sie die 2. Zahl ein:")
If Not fehler Then
If IsNumeric(temp) Then
zahl2 = CDbl(temp)
Else
fehler = True
End If
End If
text=zahl1 & operator & zahl2 & "="
If Not fehler Then
Select Case operator
Case "+"
text = text & Round(zahl1 + zahl2,2)
Case "-"
text = text & Round(zahl1 - zahl2,2)
Case "*"
text = text & Round(zahl1 * zahl2,2)
Case "/"
If zahl2 = 0 Then
text = "Fehler Division durch 0"
Else
text = text & Round(zahl1 / zahl2,2)
End If
Case Else
text = "Falscher Operator"
End Select
End If
if fehler Then
text = "Eingabe muss eine Zahl sein"
end if
MsgBox text
Loop While MsgBox("Weiter?", vbYesNo) = vbYes
Etwas Eleganter:
'Programm in VBS: Taschenrechner
dim ok
Dim zahl1
Dim zahl2
Dim operator
Dim text
dim fehler
Do
temp=InputBox("Geben Sie die 1. Zahl ein:")
If IsNumeric(temp) Then
zahl1 = CDbl(temp)
ok = True
End If
If ok Then operator = (InputBox("Geben Sie den Rechenoperator ein ( + - * / ):"))
If ok Then temp = InputBox("Geben Sie die 2. Zahl ein:")
If IsNumeric(temp) Then
zahl2 = CDbl(temp)
Else
ok = False
End If
text=zahl1 & operator & zahl2 & "="
Select Case operator
Case "+"
text = text & Round(zahl1 + zahl2,2)
Case "-"
text = text & Round(zahl1 - zahl2,2)
Case "*"
text = text & Round(zahl1 * zahl2,2)
Case "/"
If zahl2 = 0 Then
text = "Fehler Division durch 0"
Else
text = text & Round(zahl1 / zahl2,2)
End If
Case Else
text = "Falscher Operator"
End Select
if Not ok Then
text = "Eingabe muss eine Zahl sein"
end if
MsgBox text
Loop While MsgBox("Weiter?", vbYesNo) = vbYes
Was genau ist hier mit „Notepad“ gemeint? Bei „Notepad“ fällt mir nur der Texteditor von Microsoft ein, der auf Englisch „Notepad“ und auf Deutsch „Editor“ heißt.
https://de.wikipedia.org/wiki/Microsoft_Editor
Bzw. gäbe es auch noch weitere Texteditoren (beispielsweise Notepad++), die ähnlich heißen.
Das ist keine Programmiersprache, mit der man irgendwas programmieren kann. Man könnte das Notepad höchstens dazu verwenden, das Programm (geschrieben in irgendeiner Programmiersprache) aufzuschreiben und als Textdatei abzuspeichern. Diese Textdatei kann man dann an einen Compiler der verwendeten Programmiersprache weiterleiten.
in meiner Aufgabe steht lediglich das was ich geschrieben habe. das sind meine anweisungen