addSum := subSum := mulSum := divSum := 0;
FOR i := 1 TO lastIndex DO
addSum += myArray[i]; // Addieren
subSum -= myArray[i]; // Subtrahieren
mulSum *= myArray[i]; // Multiplizieren
divSum /= myArray[i]; // Dividieren
END_FOR;
Ja, ist nur eine Schreibweise.@jat
das ist nur eine andere Scheibweise, oder?
Bei mul und div kommt aber immer 0.0 raus, sicher weil er als initialwert 0 hat.
wie kann ich das ändern?
[COLOR=#ff0000]addSum := subSum := 0;[/COLOR]
[COLOR=#ff0000]mulSum := 1;
divSum := startValue;[/COLOR]
FOR i := 1 TO lastIndex DO
addSum += myArray[i]; // Addieren
subSum -= myArray[i]; // Subtrahieren
mulSum *= myArray[i]; // Multiplizieren
divSum /= myArray[i]; // Dividieren
END_FOR;
Du kannst vor der Schleife einfach einen anderen Initialwert festlegen. Aber: Überlege mal, was mulSum und divSum für einen praktischen Zweck haben sollen außer zu zeigen "ich kenne einen neuen Befehl" und "damit lassen sich Aufgaben sehr arbeitsarm programmieren" ...Bei mul und div kommt aber immer 0.0 raus, sicher weil er als initialwert 0 hat.
wie kann ich das ändern?
Kein bzw. kaum einenÜberlege mal, was mulSum und divSum für einen praktischen Zweck haben sollen
Was stellst Du Dir unter "automatisch" vor? Eine Funktion[alität], die pausenlos das Array durchflöht und auswertet? Auch während sich in dem Array nichts ändert, denn es könnte sich ja doch etwas geändert haben?ist es möglich die Werte in einem Array automatisch zu berechnen, zB zu addieren?
"Datenbaustein_2".Summe := 0;
FOR #i := 1 TO 30 DO
"Datenbaustein_2".Summe := "Datenbaustein_2".Summe + "Datenbaustein_2".Wert[#i];
END_FOR;
s := 0 ;
for i := 1 to 30 do
s := s + a[i] ;
end_for ;
Also mein Problem ist, dass er ja die Werte Schrittweise zusammen rechnet für und nicht einfach eine Summe bildet.
Da das Programm zyklisch aufgerufen wird, rechnet es halt immer wieder den Wert für das aktuelle oben drauf.
Nimm Deine gesammelte Verzweiflung und schliess sie in einen Tresor ein - dann können wir in Ruhe überlegen . . .ich bin gerade so verzweifelt, dass ich alle einzelnen werte des arrays händisch pro zyklus addiere, das kanns doch aber nicht sein
if array_voll and not flankenspeicher then
flankenspeicher := true;
"Datenbaustein_2".Summe := 0;
FOR #i := 1 TO 30 DO
"Datenbaustein_2".Summe := "Datenbaustein_2".Summe + "Datenbaustein_2".Wert[#i];
END_FOR;
end_if;
in deinem stückchen code fehlt
sum := 0;
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?