HTML-Rechner, wo liegt mein Fehler??

D

DJBlue

Aktives Mitglied
Thread Starter
Dabei seit
22.12.2013
Beiträge
512
Reaktionspunkte
175
Hallo,
hoffe Ihr könnt mir helfen.
Habe mich heute zum ersten Mal an HTML gewagt.
Ziel war es aus zwei Variablen ein Ergebnis zu berechnen.
Aber ich bekomm einfach keine Ausgabe mit Ergebnis hin.

Der Fehler wird wahrscheinlich ab Zeile mit "Ri" sein.
Wo liegt mein Fehler?


HTML:
<html lang="de">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Innenwiderstandsrechner</title>
  </head>
  <body>

  <form>Innenwiderstandsrechner
 
 
 
 
 
  <br/>
    <label for="mAh">
      Kapazität:
      <input id="mAh" type="number" min="1" max="10000" step="1" value="2200">
     
      </label>mAh
     
     <br/>
     
    <label for="C-Rate">
      C-Rate:
      <input id="C-Rate" type="number" min="00" max="100" step="1" value="30">
      C
    </label>
  </form>






<br>
Ri:
<form result="mOhm.value = C-Rate.value * mAh.value">
<result name="mOhm"></result>
<input result> mOhm


<br>
<br>
<br>



test
<br>
mOhm.value = (0,51 / (C-Rate.value * mAh.value)








<br>

      <kbd>xxxxxx</kbd></p>
  </body>
</html>

Bis zur Zeile "test" bin ich gekommen, danach ist nur noch eine Gedächnisstütze zur Berechnung eingefügt.
 
Ähhhm seit wann kann man in html rechnen?

Dafür wird m.E irgend eine serverseitige script geschichte wie php oder so benötigt.
Eventuell geht noch was mit javascript
 
Dafür wird Javascript benötigt. HTML selbst ist nur eine Seitenbeschreibungssprache, KEINE Programmiersprache.
 
  • Gefällt mir
Reaktionen: DJBlue
Cool, vielen vielen DANK, belomat

da hast aber einiges geändert, hab ich zu umständlich gedacht??
 
Umgekehrt, eher zu einfach. HTML ist eine Sprache zum Darstellen von Seiten. Wenn du was berechnen willst, oder dynamische Inhalte darstellen willst, musst du eine andere scriptsprache einbinden.

Hier eben JavaScript oder aber auch serverseitiges PHP. :)
 
  • Gefällt mir
Reaktionen: DJBlue
Ah, wieder was dazugelernt. Da hab ich wohl was vermischt :(

Hier mein aktueller Code:
Code:
<br/>
<html lang="de">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Innenwiderstandsrechner by DJBlue81</title>
  </head>
  <body>

<FONT SIZE="5"><B>Innenwiderstandsrechner</FONT></B>
<br/>... vollgeladener Lipos

  <br><I><FONT COLOR="#003399">by DJBlue81</I></FONT>
  <br/>
  <br/>


<form oninput="x.value=0.512/(parseInt(mAh.value)*parseInt(cRate.value))/10000">


<label for="mAh">
  Kapazität:
  <input id="mAh" type="number" min="1" max="10000" step="1" value="2200">
</label>mAh
<br/>
<label for="cRate">
  C-Rate:
  <input id="cRate" type="number" min="00" max="100" step="1" value="30">
  C
</label>

<br/>
<br/>
Ri:

<output name="x" for="mAh cRate"></output> mOhm


</form>

<body>

  <form><FONT SIZE="2">Berechnung ist eine Schätzung und dient nur als Richtwert!
  <form>
<br>Je höher der Innenwiderstand, desto geringer ist die Stromabgabe.</FONT>
</body>
<br/>

Einzig was mir noch fehlt ist das Runden des Ergebnisses auf 3 Stellen nach dem Komma.

<echo round(12345.6789,3)> (??müsste doch der richtige Befehl sein??)
aber egal wo ich es einsetze, das Ergebnis wird nicht gerundet.
Langsam seh ich den Wald vor lauter Bäume nicht mehr.
 
Bin leider selbst nicht so fit in JS, von daher kann ich dir da weniger helfen.

Für deine Formatierung was Schriftgrösse und Farbe usw angeht, schaue dir aber mal die CSS Sachen an. Insbesondere Klassen und wie man die auf einzelne divs bzw. p Umgebungen anwendet. Das macht die ganze Programmierung übersichtlicher und reduziert den Spaghetticode. :)
 
