fb:porticula NoPaste
Rechenaufgabe in zwei Teile spalten
Uploader: | Sebastian |
Datum/Zeit: | 04.02.2008 12:42:43 |
'Für QB.
DIM Eingabe AS STRING, Rechenzeichen AS STRING, Temp AS STRING
DIM Teile(1 TO 2) AS INTEGER
DIM bs AS INTEGER, i AS INTEGER, t AS INTEGER, Ergebnis AS INTEGER
CLS
PRINT "Bitte geben Sie eine Aufgabe wie 123+456 ein. Zul„ssig sind die"
PRINT "Rechenzeichen +, -, * und /"
PRINT
INPUT "Aufgabe: ", Eingabe
IF Eingabe = "" THEN END
Temp = "": Rechenzeichen = "": t = 1
FOR i = 1 TO LEN(Eingabe)
bs = ASC(MID$(Eingabe, i, 1))
IF (bs >= 48) AND (bs <= 57) THEN 'Zahl
Temp = Temp + CHR$(bs)
IF i = LEN(Eingabe) THEN 'Ende erreicht
Teile(t) = VAL(Temp)
Temp = ""
END IF
ELSEIF (bs = 43) OR (bs = 42) OR (bs = 45) OR (bs = 47) THEN 'Rechenzeichen
Teile(t) = VAL(Temp)
Temp = ""
Rechenzeichen = CHR$(bs)
t = t + 1
END IF
NEXT i
IF Rechenzeichen = "" THEN
PRINT : PRINT "Die Aufgabe enthielt kein Rechenzeichen."
SLEEP: END
END IF
IF t > 2 THEN
PRINT : PRINT "Die Aufgabe enthielt zu viele Teile."
SLEEP: END
END IF
PRINT "Teil 1: "; LTRIM$(STR$(Teile(1)))
PRINT "Teil 2: "; LTRIM$(STR$(Teile(2)))
PRINT "Rechenzeichen: "; Rechenzeichen
SELECT CASE Rechenzeichen
CASE "+": Ergebnis = Teile(1) + Teile(2)
CASE "-": Ergebnis = Teile(1) - Teile(2)
CASE "*": Ergebnis = Teile(1) * Teile(2)
CASE "/": Ergebnis = Teile(1) / Teile(2)
END SELECT
PRINT "Ergebnis: "; LTRIM$(STR$(Ergebnis))
PRINT
PRINT "Drcken Sie eine beliebige Taste zum Beenden."
SLEEP
END