Potenzieren

Startseite Foren Deutsches LiveCode-Forum Potenzieren

Schlagwörter: 

Ansicht von 13 Antwort-Themen
  • Autor
    Beiträge
    • #19494
      Oliver122
      Teilnehmer

        Hallo zusammen,

        kann mit jemand sagen wie man in LC potenzieren kann?

      • #19496
        Torsten
        Teilnehmer

          Hi Oliver!

          number ^ exponent

          Raises a number to a power.

          LG
          Torsten

        • #19523
          Oliver122
          Teilnehmer

            Hallo Torsten,

            danke für die Hilfe, aber es klappt leider nicht.

             put the last item dende &"-"& the last item dbeginn into datrech3
               put the value of datrech3 into jahre3
               put the value of (fld "eing6"&"/"&100) into proz
               put the value of ((fld"eing5"&"/"&jahre3)&("1"&"+"&"proz")&"^"&jahre3&"-"&"1") into fld "eing7"

            proz ist der Prozentsatz
            Jahre3 die Laufzeit

            Es wird kein Fehler ausgeworfen, aber das Ergebnis ist Mist.

          • #19524
            Oliver122
            Teilnehmer

              Was bedeutet

              Raises a number to a power.

            • #19526
              Klaus Major
              Administrator

                “Klappt leider nicht” ist definitiv KEINE aussagekräftige Fehlerbeschreibung! 😀

                Power bedeutet im Englischen auch “Potenz” in der Mathematik. Wer hätte das gedacht? 😎

                Aber was soll das denn hier sein:
                put the last item dende &"-"& the last item dbeginn into datrech3
                Das gibt keinen ERROR?
                Es muss doch immer heissen “…item xyz OF WASAUCHIMMER…”

                Aber Deine VALUE Orgie ist sicherlich das Problem.
                ## Wenn das mit den ITEMS geklärt ist auch hier kein VALUE nötig:

                ## KEINE Anführungzeichen und kein &, es soll doch gerechnet werden und kein String gebaut werden!
                put the last item OF XYZ – the last item OF ZYX into datrech3
                put fld “eing6″/100 into proz

                Besonders die letzte Zeile kriege ich auf den Tod nicht aufgedröselt!?
                Kannst Du mal erklären, was die genau machen soll?

                Soweit bin ich gekommen:
                ##put the value of ((fld”eing5″&”/”&jahre3)&(“1″&”+”&”proz”)&”^”&jahre3&”-“&”1”) into fld “eing7”
                put fld “eing5″/jahre3 ^ 1 + proz… jahre3 – 1?

                Das & fügt STRINGS zusammen, ich sehe hier keinen Grund, das hier irgendwie einzusetzen?

                In Fällen wie diesem ist es wirklich ratsam, das große Problem in kleinere Probleme aufzusplitten, um den Fehler zu finden, wie ich es oben schon angefangen habe.
                Also so:

                put put fld “eing5″/jahre3 into whatever1
                put 1 + proz into whatever2
                put jahre3 – 1 into whatever3

                Aber was Du nun genau damit machen und ins Feld “eing7” packen willst ist mir definitiv nicht klar!?

                Und bitte benutze auch LEERZEICHEN, die kosten nichts, machemn die Sache aber wesentlich lesbarer.

              • #19528
                Oliver122
                Teilnehmer

                  OK danke ich muss mal bisschen testen.
                  Das hat vermutlich an & gelegen.

                  dende funktioniert. Das ist nur eine Variable

                  Das Feld eing7 ist das Ergebnis der Rechnung.

                • #19529
                  Klaus Major
                  Administrator

                    dende funktioniert. Das ist nur eine Variable

                    Schreib trotzdem … last item OF dende – last item of dbegin
                    Die Engine wird mit jeder Version immer weniger nachsichtig, was “saloppe” Programmierung angeht. Bedeutet, in einer späteren Version kann das einen ERROR geben!

                    Das Feld eing7 ist das Ergebnis der Rechnung.

                    Danke, das war offensichtlich, aber WAS genau das nun rein soll eben nicht. 🙂

                  • #19530
                    Oliver122
                    Teilnehmer

                      Jaaaaaaaaaaaaaahhh

                      Klaus du bist der beste.

                      Daaaaanke
                      Es klappt. Die & Zeichen waren das Problem.

                      Jetzt muss ich das nur auf zwei Stellen hinter dem Komma begrenzen.
                      Wie geht das?

                      Ich probiere mal

                    • #19531
                      Klaus Major
                      Administrator

                        Da geht mit:
                        answer round(1/33,2)

                        Der erste Parameter ist die zu rundende Zahl oder Variable, der zweite Parameter gibt die maxiamle Anzahl an Nachkommastellen an, die angezeigt werden sollen. OHNE diesen zweiten Parameter wird keine Nachkommastelle angezeigt.

                      • #19532
                        Oliver122
                        Teilnehmer

                          Habe es hinbekommen.
                          danke

                        • #19533
                          Oliver122
                          Teilnehmer

                            Danke für deine Hilfe.
                            Ich wäre so schnell nicht auf den Fehler mit dem & gekommen, weil es seltsamerweise woanders funktioniert.

                          • #19537
                            Klaus Major
                            Administrator

                              Bitte poste doch mal den nun funktionierenden Code!

                              …weil es seltsamerweise woanders funktioniert.

                              Also DAS würde ich gerne mal sehen!

                            • #19538
                              Oliver122
                              Teilnehmer
                                on aktualisieren
                                   // eingezahlte Beiträge
                                   set the usesystemdate to true
                                   put the date into fld "datuheu"
                                   put fld "eing1" into dbeginn
                                   put fld "datuheu"into dheute
                                   put fld "eing2" into dende
                                   set the itemDelimiter to "."
                                   put the last item dheute &"-"& the last item dbeginn into datrech
                                   put the value of datrech into jahre
                                   subtract 1 from jahre
                                   put jahre*12 into monate
                                   add the second item of dheute to monate
                                   put the value of (12&"-"&the second item of dbeginn&"+1") into mo
                                   put the value of (mo&"+"&monate) into lo
                                   put the value of (lo& "*"&fld "eing3") into fld "eing4"

                                z.B hier

                              • #19539
                                Klaus Major
                                Administrator

                                  Aha, danke.

                                  Alle VALUEs sind hier total überflüssig, denn Du kannst direkt mit Feldern
                                  und Variablen rechnen. Du brauchst also nicht erst kompliziert einen String
                                  zusammenzubasteln, um dann dessen VALUE zu ermitteln.

                                  Ich lasse Deine Zeilen mal zum Vergleich auskommentiert drin:

                                  ...
                                  ## put the last item dheute &"-"& the last item dbeginn into datrech
                                  ## put the value of datrech into jahre
                                  ## subtract 1 from jahre
                                  put the last item OF dheute - the last item OF dbeginn - 1 into jahre
                                  put jahre * 12 into monate
                                  add the second item of dheute to monate
                                  ## put the value of (12&"-"&the second item of dbeginn&"+1") into mo
                                  put 12 - the second item of dbeginn + 1 + monate into lo
                                  put lo * fld "eing3" into fld "eing4"
                                  ## Fertig! :-)
                                  
                                  ## put the value of (mo&"+"&monate) into lo
                                  ## put the value of (lo& "*"&fld "eing3") into fld "eing4"
                                  ...
                              Ansicht von 13 Antwort-Themen
                              • Du musst angemeldet sein, um auf dieses Thema antworten zu können.