Es ist löblich das Du programmieren lernen willst! Wenn ich das hier aber so sehe bekomme ich Bauchschmerzen. Sicher ist es eine Möglichkeit sich gleich mit der Programmierung von Web-Anwendungen auseinanderzusetzen, aber genau da spielen leider viele Technologien hinein, die alle einzeln gelernt werden wollen/müssen.

So ist es heute Üblich Datenmodelle von der Darstellung zu trennen. HTML wäre hier die Darstellungsschicht, das Grafik-Interface. Es hat nichts mit Berechnungen zu tun, ja es kann nicht mal rechnen. Zustätzlich zu HTML kommt dann noch die grafische Darstellung (CSS) und meist eben noch ein responsives Framework oben auf (Bootstrap,...).

Dann gibt es eine Programmierung die beim Client abläuft. Hier wird gern auf Javascript und Frameworks dazu zurückgegriffen (Angular JS, jQuery) und für die Abläuf und die Logik auf dem Server ist dann eine klassische Programmiersprache (Python,PHP,Ruby,....) notwendig. Soll das ganze dann in Datenbanken gespeichert werden kommt auch noch SQL oder ein NoSQL-Dialekt dazu.

Alles in allem also ganz viele Baustellen, die es einem kräftig verleiden können hier voran zu kommen. Wenn man, so wie Du, alles vermischt und Darstellung und Client-Berechnung alles in eine Datei wirft, gewöhnst Du Dir ein Verhalten an, dass Du später für einigermaßen wartbaren Code mühsam wieder abgewöhnen mußt. Deine Frage nach <echo round(12345.6789,3)> zeigt, dass hier die Verwirrung schon geschieht. Denn der Befehl scheint mir einem PHP-Skript entnommen zu sein. In der dargestellten Form als vermeintliches HTML-Tag gibt es ihn aber nicht. Das gehört alles so nicht zusammen!

Wenn es Web-Anwendungen sein sollen, dann empfehle ich die einzelnen Techniken zu lernen und wie man sie zusammensetzt. Kurse dazu gibt es online überall. Etwa hier: http://www.w3schools.com/

Wenn es um die Programmierung generell gilt, ist das Erlernen einer Sprache zur Ausbildung an sich erst einmal sinnvoll. Python oder Java haben sich hier als Lernsprache etabliert.
 
<echo round(12345.6789,3)> (??müsste doch der richtige Befehl sein??)
aber egal wo ich es einsetze, das Ergebnis wird nicht gerundet.
Weil der Befehl auch nix mit HTML zu tun hat. Ich würde dir raten wirklich erstmal einen Tutorial-Kurs zu machen und nicht gleich selbst etwas eigenes gestalten zu wollen. Du musst nunmal erstmal die Grundlagen verstehen und kannst dann erst darauf aufbauen. Man fängt beim Hausbau auch nicht mit dem Dach an.
 
  • Gefällt mir
Reaktionen: wegus
ich empfehle https://www.codecademy.com/ anmeldung sowie die basiskurse sind kostenlos. gut ist, dass man von anfang an selbst coden muss.
 
Vielleicht noch eine Anmerkung, wenn es auch keine grundsätzliche Kontraposition ist:

Bleibe ruhig bei deinem Projekt, das motiviert immer mehr, als es auf irgendwelche fremden Sachen zu schauen. Und die Motivation ist definitiv ein wichtiger Punkt! :clap:

Arbeite die Tutorials aber durch und schaue dir immer mal zwischendurch an, was du für deine Sachen verwenden kannst. Ein Tipp dazu wäre z.b. noch, dass du die Darstellung erstmal in einem rudimentären HTML laufen lässt, ohne an Font-size oder Color o.ä. zu denken. Konzentriere dich erstmal NUR und AUSSCHLIESSLICH auf das Berechnen und Anzeigen der Ergebnisse. Anschließend kannst du dir CSS und dann auch Bootstrap und Responsive Designs aneignen.

Sofern du es noch nicht benutzt, lade dir auf jeden Fall einmal MAMP runter. Damit kannst du dir deine eigene Entwicklungsumgebung basteln und ausprobieren. Das bietet gleichzeitig auch das aktuelle PHP und MySQL.

Ich habe es genauso gelernt und immer nach einem Kapitel überlegt, ob ich das momentan gebrauchen könnte und wieso ich da hier gebrauchen könnte. Das hat mir persönlich echt geholfen.
Schönes Tutorial ist auch: http://www.php-einfach.de

