Vereinfachung von if's
-
Und immer noch falsch. Du berechnest nicht x hoch s, sondern x hoch (2 hoch s).
-
*fg*
-
Achso. Jetzt sehe ich es. Ups. Klar. Muste aber grad echt 3 mal hinschauen. So ist das in der Nachtschicht.
Also
if (Testen ist Zahl ungerade)
{
int t = 1;
for ( int i = 0; i < s ; i++ )
{
t = t * x;}
}Stimmt doch oder ? Hat jemand jetzt noch einwände ?
-
sven1978 schrieb:
Stimmt doch oder ? Hat jemand jetzt noch einwände ?
Ja, schonmal was von Assignment Operatoren gehört? Bei trivialen Typen zwar nicht ganz so dramatisch, bei nicht-trivialen Typen sieht das aber schon ganz anders aus.
:xmas1:
-
Meinst du Operatoren überladung ?
-
Wo will er den POW haben?
Dann die Forschleife geht in die richtige Richtung, aber warum prüfen ob gerade/ungerade
klar geht das, aber da könnt ihr gleich ein Sleep reinbauen!
warum sollte das ins MFC forum rein?
schaut euch mal die Reihe an ( 3,5,7,9....)
das schreit ja gerade nach
for( int i = 3; i < n; i+2)
-
sven1978 schrieb:
Meinst du Operatoren überladung ?
Nein, ich rede hiervon
t = t * x;
t *= x;
-
ajax schrieb:
schaut euch mal die Reihe an ( 3,5,7,9....)
Er hat keine Reihe, sondern eine Verzweigung für 3, 5, 7 usw. Da bringt deine Schleife herzlich wenig.
sven1978 schrieb:
Meinst du Operatoren überladung ?
Nein, er meint Operatoren wie += und *=. Damit der Code nicht aussieht, als wärst du ein Basic-Umsteiger
-
MFK schrieb:
ajax schrieb:
schaut euch mal die Reihe an ( 3,5,7,9....)
Er hat keine Reihe, sondern eine Verzweigung für 3, 5, 7 usw. Da bringt deine Schleife herzlich wenig.
warum? er will das bei 3,5,7,9 ... Aktionen ausgeführt werden sollen ( bei 1,2,4,6,8 eben nicht ). mit dieser schleife ( for ) die bei 3 beginnt und als step --> 2 hat, da kann er seine aktionen machen ( halt seine "*" zeichnen )
:xmas1: :xmas1: :xmas2: :xmas1: :xmas1:
-
ajax schrieb:
warum? er will das bei 3,5,7,9 ... Aktionen ausgeführt werden sollen
Eben. Er will, dass z. B. bei s==3 eine Aktion ausgeführt wird. Deine vorgeschlagene Schleife prüft s nicht, sondern führt einfach alle Aktionen aus. Woher willst du wissen, dass die Aktionen in dieser Reihenfolge ausgeführt werden sollen? Und wie packst du deine ganzen Ergebnisse in die eine Variable?
-
sorry hab gedacht der will STERNCHEN ausgeben, lol
aber nichtsdestrotroz geht die for schleife
for( int i = 3; i < ABRUCHBEDINGUNG; i+2) {
t = pow (x,i)}
ausserdem, warum eigentlich schleife, der will einen ausdruck, vereinfachen wie
if(s==3)
da würde man tatsächlich eine fkt brauchen die prüft ob
s grösser oder gleich 3 ist
falls grösser als 3
ob
ungerade ist
wenn ja, dann pow()dachte beim ersten mal der will durchitarieren und STERNCHEN ausgeben, wegen weihnachten
:xmas1: :xmas1: :xmas1: :xmas2: :xmas1: :xmas1: :xmas1:
-
ajax schrieb:
aber nichtsdestrotroz geht die for schleife
for( int i = 3; i < ABRUCHBEDINGUNG; i+2) {
t = pow (x,i)}
Was heißt "geht"? Selbst wenn deine Schleife keine Endlosschleife wäre, weil deine Iterationsanweisung nichts tut, wirfst du doch alle Ergebnisse bis auf das des letzten Durchlaufs weg.
ausserdem, warum eigentlich schleife,
Das war die Fragestellung des OP. pow war offenbar nicht gefragt.
-
jo ich weiss, ich dachte auch da wäre eine art Printf drinnen
ok, wenn ohne POW dann
da würde man tatsächlich eine fkt brauchen die prüft ob
s grösser oder gleich 3 ist
falls grösser als 3
ob
ungerade ist
wenn ja, dann mit for schleife anstatt pow wo man von int i = 0 bis einschl. s multipliziert:xmas1: :xmas2: :xmas1: :xmas1: :xmas2: :xmas1: :xmas2: :xmas1:
-
Ich habe doch vor der Schleife :
if (Testen ist Zahl ungerade)
Wenn man jetzt da noch
if (Testen ist Zahl ungerade und grösser als 1)
Dann passt es doch. Ich glaubte er will alle ungeraden rechnen.
Aber ich glaube auch das der gar net mehr mitliest. Aber ist eine interessante Diskussion.