uwe87: einfache Ein/Ausgabe Programme

Hi Leute,

hab heute mit JavaScript angefangen.
Ich sollte ein JavaScript-Programm schreiben, welches den Restwert bei degressiver Abschreibung berechnet.

Nun ja,
ich hab zwar ein Programm geschrieben und es in HTML eingebunden.
Jetzt hab ich das Problem, dass wenn ich die Seite öffne, ich nichts eingeben kann.

  
  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
	<head>  
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
	<title>(X)Degressive Abschreibung</title>  
	  
	<script type="text/javascript">  
		//<![CDATA[  
			var j;  
			var n;  
			var A;  
			var R;  
			  
		j=promt("Bitte geben Sie die Anzahl der Jahre an",0);  
		n=promt("Bitte geben Sie die Nutzungsdauer in Jahren an",0);  
		A=promt("Bitte geben Sie den Anschaffungswert an",0);  
			  
		R = [1-[(2*n+1-j)*j]/(n*n+n)]*A  
			  
		document.writeln("Restwert = ", Restwert);  
		//]]>  
	</script>  
	</head>  
	<body>  
		<h3> Degressive Abschreibung </h3>  
	</body>  
</html>  

Kann mir jemand sagen, was ich falsch gemacht habe?

Mit freundlichen Grüßen
Uwe

  1. Hi!

      j=promt("Bitte geben Sie die Anzahl der Jahre an",0);  
    
      
    
    > Kann mir jemand sagen, was ich falsch gemacht habe?  
      
    Eine prompte Antwort: Tippfehler beim [Methodenaufruf](http://de.selfhtml.org/javascript/objekte/window.htm#prompt).  
      
    off:PP  
      
      
    
    -- 
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)  
    
    
  2. Hallo uwe87,

    j=promt("Bitte geben Sie die Anzahl der Jahre an",0);
    n=promt("Bitte geben Sie die Nutzungsdauer in Jahren an",0);
    A=promt("Bitte geben Sie den Anschaffungswert an",0);

    ^ hier fehlt ein p

      R = [1-[(2\*n+1-j)\*j]/(n\*n+n)]\*A  
    

    document.writeln("Restwert = ", Restwert);

    ^ hast du die Variable nicht R genannt?

    ^ das document.write solltest du schnell wieder vergessen und dich statt dessen mit den DOM-Methoden (document.getElementById ...) vertraut machen.

    Gruß, Jürgen

  3.   R = [1-[(2\*n+1-j)\*j]/(n\*n+n)]\*A  
    

    Eckige Klammern [] erzeugen in JavaScript einen Array. Ich denke nicht, dass du das hier willst.
    Um die Berechnung von Ausdrücken zu beeinflussen, gibt es runde Klammern. Die kannst du auch ineinander verschachteln:

    R = (1 - ((2 * n + 1 - j) * j) / (n * n + n)) * A;

    Kann mir jemand sagen, was ich falsch gemacht habe?

    Die JavaScript-Fehlerkonsole des Browsers hätte dir all diese Fehler angezeigt.

    Mathias

    1. Erstmal dankeschön für eure Hilfe!

      Jetzt habe ich leider ein anderes Problem.
      Wenn ich für A,j,n  = 1 einsetze müsste Ich normalerweise den Restwert -0,5 bekommen!

      ich bekomme 0,81818181 raus, was ist hier falsch ?
      Soll ich die Rechnung in mehrere Teilrechnungen unterteilen?

      1. Mahlzeit uwe87,

        ich bekomme 0,81818181 raus, was ist hier falsch ?

        Ggf. rundet Javascript falsch.

        Soll ich die Rechnung in mehrere Teilrechnungen unterteilen?

        Tu das - und dann lass Dir die einzelnen Zwischenergebnisse zur Kontrolle ausgeben.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. @@EKKi:

          nuqneH

          […] müsste Ich normalerweise den Restwert -0,5 bekommen!
          ich bekomme 0,81818181 raus, was ist hier falsch ?

          Ggf. rundet Javascript falsch.

          Die Abweichung ist wohl zu groß, um durch Rundungsfehler erklärt werden zu können.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)