P.S.: MySQL sieht nur am Anfang unheimlich abschreckend aus. ;)
 
Danke für die ganzen Tipps.
Hätte nicht gedacht das man für so einen einfachen OnlineRechner schon fast eine Abendschule besuchen sollte.
Hab mir das so ähnlich wie in Excel vorgestellt. Das es etwas umfangreicher wird, wurde mir recht schnell klar.

Dank "Belomat" läuft der Rechner.
Vielen Dank hier nochmal.

Auch wenn es Interessant war, werde ich mir diese Sprachen jedoch nicht vertieft aneignen.
 
Danke für die ganzen Tipps.
Hätte nicht gedacht das man für so einen einfachen OnlineRechner schon fast eine Abendschule besuchen sollte.
Hab mir das so ähnlich wie in Excel vorgestellt. Das es etwas umfangreicher wird, wurde mir recht schnell klar.

Dank "Belomat" läuft der Rechner.
Vielen Dank hier nochmal.

Auch wenn es Interessant war, werde ich mir diese Sprachen jedoch nicht vertieft aneignen.

So kompliziert ist das alles gar nicht:)

Der Trick ist, nicht Syntax zu "büffeln" (klappt auch bei sehr erfahrenen Programmierern nur sehr begrenzt), sondern einmal die Grundlagen der Programmierung (Variablen, Schleifen, Methoden, Funktionen, Klassen und Ereignisse) zu verstehen, die man dann auf jede Sprache anwenden kann - wenn es denn sein muss.

Viele werden vom scheinbaren Umfang erst einmal abgeschreckt. Dabei geht es in der Programmierung viel weniger um Mathematik, als allgemein angenommen. Es ist die simpel anmutende Fähigkeit des "Landkartenlesens", die viel häufiger benötigt wird. In diesem Zusammenhang ist es z.B. wichtiger zu wissen, das Köln eine Stadt in NRW/BRD ist und es noch andere Städte/Länder gibt, als die genaue Beschaffenheit der Häuser einer bestimmten Strasse in Köln genau zu kennen.

Hat man diese Affinität, ist der Rest relativ einfach, da man zum Syntax via Internet mit einem Mausklick tausende Hilfestellungen bekommt. Hat man sie nicht, sollte man es lassen und seine sicherlich vorhandenen Fähigkeiten in anderen Bereichen anwenden. Ist zumindest meine - auch durch Erfahrung geprägte - Meinung.

Da du aus der Excel-Ecke kommst, könntest du direkt dort anfangen. VBA ist sehr mächtig und du kannst damit (einschließlich direktem Datenbankzugriff per SQL) fast alles machen, was auch in Sprachen wie C, VB.NET oder PHP geht. Nur die Umgebung ist hier der Unterschied.
 
  • Gefällt mir
Reaktionen: Dextera und electricdawn
Hätte nicht gedacht das man für so einen einfachen OnlineRechner schon fast eine Abendschule besuchen sollte.
Musst du auch nicht, aber der Weg über eine Website, den du gewählt hattest, ist wahrlich der schlechteste.
Eine moderne Website kombiniert rund mehr als 4 verschiedene Programmiersprachen, ggf. noch unzählige Frameworks in diesen und das an verschiedenen Stellen. Dir jedoch ist vermutlich noch gar nicht klar, wie eine Website überhaupt funktioniert, Serverarchitektur etc. (ist ja ganz normal als Neuling), daher kann das am Anfang also nur verwirren.

Willst du bei Websites bleiben geht das natürlich auch, aber dann musst du dich hier ganz strukturiert und diszipliniert ransetzen: erst HTML, dann JavaScript, dann beide verbinden, dann ggf. CSS dazu (fürs Layout) und jetzt merkst du, dass du "richtige" Websites (wie z.B. dieses Forum hier) immer noch nicht machen könntest und lernst dann evt. sowas wie PHP und (My)SQL.
So wie du das aber aktuell machst, weißt du scheinbar nicht, wo HTML aufhört, wo JavaScript anfängt und dass PHP auf deinem lokalen Rechner ja eigentlich gar nicht funktioniert (und du einen Webserver brauchst).

Vermutlich ist es einfacher sich von Websites zu distanzieren und mit einer Programmiersprache "auf dem Rechner" zu beginnen. Die kann dann (ganz alleine) alles was du brauchst.
 
auf heise.de gibt's bis zum 04.12. vergünstigt: "Webseiten entwickeln: Das Video-Training" (24h länge)
 
Zurück
Oben Unten