Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Code funktioniert nicht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.10.2003, 16:05 Uhr
KevinT



Hallo,
ich hoffe das Ihr mir helfen könnt ich komm einfach nicht drauf warum dieser Code nicht mit Multiplikation funktioniert(möchte damit die Fakultät einer Zahl errechnen).


C++:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double i;                                      //i wird hochgezählt und mit f Multipliziert
double f = 1;                                //f ist der wert der das ergebnis von
                                                    der multiplikation ist und
                                                    verändert sich bei jedem durchlauf
double n = Edit1->Text.ToDouble(); //n ist der Wert der eingeben wird, die
                                                    Schleifenzahl bestimmt      
                                                    und wovon die Fakultät          
                                                    errechnet werden soll
for(i=0;i<n+1;i++)
        f*=i;                                  //funktioniert nur mit (+, -)
        
        Edit2->Text="Ergebnis "+String(f)+" Schleifen "+String(i);
}



Problem ist nun das der Code mit + und mit - funtioniert und das richtige ergebnis herauskommt. Bei einer Multiplikation aber ein falsches ergebnis. Warum?

--edit: Pablo. [ cpp ] tgs gesetzt --

Dieser Post wurde am 25.10.2003 um 18:19 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.10.2003, 16:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.10.2003, 16:27 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


da sollte dann wohl immer 0 rauskommen weil du beim ersten durchlauf ja mit i=0 multipilizierst


C++:
unsigned int fac(unsigned int n){if(n>1)return n*fac(n-1);else return 1;}



oder

C++:
int f=1;
for(int i=2;i<=n;++i) f*=i;


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.10.2003 um 16:50 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.10.2003, 17:12 Uhr
KevinT



stimmt hast recht hab jetzt einfach i auf 1 gesetzt und es funktioniert. Bin nicht wirklich darauf gekommen weil ich dachte das in der for schleife durch i++ , i schon auf 1 gesetzt wird was anscheinend ja nicht der fall ist :-). Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.10.2003, 17:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Kevin
der erste Teil bei der for-Schleife wird nur vor dem start ausgeführt, dort initialisiert man variablen. Der zweite teil ist die Bedinung die vor jedem Schleifendurchlauf getestet wird. Ist sie false wird die schleife gar nicht mehr durchlaufen. Es kann dir also passieren das die schleife sogar gar nicht durchlaufen wird.
Die dritte angabe wird erst am ende des durchlaufs der schleife ausgeführt, daher erhöht er das i auch erst nachdem er die schleife einmal durchgelaufen ist.

@FloSoft
Du lässt ja nach. Mich wundert ja das die ein so offensichtlicher Fehler durch die Lappen gegangen ist. Da waren wir wohl mal wieder voreilig mit Problem ins andere Forum schieben bedacht obwohl er vom fehler her ja doch im richtigen Forum war
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.10.2003 um 17:41 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.10.2003, 18:21 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:
Windalf postete

@FloSoft
Du lässt ja nach. Mich wundert ja das die ein so offensichtlicher Fehler durch die Lappen gegangen ist. Da waren wir wohl mal wieder voreilig mit Problem ins andere Forum schieben bedacht obwohl er vom fehler her ja doch im richtigen Forum war


Mir ist der Fehler schon aufgefallen, hatte nur grade keine zeit mehr meinen Post zu editieren
Ich hab den Post verschoben, da viel Borland-"Graffel" vorkam...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: