Neue Antwort erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

Die letzte Antwort auf dieses Thema liegt mehr als 365 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstellen Sie ggf. ein neues Thema.

Informationen
Sicherheitsabfrage („reCAPTCHA“)
Nachricht
Maximale Anzahl an Dateianhängen: 10
Maximale Dateigröße: 1 MB
Erlaubte Dateiendungen: bmp, gif, jpeg, jpg, pdf, png, txt, zip
Internet-Adressen werden automatisch erkannt und umgewandelt.
Smiley-Code wird in Ihrer Nachricht automatisch als Smiley-Grafik dargestellt.
Sie können BBCodes zur Formatierung Ihrer Nachricht nutzen.

Vorherige Beiträge 14

  • mmm ich glaube, um grosse zahlen miteinander zu multiplizieren, muss man die schriftliche division mit chars einsetzen
    und vektoren benutzen für die chars
    weil man mit dem vorgegeben * nix machn kann
  • falls dus nich jedesmal sehen willst, mach z.b.
    if ( i%50 == 0)
    cout << "bitte warten" << endl;
    müsste klappen

    ausserdem müsste grade erg unsigned long sein, so wie ich das sehe
  • tjo, habs mittlerweile auch rausgefunden
    nun 2 weitere probs, naja, ein neues, das andere ist bekannt
    1)

    Quellcode

    1. while(i <= fak)
    2. {
    3. erg = i*erg;
    4. i++;
    5. cout << "Bitte warten - Vorgang laeuft\n";
    6. }

    da bräucht ich irgend ne delay funktion
    so das das "Bitte warten" nur noch alle, z.B. 10 sekunden kommt

    und dann halt ne ahnung, wie ich das mit dem zahlenbereich löse
  • für was liest du "stdlib.h" ein? brauchst du doch gar net...du kannst außerdem in main() die argumente weglassen, brauchste ja auch net...

    zur lösung:

    cout << "Die Fakultät von " << fak << " beträgt: \n" << erg << "\n";

    anstatt:

    cout << "Die Fakultät von "fak" beträgt: \n"erg"\n";


    speichern geht auch, bin aber im buch noch net so weit, müsste mal weitermachen ;)
  • ich weiß, ein double wert reicht da net
    matti (mod3000) meinte, das prob kann man einem string aus charwerten umgehn

    irgendwie muss es zu lösen sein, denn der windoof taschenrechner könnte es
    da muss man allerdings alle 2min auf fortsetzen klicken, weil er sich beschwert das die rechnung sehr lange dauert

    und ginge es, das er die zahl dann als textdatei ausgibt?
    und der name dann Fakultät x.txt
    irgendwie müsste das gehn

    [edit]
    habs erstmal abgetippt und etwas verändert

    C-Quellcode

    1. #include <iostream>
    2. #include <stdlib.h>
    3. using namespace std;
    4. int main(int argc, char *argv[])
    5. {
    6. // Begrüßung
    7. cout << "Dies ist ein Programm zur Berechnung beliebiger Fakultäten\n Bitte geben sie eine ganze Zahl ein!\n Die Fakultät von: ";
    8. //variablenvereinbarung (i, fak und erg)
    9. unsigned long int i;
    10. unsigned long int fak;
    11. double erg;
    12. char quit;
    13. // Eingabe von fak
    14. cin >> fak;
    15. // i und erg wird der wert 1 zugewiesen
    16. i = 1;
    17. erg = 1;
    18. //eine while-schleife, die solange h mit i multipliziert und i um 1
    19. //hochzählt, solange i kleiner-gleich fak ist
    20. while(i <= fak)
    21. {
    22. erg = i*erg;
    23. i++;
    24. cout << "Bitte warten - Vorgang läuft\n";
    25. }
    26. // Ergebnis
    27. cout << "Die Fakultät von "fak" beträgt: \n"erg"\n";
    28. cout << "Beliebige Taste zum schließen Tippen";
    29. cin >> quit;
    30. return 0;
    31. }
    Alles anzeigen

    bekomm aber den fehler
    29 E:\DevCPP\Fakultätenrechner\main.cpp
    parse error before string constant

    help
  • also:
    Neu -> Quelldatei

    #include <iostream>
    using namespace std;

    int main()
    {
    double i, h; //variablenvereinbarung (i und h)
    i = 1; // i und h wird der wert 1 zugewiesen
    h = 1;
    while(i <= 1000000) //eine while-schleife, die solange h mit i multipliziert und i um 1
    { //hochzählt, solange i kleiner-gleich einer millionen ist
    h = i*h;
    i++;
    }
    cout << h; //ausgabe des endproduktes
    return 0; //beendung der funktion main()
    }

    und dann strg+F9 zum compilieren, starten allerdings in der eingabeaufforderung, da sich das text-prog net offen hält...

    es wird eine fehlermeldung beim ausführen kommen, was damit zusammenhängt, dass die fakultät von 1000000 "etwas" groß is, selbst für double...die "//" kannst du lassen, da damit ein einzeiliges kommentar eingeleitet wird...

    das programm ist auch nur ganz grob ohne irgendwelche besonderheiten...ich hoffe aber trotzdem, dir geholfen zu haben...