Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
01.12.2008, 21:34
Protestallianz



Hi wir haben seit kurzem c++
jetzt sollen wir die Fakultät von Ganzahlen ausrechen.
z.b:
5!=5*4*3*2*1=120
So wie mache ich das jetzt ganz simpel mit Forschleifen (Für Anfängergedacht)
und ner VariablenZahl x.

Bitte schnell antworten!

--

-GAMING-

zum Seitenanfang zum Seitenende Profil || Suche
001
01.12.2008, 21:37
dp
Administrator


Zitat:
Protestallianz postete
Bitte schnell antworten!
hier ist kein hausuebung-loese-service.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
01.12.2008, 21:48
Protestallianz



ja sorry hast recht, aber ich habe geacht, dass schaffst du heute und ich sitze seit 2 Stunden dran und komme nicht auf die Lösung 24:00 Abgabe!

--

-GAMING-

zum Seitenanfang zum Seitenende Profil || Suche
003
01.12.2008, 22:04
Opey



Quellcode:var counter:Number = 5; //zu fakultierender wert
var resultt:Number = 1;

for(var counter; counter>=1; counter--){
resultt = resultt*counter;
}
trace(resultt);
/edit: stimmt dopefish, hatte den alten code noch im zwischenspeicher.
sollte jetzt stimmen

--

fr?her "M.D.Freezer"


Dieser Beitrag wurde am 01.12.2008 um 22:13 von Opey bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
01.12.2008, 22:08
Dopefish



doch nicht "result+=counter;" eher "result*=counter;" und falls es das nicht gibt halt "result=result*counter;"

@Protestallianz: Deine FOR-Schleife könnte etwa so aussehen:
Quellcode:for (int i=[Anfangswert]; i>=1; i--) {
result = result * i;
}

--

Resetting politics:
http://www.onlinepartei.eu


Dieser Beitrag wurde am 01.12.2008 um 22:16 von Dopefish bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
01.12.2008, 22:52
theDon



Quellcode:#include <iostream>
template <int x> struct for_loop { enum { result = x * for_loop <x - 1> :: result}; };
template <> struct for_loop <1> { enum { result = 1 }; };

int main (int, char**) { std::cout << for_loop < 6 > :: result << std::endl; return 0; }
Edit: Typo.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before


Dieser Beitrag wurde am 01.12.2008 um 23:04 von theDon bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
01.12.2008, 23:06
Protestallianz



@Dopefish kommt bei 5 600 raus... fail, weil du ja immer eins abziehen musst!

@theDon nach eingigem durchringen habe ich es verstanden ich darf aber nur klassennieveau verwenden trotzdem danke an alle
bisher

Nach langen "wie mache ich das ganz einfach:"

Quellcode:#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>

int main()
{
int x=0, i=0, b=0, kons=0;
cout<<"Programm zu Berechnung einer Fakultät einer Ganzzahl";
cout<<"\n Geben Sie eine Ganzzahl ein: ";
cin>>x;
kons=x;
i=(-1)*x;
for ( i; i<-1; i++)
{

b++ ;
x = x *(kons-b);
}

cout<<x;
getch();



return 0;
}
Danke für die Hilfe (Ja ich weiß Formation)

€dit: Was ich alles Include ist so Standard "Copy & Paste"!

--

-GAMING-


Dieser Beitrag wurde am 01.12.2008 um 23:16 von Protestallianz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
01.12.2008, 23:16
LeJean



Die Lösung von theDon ist vielleicht ein wenig fortgeschritten für euch Programmiereinsteiger.. würde ausserdem arg auffallen, denk ich mal. (War sicher auch Sinn der Sache..)

Aber du kannst nicht ernsthaft erzählen 2 Stunden an der Berechnung einer Fakultät gesessen zu haben, und dann auch noch ohne Ergebnis! Wie wär's denn, wenn du dich mit den hier gewonnenen Infos nochmal 20 Minuten hinsetzt, dann hast du das auch..
Und sogar dabei was gelernt.

--

zum Seitenanfang zum Seitenende Profil || Suche
008
01.12.2008, 23:18
caedes



protestallianz: was und wo studierst du?

--

caedes

Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen.


Dieser Beitrag wurde am 01.12.2008 um 23:21 von caedes bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
01.12.2008, 23:23
LeJean



