Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.javascript > #5270

Re: Fehler bei Berechnungen in JavaScript

Path csiph.com!aioe.org!news.mb-net.net!open-news-network.org!.POSTED.178.197.220.186!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comp.lang.javascript
Subject Re: Fehler bei Berechnungen in JavaScript
Date Sat, 27 Nov 2021 02:53:06 +0100
Organization PointedEars Software (PES)
Lines 171
Message-ID <1679766.OeldK439Yt@PointedEars.de> (permalink)
References <snrfh9$9hi$1@solani.org>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
Injection-Info gwaiyur.mb-net.net; posting-host="178.197.220.186"; logging-data="747631"; mail-complaints-to="abuse@open-news-network.org"
User-Agent KNode/4.14.10
Cancel-Lock sha1:cnCCW6fTQ+kFASD1HZyg9J4AS34=
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
X-User-ID U2FsdGVkX1889/HWdSjsfivoHSZfnNxlI25JEhI44Q651szYORiwnA==
Xref csiph.com de.comp.lang.javascript:5270

Show key headers only | View raw


Leo Baumann wrote:

> das Programm berechnet das Integral (Simpson) der rel. Bestahlungsstärke
> einer geneigten Fläche durch die Sonne.
> 
> Zwei funtionierende Programme für waagerechte und senkrechte Bestrahlung
> sind beigefügt.

Zunächst mal sind das keine Programme.  HTML ist keine Programmiersprache.
 
> Simpsonneig() ist die Integration nach Simpson, function cosen() ist die
> Funktion für die rel. Bestrahlungsstärke.
> 
> Die zugehörige Eingabe und der Aufruf für Simpsonneig() ist ganz unten.
> 
> Für die eingetragenen Parameter kommt ein sinnvolles Ergebnis heraus,
> variiert man die Parameter, gibt es Probleme.

„Es gibt Probleme” ist keine Beschreibung.
 
> Hier die Programme:

Es wäre besser gewesen, den URI zu posten, statt hier mehr als gefühlt
200 Zeilen schlecht formatierten und schlecht dokumentierten Quellcode 
abzukippen.  (*So* hatte ich das in de.sci.physik sicher rNICHT gemeint.)
 
> <!DOCTYPE HTML>
> <html lang="de">
> <head>
> <script language="JavaScript">

Anfängerfehler Nr. 1: Kein gültiges HTML.

Lass dringend <http://validator.w3.org/> über diesen Code laufen.

Schreib ausserdem hier

  'use strict';

damit die gröbsten Programmierfehler in modernen Web-Browsern (die 
ECMAScript Ed. 6 und neuer unterstützen) gleich erkannt werden.
Zum Beispiel:
 
> function cose(t,bb,lb,pi,nwk)
> {
> ls=2*pi/24*t-pi;
  ^^
> bs=Math.sin(2*pi/8760*t-pi/2)*nwk;
  ^^
> e=Math.sin(bb)*Math.sin(bs)+Math.cos(bb)*Math.cos(bs)*Math.cos(ls-lb);
  ^

Nicht deklarierte Variablen.  Da kann alles Mögliche passieren.

> if (e<=0) e=0;            // wenn die Sonne unter dem Horizont steht
> wird das nicht mit gerechnet
> return e
> }
> 
> […]

| Die Bereitschaft fühlender Wesen, Deinen Code näher anzuschauen, liegt
| wohl selbst auf logarithmischen Skalen unter Null (das geht genau dann,
| wenn der Leidensdruck dieser Wesen beim Anschauen größer wird als die
| mathematische Notwendigkeit für Werte größer Null).
| 
|   –Dietmar Meier in dcljs

Siehe auch: <https://github.com/airbnb/javascript>
 
> // Richtung zur Sonne
> vz=Math.sin(ls-lb)/Math.sin(h);

Die Sinusfunktion kann auch den Wert 0 annehmen, dann hat vz den Wert “NaN” 
(“not-a-number”), da die Division durch Null in IEEE-754 (so wie auch meist 
in der Mathematik) nicht definiert ist.

> if (vz<0) ri=-ri;

Dieser Fall wird davon dann nicht erfasst, denn NaN < 0 === false.

> var bb=Math.abs(parseFloat(document.eingabe3.gb.value)*pi/180);

Sauber:

  document.forms['eingabe3'].elements['gb'].value

Das ganze Geraffel andauernd vor “elements” kann man sich aber sparen, wenn 
man direkt eine Referenz auf das Formularobjekt übergibt:

  function myCalc (f)
  {
    … f.elements['gb'].value …
  }

  <form onsubmit='myCalc(this); return false'>
    …
    <input type='submit' …>
  </form>

Für die Umrechnung von Grad in Radians empfehle ich, eine eigene Funktion zu 
schreiben und aufzurufen, damit sich nicht durch Wiederholung Fehler 
einschleichen.  (Der Standard bietet leider keine solche.)

> document.eingabe3.schritte.value=String(n+1);

