benjmue: Fakultät und Power Funktion in Taschenrechner (Javascript)

Moin Moin

Habe eine Hausaufgabe bekommen,indem ich einen Power on/off Operator(^) und einen Fakultätoperator (!) in Js einbinden soll. Bis jetzt sieht mein Taschenrechner wie folgt aus:

<html>

<head>

<Script language=Javascript>
	



function rechne()
{
	if (formular1.op.value=="*") { erg=formular1.wert1.value*formular1.wert2.value;}

	if (formular1.op.value=="+")
 {erg=eval(formular1.wert1.value)+eval(formular1.wert2.value);}
	
	if (formular1.op.value=="-") { erg=formular1.wert1.value-formular1.wert2.value;}
	
	if (formular1.op.value=="/") { erg=formular1.wert1.value/formular1.wert2.value; }

	formular1.ergebnis.value=erg;
}
</script>

</head>

<body>

<form name=formular1 method=POST>
	 
<table border=1>
	
<Tr><Th>Zahl1</th>

	<Td><input type=text Name="wert1"></td></tr>
	
<tr><th>Operator</th>

	<td><input type=text Name="op"> </td></tr>
	
<Tr><th>Zahl2</th>

	<td><input type=text name="wert2"></td></tr>
	
<Tr><Td colspan=2>
	
	<input type=Button Onclick=rechne() Value="rechne!">
	
	
	</td></tr>
	
	<tr><th> Ergebnis</th>
	
	<td><input Type=text Name="ergebnis"><Td></tr>
	

	
	
	
</table>

</form>

</body>

</html>

Leider habe ich keine Ahnung wie ich so etwas realisieren soll.... könntet Ihr Mir dabei behilflich sein?