Ich gehe davon aus, dass das Schul-"Informatik" ist.

--

zum Seitenanfang zum Seitenende Profil || Suche
010
01.12.2008, 23:29
default



wenn dass deine einfache lösung ist machst du dosen sicher mit ner brechstange auf

Quellcode:#include <iostream>
using namespace std;

int main()
{
    int i, ergebnis;
    ergebnis = 1;
    cout<<"Programm zu Berechnung einer Fakultät einer Ganzzahl";
    cout<<"\n Geben Sie eine Ganzzahl ein: ";
    cin>>i;
    for (;i>1;i-- )
        ergebnis *=i;

    cout<<ergebnis;

    //getch();

    return 0;
}

--

Du musst Deine Bandbreite verbreitern, damit du breiter wirst von der Bandbreite her und ein breiteres Publikum ansprechen kannst.

zum Seitenanfang zum Seitenende Profil || Suche
011
01.12.2008, 23:37
Dopefish



Zitat:
@Dopefish kommt bei 5 600 raus... fail, weil du ja immer eins abziehen musst!
nein, ganz bestimmt nicht! - bei meiner for-schleife wird ja i mit jedem durchlauf um eins verringert.
deine lösung ist hässlich und unnötig kompliziert.

--

Resetting politics:
http://www.onlinepartei.eu

zum Seitenanfang zum Seitenende Profil || Suche
012
02.12.2008, 00:00
Bluthund



Warum hat eigentlich keiner ne Lösung mit Rekursion angeboten? (edit4: Ach verdammt steht ja im OP, dass es iterativ passieren soll, alles umsonst :( )
Lehrer lieben Rekursion, auch wenn es in 95% der Fälle an denen man Rekursion erklärt bekommt die schlechteste Wahl ist (Fakultät ist einer von ihnen ^^).
Who cares sind ja noch 6 Minuten und gelöst isses ja auch schon:
Quellcode:#include <iostream>

long fac(long n)
{
    if (n>0)
        return n*fac(n-1);
    else
        return 1;
}

int main(void)
{
    long n;
    // Eingabeaufforderung schamlos aus defaults code geklaut
    std::cout << "Programm zu Berechnung einer Fakultät einer Ganzzahl" << std::endl;
    std::cout << " Geben Sie eine Ganzzahl ein: ";
    std::cin >> n;
    std::cout << fac(n);

    return 0;
}
Auf das der StackOverflow geschehe :P

edit: namespace-Fail

edit2:

Zitat:
Was ich alles Include ist so Standard "Copy & Paste"
Noch dazu ist es völliger Hunz, da deprecated. Eurem Lehrkörper gehören die Hände gebrochen, wenn er euch sowas im Jahr 2008 beibringt.

edit3: noch ein bisschen Klammern und Variablen sparen...

Don dein Spezialfall sollte auf 0 laufen, sonst crashst du für 0! den Compiler. Die schönste Lösung bleibt es trotzdem :)

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 02.12.2008 um 00:37 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
013
02.12.2008, 08:15
theDon



Quellcode:f.cpp:2: error: incomplete type ‘for_loop<-0x000000000000001f4>’ used in nested name specifier Noe, crasht nicht. Funktioniert allerdings auch nicht …

Schoen ist was anderes, sowas hier zum Beispiel:
Quellcode:fac :: [Integer]
fac = scanl (*) 1 [1 ..]

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
014
02.12.2008, 10:55
Bluthund



Hmm ich hatte nur das VS2008 zur Hand zum Testen und der M$-(Optimierungs *rolleyes*)Compiler crashed - im Nachhinein eigentlich nich verwunderlich: Der schafft es ja auch sich bei der FOV-Berechnung im OrangeBox-SDK abzuschießen.

@Code (Haskell?):
Schön sicherlich, aber kein CPP ^^

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
015
06.12.2008, 19:31
Protestallianz



Ja das von default kam mit ner Vari weniger aus.

Ich habe auch nicht 2 Stunden drangesessen. Naja ich Oberstufenfach "Programmieren"!
Ich war einer der 8 von 21 die, die Hausaufgaben hatte.

Danke nochmal ^^

--

-GAMING-

zum Seitenanfang zum Seitenende Profil || Suche