Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich bin blutiger Anfänger, also verzeiht mir.
Das Ziel ist ein einfaches Programm in Processing, in denen die Zahlen von 1 - 10 aufgelistet sind und daneben die Summe aller Zahlen. Also zum Beispiel, dass dort 3 steht und daneben die Summe aus 1+2+3. Und das für alles von 1-10.
Habe bis jetzt das geschrieben:
print("Zahl"); println(" Zahlen addiert");
for (int i=1; i<=10; i++){
System.out.println(i);
}
Vorschlag 1: Du überlegst Dir mal, was die Variable i macht. Dann führst Du eine Variable summe ein und überlegst Dir, was Du mit den beiden Variablen machen musst, damit summe die Summe der ersten i natürlichen Zahlen liefert..
Vorschlag 2: Du spielst den kleinen Gauß, und überlegst Dir, wie man das Kommutativgesetz der Addition nutzen kann, um die Summe der ersten i natürlichen Zahlen zu berechnen.
Vorschlag 1: Du überlegst Dir mal, was die Variable i macht. Dann führst Du eine Variable summe ein und überlegst Dir, was Du mit den beiden Variablen machen musst, damit summe die Summe der ersten i natürlichen Zahlen liefert..
Vorschlag 2: Du spielst den kleinen Gauß, und überlegst Dir, wie man das Kommutativgesetz der Addition nutzen kann, um die Summe der ersten i natürlichen Zahlen zu berechnen.
Ja, alles klar! Vielen Dank.
Ich wusste nicht, dass ich einfach "summe = summe + i;" darstellen kann, da das aus mathematischer Sicht keinen Sinn ergibt.
Ich denke das "Problem" mit dem Gleichheitszeichen als Zuweisungsoperator ist eben, dass es nicht dem Gebrauch in der Mathematik entspricht. Da würde sich aus dem obigen Ausdruck ja folgendes ergeben:
Java:
summe=summe+i => i=0
Der Operator += hätte zumindest den Vorteil, dass er in der Mathematik nicht definiert ist, so daß es auch keine widersprüchliche Bedeutung gibt.
Am besten kümmert man sich gar nicht darum, denn Programmiersprachen-Quelltext enthält ja ohnehin keine mathematischen Ausdrücke, sondern Anweisungsfolgen. Also sind das auch nicht wirklich Widersprüche, sondern unterschiedliche Dinge, die nichts miteinander zu tun haben.
Ja, das ist in der imperativen Programmierung ein wenig anders. Mathematisch müsste man die Zeit einführen: Summe nach Zeit t wäre dann summe(t) := summe(t-1) + i, summe(0) := 0
Da hast du Recht..Rein Mathematisch wäre dann neueSumme=alteSumme +i,was aus Programmierer Sicht ein HardCode wäre und dann die komplette for-Schleife keinen Sinn ergeben würde.
Das ist natürlich alles sehr vereinfacht. Wenn man komplexere Sachverhalte formal darstellen wollte, würde man eine Maschine (Register-/Turingmaschine) definieren, deren Befehle Funktionen sind, die eine Konfiguration in eine andere überführen. Das Programm ist dann eine endliche Folge von Befehlen. Das ist mir hierfür aber viel zu kompliziert