Wettbewerb | Taschenrechner

  • Was ist das Ziel?
    Das Ziel ist es, einen Taschenrechner zu programmieren das die Grundfunktionen beherrscht. Zudem sind Extras willkommen ^^

    Einschränkungen:
    Damit der Wettbewerb auch interessant wird, gibt es auch eine Einschränkung. Hier eine Liste mit Befehlen die ihr im Script verwenden dürft:

    Global, Local, Dim, Const,
    While, WEnd, Do, Until, For, To, Step, Next,
    Func, EndFunc, Return,
    If, EndIf, ElseIf, Else,

    Außerdem dürfen nur:
    - Die Operatoren +, -, &, <, > und =
    - Variablen und Arrays
    - Die Ziffern 0-9
    - True und False
    - And, Not, Or
    - Klammern
    - Der Punkt (für 2.5 z.B.)
    - Strings
    verwendet werden.

    Zudem habe ich euch hier ein kleines Script geschrieben:

    [autoit]

    $input = 0
    $output = ConsoleWrite($input & @CRLF)

    [/autoit]

    $input | Hier soll später die Mathematische Eingabe erfolgen.
    $output | Und hier die Ausgabe.

    Was der Taschenrechner können sollte:
    Der Taschenrechner soll addieren, subtrahieren, multiplizieren und dividieren können.
    Das sind schon mal die Mindestanforderungen. Was ihr noch dazu baut, bleibt euch überlassen.

    Am Ende des Script sollte eine Funktionsbeschreibung für all eure Funktionen (mit denen man Rechnen kann) zu finden sein. Da ihr ja nur + und - nehmen dürft, wäre z.B. die Funktion _Multiplikation() schon mal unten zu finden.

    Noch eine kleine Funktionsbeschreibung was diese Macht. Z.B. Diese Funktion multipliziert 2 Werte.

    Dann könnt ihr das Script per PN zu mir senden. Wenn das Wettbewerb dann vorüber ist, gibt es 1 Woche Wahl Phase. Dort kann jeder User für das Beste Script stimmen ;)

    Wettbewerbsende:
    Der Wettbewerb Endet genau am 30. August um 14:00 Uhr. Viel Spaß :D

    Beispiel
    Hier ist auch noch ein Beispiel, um zu verdeutlichen wie ich das ganze meine ;)

    [autoit]

    $input =
    $output = ConsoleWrite($input & @CRLF)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _multiplikation($mul_1, $mul_2)
    Local $save
    For $i = 1 To $mul_2
    $save += $mul_1
    Next
    Return $save
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    #cs

    _multiplikation(Zahl 1, Zahl 2) | Multipliziert 2 Zahlen miteinander.
    Beispiel: _multiplikation(5, 7)

    #ce

    [/autoit]

    In der Variable $input könnt ihr nun den zu berechnenden Wert eintragen. Kleiner Tipp, eine Addition und Subtraktion braucht ihr nicht extra schreiben, da es von Anfang an sowieso erlaubt ist mit + und - zu Arbeiten. ^^

    10 Mal editiert, zuletzt von Yjuq (16. August 2012 um 18:20)

  • Coole Sache ;) Ich hoffe das hier, ist als Input akzeptiert:

    [autoit]

    $wert1 = 125
    $wert2 = 10

    [/autoit]

    Weil für ein $input = 15/10 bräuchte man ja noch RegEx's oder?
    Mein Stand:
    Addieren [ :) ]
    Subtrahieren [ :) ]
    Multiplizieren [ :) ]
    Dividieren (gerade Zahlen) [ :) ]
    Dividieren (Gleitkomma) [ :( ]

  • €: Ich sollte lesen lernen *facepalm*
    Nee Error, If "asdf/asdf" = ...
    €2: Ach jetzt verstehe ich was du meinst.
    Ja, @Threadersteller, ein StringSplit zu erlauben wäre schon ganz nett, um das ganze auch mal zu zerlegen ...

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Ich erklär am besten mal noch kurz wie ich mir das ganze gedacht habe ;)

    Jede Rechenmöglichkeit sollte in einer eigenen Funktion sein. So dass man diese oben im Input aufrufen kann. Zum Beispiel einer Multiplikation:
    $input = _multiplikation(5, 7)

    Und $output gibt dann dementsprechend das heraus, was ihr als Lösung Returnt ^^


    Der Reiz soll sein, dass man sich eigene Funktionen basteln muss. Um z.B. Wurzel zu ziehen oder zu potenzieren. Eigentlich müsste das alles mit den Oberen genannten Befehlen klappen. Falls es wirklich nicht ohne zusätzliche Befehle geht, so nehme ich noch welche in die Liste auf ^^

    Lasst euch was einfallen ;)

  • BinDannMalWeg Also sollen wir das so machen:

    [autoit]

    Func _multiplikation($a, $b)
    Return Execute($a & "*" & $b)
    EndFunc

    [/autoit]


    @Make-Grafik Execute? Ganz sicher? Ich wäre stattdessen lieber für ein paar andere Funktionen, z.B. BitAND, BitOR, BitNOT, BitXOR, BitShift, BitRotate.

    • Offizieller Beitrag

    Hmm, also um die Grundrechenarten (Addition, Subtraktion, Multiplikation und Division) abzubilden brauchst du doch nicht diesen Wust an Funktionen. Da ist doch dann auch kein Reiz bei.
    Lege doch z.B. fest: Einzig erlaubte Operation ist eine (vorzeichenbehaftete) Addition in Verbindung mit Schleifen. Dann muss man sich etwas anstrengen. ;)

  • Ich wollte es nicht so schwierig machen. Wenn es zu schwer wird, dann verliert man ja ebenfalls die Lust. Zudem haben dann auch Anfänger die möglichkeit hier teilzunehmen.

    Ich weiß das es für euch 'alte Hasen' (Besseres gerade nicht eingefallen ^^) nicht so anspruchsvoll ist. Aber wer nur mit diesen EInschränkungen arbeiten will, kann dies tun. Ihr braucht ja nicht alle Befehle verwenden ^^

    Ihr könnt euch ja noch selber eigene Beschränkungen setzen ;)