Die Konvertierung nach String beim Schreiben der value-Eigenschaft ist 
unnötig, das erledigt der Setter selbst.

> document.eingabe3.fehler.value=String(Math.round(fe*1e8)/1e8);
> document.eingabe3.erg.value=String(Math.round(sa/8760*1e4)/100);
> document.eingabe3.erg1.value=String(Math.round(sa*100)/100);

Falls das eine Rundung auf Nachkommastellen werden soll, so ist das falsch.
Benutz stattdessen Number.prototype.toFixed().

> </head>
> 
> <a name="Start"></a>

Ungültig.  Das a-Element muss im body-Element enthalten sein.

> <body  link="#0000cb" vlink="#00008b" alink="#ff8c00"
> background="grid.gif">

Diese veralteten Attribute haben in HTML5 nichts zu suchen.  Schon in HTML 
4.01 Strict (1999) nicht mehr.
 
> <p><center><font face="Eras Bold ITC"><h1 style= "color:
> #0000cb"><u>Berechnungsprogramme</u></h1></font></center></p>

Autsch.  Mit einem Struktureditor erstellt?
 
> <p><table border=1 bordercolor="0000b0" cellspacing="7" bgcolor="#fffff0">
> <tr><th>Art der Berechnung:</th></tr>
> <tr><td><img src="pfeilre.gif"><a href="#Sonne">effektive
> Sonnenbestrahlung, waagerechte Fl&auml;che</a></td></tr>
>      <tr><td><img src="pfeilre.gif"><a href="#Sonnesenk">effektive
> Sonnenbestrahlung, senkrechte Fl&auml;che</a></td></tr>
>      <tr><td><img src="pfeilre.gif"><a href="#Sonneneig">effektive
> Sonnenbestrahlung, geneigte Fl&auml;che</a></td></tr>
> </table></p>

table-Elemente sind schon Block-Level-Elemente, und p-Elemente dürfen sie 
nicht enthalten (die sind nämlich für Absätze).
 
> <p><hr noshade color="#000000" size=1></p>

Autsch.
 
> <a name="Sonne"></a>
> <p><h4 style="color:#000000"><u><b>Berechnung der effektiven
> Bestrahlungsst&auml;rke der waagerechten Fl&auml;che durch die
> Sonne</b></u></h4></p>

Nein, sondern

  <h4 id='Sonne'>Berechnung der effektiven Bestrahlungsst&auml;rke der 
waagerechten Fl&auml;che durch die Sonne</h4>

Alles andere wird durch ein Stylesheet (CSS) erledigt.  Das gilt auch für 
die übrigen Elemente.  Sonst wird/bleibt das ein Wartungsalbtraum.

Wenn Du diese Fehler beseitigt hast, solltest Du den Code oder URI eines auf 
das *Minimum* reduzierten Testfall posten.  Bei der Erstellung eines solchen 
findest Du sogar womöglich den Fehler schon selbst.
 
-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | <http://PointedEars.de/es-matrix>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

Back to de.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-26 21:19 +0100
  Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-11-27 02:53 +0100
    Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-11-27 02:59 +0100
    Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-27 03:31 +0100
      Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-11-27 04:32 +0100
        Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-27 04:51 +0100
          Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-27 06:00 +0100
            Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-27 06:28 +0100
          Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-11-27 06:50 +0100
            Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-11-27 19:41 +0100
          Re: Fehler bei Berechnungen in JavaScript Stefan Reuther <stefan.news@arcor.de> - 2021-11-27 10:59 +0100
            Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-11-27 16:28 +0100
          Re: Fehler bei Berechnungen in JavaScript Arno Welzel <usenet@arnowelzel.de> - 2021-11-28 00:53 +0100
            Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-28 05:47 +0100
              Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-11-29 00:51 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-29 15:41 +0100
                Re: Fehler bei Berechnungen in JavaScript Arno Welzel <usenet@arnowelzel.de> - 2021-11-29 16:12 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-29 16:23 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-29 16:30 +0100
                Re: Fehler bei Berechnungen in JavaScript Arno Welzel <usenet@arnowelzel.de> - 2021-11-29 16:56 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-29 17:00 +0100
                Re: Fehler bei Berechnungen in JavaScript Arno Welzel <usenet@arnowelzel.de> - 2021-11-29 17:02 +0100
                Re: Fehler bei Berechnungen in JavaScript Arno Welzel <usenet@arnowelzel.de> - 2021-11-29 17:02 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-29 17:06 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-29 17:10 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-29 23:46 +0100
                Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-11-30 04:12 +0100
  Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-12-01 14:29 +0100
    Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-12-02 01:27 +0100
      Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-12-02 02:20 +0100
        Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-12-02 04:00 +0100
          Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-12-02 07:11 +0100
            Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-12-03 03:51 +0100
              Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-12-03 04:57 +0100
                Re: Fehler bei Berechnungen in JavaScript Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2021-12-03 05:33 +0100
              Re: Fehler bei Berechnungen in JavaScript Leo Baumann <ib@leobaumann.de> - 2021-12-03 05:18 +0100

csiph-web