Vielen Dank schon einmal

  1. Liebe(r) benjmue,

    Leider habe ich keine Ahnung wie ich so etwas realisieren soll.... könntet Ihr Mir dabei behilflich sein?

    https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/Taschenrechner

    Liebe Grüße

    Felix Riesterer

  2. Servus!

    Moin Moin

    Habe eine Hausaufgabe bekommen,indem ich einen Power on/off Operator(^) und einen Fakultätoperator (!) in Js einbinden soll.

    Ich schau immer in die Wikipedia und gehe dann links unten auf die englischsprachige Version: Factorial

    Unter diesem Suchbegriffen "Factorial" und "JavaScript" fand ich:

    Felix hat Dir ja schon unseren Taschenrechner gezeigt. Den könntest du erweitern.

    Herzliche Grüße

    Matthias Scharwies

    --
    25 Jahre SELFHTML → SELF-Treffen 05.-07. Juni 2020 in Mannheim
  3. @@benjmue

    Habe eine Hausaufgabe bekommen,indem ich einen Power on/off Operator(^) und einen Fakultätoperator (!) in Js einbinden soll.

    Und ich hab jetzt überlegt, wie man einen Power-on/off-Button implementieren würde … (alle Eingabefelder und Buttons im Formular auf disabled setzen)

    Aber du meintest wohl einen Potenz-Operator (englisch power operator)‽ Nichts mit on/off.


    Bis jetzt sieht mein Taschenrechner wie folgt aus:

    <Script language=Javascript>
    

    Hat dein Taschenrechner schon LED-Anzeige oder noch Röhren? LCD bestimmt nicht.

    language=Javascript ist uralt, war aber noch nie sinnvoll. Weg damit!


    <table border=1>
    

    Tabellenlayout. Früher hat das noch gemüffelt. Heute stinkt es schon.

    LLAP 🖖

    --
    „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
    „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

    —Marc-Uwe Kling
    1. Hallo Gunnar,

      Tabellenlayout. Früher hat das noch gemüffelt. Heute stinkt es schon.

      ich bin gerührt, dass dieser Spruch, den ich vor über zehn Jahren abgesondert habe, heute immer noch nicht vergessen ist. :-)

      Ciao,
       Martin

      --
      Was lange gärt, wird endlich Wut.
  4. Hallo,

    auf deine Frage hast du ja schon Antworten bekommen, daher hier nur noch ein Rat von mir:

    Wenn dieser Ausflug in die HTML-CSS-Javascript-Welt eine einmalige Sache ist, musst du nicht weiterlesen.

    Wenn du dich aber noch mehr mit der Materie beschäftigen willst, sei es als Hobby oder auch beruflich, vergiss, was du da "gebastelt" hast. Der Quelltext sieht aus, als wäre er vor deiner Geburt entstanden. Beschäftige dich mit den Grundlagen von HTML & Co. Unser Wiki bietet da einiges als Start- und weiterführende Hilfe.

    Gruß
    Jürgen

    1. Moin,

      haha hast schon recht

      Leider wird in der Berufsschule nichts Erklärt, also verstehe ich nur Bahnhof und muss mir das irgendwie Abends selber beibringen.

      Eins weiße ich aber, und zwar bin ich froh dass ich den Systemintegrator gewählt habe anstatt den Anwendungsentwickler :)

      1. Hallo,

        … Berufsschule …

        da musst du durch. Hoffentlich wird dir im Betrieb beigebracht, was du als FiSi brauchst.

        Gruß
        Jürgen

        1. Hallo JürgenB,

          Hoffentlich wird dir im Betrieb beigebracht, was du als FiSi brauchst.

          Webseitenprogrammierung jedenfalls nicht, wenn man sich die diversen Beschreibungen dieses Berufsbildes durchliest.

          Andererseits braucht es in der Informatik immer „Naturwissenschaftliches, abstraktes, lösungsorientiertes Denken“, und das zeigt sich beim Programmieren recht deutlich. Wer damit nicht klar kommt, bringt diese Denke nicht zustande. Solche Menschen haben dann andere Talente. Nur...

          Leider wird in der Berufsschule nichts erklärt, also verstehe ich nur Bahnhof

          Das macht es dann absurd. Wenn ich jemandem Fertigkeiten vermitteln soll, kann ich sie nicht voraussetzen. Es sei denn, die Erklärungen waren da, aber nicht für alle in der Klasse hinreichend - das kann man von außen nicht beurteilen. Wenn man deinen Lehrer fragt, wird man vermutlich ganz andere Aussagen bekommen.

          Rolf

          --
          sumpsi - posui - clusi
        2. Hallo,

          Hoffentlich wird dir im Betrieb beigebracht, was du als FiSi brauchst.

          was zum gütigen Geier ist ein FiSi?

          Ciao,
           Martin

          --
          Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
          1. Hallo Der Martin,

            was zum gütigen Geier ist ein FiSi?

            Fachinformatiker für Systemintegration.

            Bis demnächst
            Matthias

            --
            Du kannst das Projekt SELFHTML unterstützen,
            indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
  5. @@benjmue

    Für * hast du die Zeile:

    	if (formular1.op.value=="*") { erg=formular1.wert1.value*formular1.wert2.value;}
    

    Für - hast du die Zeile:[1]

    	if (formular1.op.value=="-") { erg=formular1.wert1.value-formular1.wert2.value;}
    

    Für / hast du die Zeile:

    	if (formular1.op.value=="/") { erg=formular1.wert1.value/formular1.wert2.value; }
    

    Und jetzt fragst du ernsthaft, wie der Code für ^ aussehen müsste? Ernsthaft?

    Mir scheint, du bist zu faul, deine Hausaufgaben selbst zu machen.

    LLAP 🖖

    --
    „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
    „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

    —Marc-Uwe Kling

    1. Die Zeile für +, wo eval() verwendet wird anstatt die Strings vernünftig in Zahlen umzuwandeln, überspringen wir mal. ↩︎

    1. die Frage von mir ist nicht wie ich einen Operator ^ realisieren kann sondern wie ich eine Fakultät mir diesen Operator in Verbindung bringen kann

      1. Hallo,

        die Frage von mir ist nicht wie ich einen Operator ^ realisieren kann sondern wie ich eine Fakultät mir diesen Operator in Verbindung bringen kann

        mir ist immer noch nicht ganz klar, wo dein Verständnisproblem liegt.

        Erstens: Das übliche Symbol für den Fakultäts-Operator ist das Ausrufezeichen.

        Zweitens: Es ist ein unärer Operator, hat also nur einen Operanden. Das ist ein wesentlicher Unterschied zu den Operationen, die du bisher realisiert hast - das sind alles binäre Operatoren, sie arbeiten mit zwei Operanden.

        Drittens: Die Berechnung der Fakultät kannst du nicht als einfachen Ausdruck hinschreiben wie die bisherigen Fälle; du brauchst dazu eine Schleife (Iteration) oder eine Rekursion.

        So long,
         Martin

        --
        Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
      2. @@benjmue

        die Frage von mir ist nicht wie ich einen Operator ^ realisieren kann sondern wie ich eine Fakultät mir diesen Operator in Verbindung bringen kann

        Gar nicht. Potenz und Fakultät haben keine Verbindung.

        LLAP 🖖

        --
        „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
        „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

        —Marc-Uwe Kling
        1. Hallo,

          Gar nicht.

          Korinthenkacker! ;)

          Das Problem ist die Übertragbarkeit, die nicht gegeben ist. JS versteht die Operatoren "!" und "^" eher logisch als mathematisch. Daher muss benjmue mit Funktionen statt nur mit Operatoren hantieren.

          Gruß
          Kalk

    2. Hallo,

      Und jetzt fragst du ernsthaft, wie der Code für ^ aussehen müsste? Ernsthaft?

      Ernsthaft? Hast du dir angeschaut, was JS unter "!" und "^" versteht?

      Gruß
      Kalk

      1. @@Tabellenkalk

        Und jetzt fragst du ernsthaft, wie der Code für ^ aussehen müsste? Ernsthaft?

        Ernsthaft? Hast du dir angeschaut, was JS unter "!" und "^" versteht?

        Irgendwann schon mal. 😉

        2^10 (2¹⁰) ist in JavaScript natürlich nicht 2^10 (das ist ein Bitoperator), sondern Math.pow(2, 10).

        Sag das doch gleich!

        LLAP 🖖

        --
        „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
        „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

        —Marc-Uwe Kling
        1. Hallo,

          Sag das doch gleich!

          Das doch gleich.

          Gruß
          Kalk

        2. 2^10 (2¹⁰) ist in JavaScript natürlich nicht 2^10 (das ist ein Bitoperator), sondern Math.pow(2, 10).

          2 ** 10

          --
          Stur lächeln und winken, Männer!
          1. Hallo,

            2 ** 10

            in ECMAScript 2016 eingführt, aber wie üblich nicht im IE angekommen.

            Gruß
            Jürgen

          2. Hallo kai345,

            gibt es seit ECMAScript 2016. D.h. in allen heute noch verwendeten Browsern außer IE11 und vermutlich ein paar Android-Schätzchen.

            Ob der Lehrer davon weiß, ist also nicht sicher...

            Rolf

            --
            sumpsi - posui - clusi