Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Mysteriöse for-Schleife?!

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 < [ 2 ]
000
26.01.2007, 15:16 Uhr
nminh96



Hallo, ich hab mal ne frage, die jemand von euch bestimmt beantworten kann:
Also, aufgabe ist es, ein programm zu schreiben, das zunächs nach einer zahl fragen soll(noch kein problem für mich) danach soll es
(365/365)*(365/364)*(365/363)*(365/362)... rechnen. und zwar, immer die erste zahl einen weniger, wie im angegeben. aber NUR so oft, wie die zahl lang ist. also z.b. ich gib 3 ein, dann soll er (365/365)*(365/364)*(365/363) rechnen. aber wenn ich 4 eingebe soll er (365/365)*(365/364)*(365/363)*(365/362) rechnen. und so weiter. danach soll er einfach die zahl ausgeben (auch kein problem für mich). Also eigentlich ganz einfach, bloß ich weiß nicht, mit welcher kombination man den pc dazu bringen könnte...
ich hoffe, ihr versteht mich
danke im vorraus
--
www.minhhoang.de.vu - besuch doch mal meine homepage
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.01.2007, 15:25 Uhr
derphilipder




C++:
double result = 1.0;
for(int i = 1; i <= zahl; i++)
   result *= 365.0/(365.0-(double)i);


--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.01.2007, 15:32 Uhr
nminh96



also an sich verstehe ich das (fast) aber was bedeutet 1.0 und woher kommt die variable i? und muss ich den code noch anpassen? wenn ich das ergebnis dann angeben will, welche variable muss ich "cout"en?
--
www.minhhoang.de.vu - besuch doch mal meine homepage

Dieser Post wurde am 26.01.2007 um 15:33 Uhr von nminh96 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.01.2007, 15:47 Uhr
virtual
Sexiest Bit alive
(Operator)


@derphilipder
Der Ansatz ist nicht schlecht, aber:
1. Bringt das Falsche ergebnis. Gemäß aufgabenstellung muß es entweder

C++:
for(int i = 1; i <= zahl; i++)
   result *= 365.0/(366.0-(double)i);


oder

C++:
for(int i = 0; i < zahl; i++)
   result *= 365.0/(365.0-(double)i);



heißen. Einige Casts sind überflüssig.

@nminh96
1.0 ist nix anderes als 1. In diesem speziellen Kontext kannst Du auch einfach 1 schreiben. (1 wird vom Compiler als Ganzzahl interpretiert, 1.0 hingegen als Fließkommazahl. Da result ein Double ist, erfolgt da automatisch eine konvertierung).

Welche Variable du ausgeben mußt, musst du schon selbst wissen, wenn du sagst, du hättest es fast verstanden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.01.2007, 15:53 Uhr
nminh96



dann hab ichs halt garnicht verstanden. welche muss ich denn jetzt ausgeben?
am besten erklärt mir es hier mal jemand, als ob ich ein richtiger noob wäre. (bin ich auch in gewisser maßen)
--
www.minhhoang.de.vu - besuch doch mal meine homepage
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.01.2007, 16:16 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich glaube Dir ja, daß du ein "Noob" bist. Nur das entbindet dich doch noch lange nicht davon, deine Hausaufgaben selbst zu machen.

Ich denke, du solltest einfach mal den Code aus den Postings davor lesen und verstehen. Wenn Du das absolut nicht kannst, dann liegt das Problem entweder darin, daß dein Lehrer dir zu schwere Aufgaben stellt oder aber du einfach nicht bereit bist, dein Noob-Hirn selbst anzustrengen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.01.2007, 16:42 Uhr
nminh96



so, also ich versuch das mal zu "verstehen"

C++:
double result = 1.0; //result ist ne double-variable, und es soll 1.0 sein
for(int i = 1; i <= zahl; i++) //führe folgenden befehl so lange aus, während i kleiner oder gleich zahl ist und addiere i++ jeweils einen hinzu
   result *= 365.0/(365.0-(double)i); //hier treten probleme auf 1. wie result [b]multiplitziert  und dann noch gleich[/b]? und warum gibt man vor der variable i noch ein (double)


also ich bemühe mich ja es zu verstehen, aber da kommen halt ungereimtheiten...
außerdem hab ich kein lehrer, ich hab ein buch benutzt
EDIT: das mit dem "*=" habsch verstanden
ich hab jetzt ma versucht result auszugeben. aber da kommt nicht das gewünschte herraus... ich hab 2 eingegeben. und es kam 1.00827 herraus. wobei theoretisch sollte da ja (365/365)*(364/365) herrauskommen also 0,997261274 (ganz manueel gerechnet)
--
www.minhhoang.de.vu - besuch doch mal meine homepage

Dieser Post wurde am 26.01.2007 um 17:00 Uhr von nminh96 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.01.2007, 17:09 Uhr
Tommix



Hallo,

C++:
a *= irgendwas;


ist die Kurzschreibweise von

C++:
a = a*irgendwas;


und

C++:
(double)i


wandelt i in einen double-Wert um, also z.B. 1 in 1.0.
Für das Ergebnis: Lies Virtuals Post 003!

Gruß, Tommix

Dieser Post wurde am 26.01.2007 um 17:10 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
26.01.2007, 17:18 Uhr
nminh96



aber mit dem ergebnis hauts immer noch nicht hin. (
--
www.minhhoang.de.vu - besuch doch mal meine homepage
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
26.01.2007, 17:37 Uhr
Tommix



Deine "Zu Fuß"-Rechnung ist falsch. Du rechnest 364/365, gefragt hattest Du nach 365/364.
- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


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: