Primzahlenzerlegung
-
Badestrand schrieb:
Braunstein, du hast noch das "faktor=2" vergessen
Nö, habe ich nicht. Dann hätte ich ja auch gleich den ganzen Code hinschreiben können.

Ich hatte hier nur das gefühl, das der Kollege mit if nicht zurechtkommt.
-
Könntet ihr hier bitte noch mal drüber gucken. Hab mal was versucht aber stimmt halt immer noch nicht alles.
#include <iostream> #include <cmath> using namespace std; void main (void) { int faktor=2, zahl , rest ; cout >> "Bitte die Zahl die zerlegt werden soll eingeben!!! " cin << Zahl; do } rest = zahl % faktor; if( rest == 0) { cout << faktor << "\zahl"; zahl = zahl / faktor; } else { faktor = faktor + 1; } } while { faktor<=sqrt(zahl); } }Habe noch ein Problem mit meinem Programm wenn ich auf "Start ohne Debuggen" klicke kommt immer folgende Fehlermeldung
-
Da unten steht's doch - "45 Fehler, 1 Warnung(en)". Und der auffälligste Fehler in deinem Code ist, daß du nach dem "do" eine schließende Klammer gesetzt hast.
(außerdem heißt es immer noch "int main()")
-
CStoll schrieb:
Da unten steht's doch - "45 Fehler, 1 Warnung(en)". Und der auffälligste Fehler in deinem Code ist, daß du nach dem "do" eine schließende Klammer gesetzt hast.
(außerdem heißt es immer noch "int main()")
wir ham gesagt bekommmen es heißt void main des kann er uns noch nit erklären aber wir sollens einfach immer hinschreibne komme später erst in der vorlesung.
Und warum hat der keine exe datei erstellt. ich bin hier fast am heulen
-
Er kann keine EXE erstellen, weil das Programm Syntax-Fehler enthält (im Ausgabefenster, das du dort gepostet hast, kann man nur die Anzahl sehen - aber wenn du etwas hoch scrollst, erfährst du auch, was dem Compiler nicht gefällt).
Und ich vermute, daß sich die meisten dieser Fehler zurückführen lassen auf Zeile 10 - dort sollte doch eher eine öffnende Klammer { stehen.
(und etwas Struktur (bzw. vernünftige Einrückungen) könnte deinem Programm auch nicht schaden)
@ "void main()": da lebt euer Lehrer aber hinter dem Mond.
-
hmm ka glaube er ist richtig gut er ist ja unser prof von de uni. er programmiert in seinem job auch sehr erfolgreich cad programm oder sowas
-
ist denn so jetzt besser anzugucken?
#include <iostream> #include <cmath> using namespace std; void main (void) { int faktor=2, zahl , rest ; cout >> "Bitte die Zahl die zerlegt werden soll eingeben!!! " cin << Zahl; do { rest = zahl % faktor; if( rest == 0) { cout << faktor << "\zahl"; zahl = zahl / faktor; } else { faktor = faktor + 1; } } while { ( faktor<=sqrt(zahl)); } }
-
Auf Anhieb fällt mir dort nichts gravierendes auf - was sagt denn dein Compiler?
-
1>------ Erstellen gestartet: Projekt: Aufgabe_04, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Primzahlzerlegung.cpp
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1016): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1016): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1016): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1016): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1009): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1009): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1009): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,unsigned char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1009): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1002): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1002): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1002): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char &)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(1002): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(995): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(995): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(995): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<char,_Traits> &std::operator >>(std::basic_istream<char,_Traits> &,signed char *)": template-Argument für "std::basic_istream<char,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(995): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem &)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(971): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem &)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(971): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem &)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(971): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem &)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(971): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem *)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(930): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem *)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(930): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem *)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(930): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2784: "std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem *)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ostream" hergeleitet werden.
1> c:\programme\microsoft visual studio 8\vc\include\istream(930): Siehe Deklaration von 'std::operator >>'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2676: Binärer Operator '>>': 'std::ostream' definiert diesen Operator oder eine Konvertierung in einen für den vordefinierten Operator geeigneten Typ nicht
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cin'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(8) : error C2065: 'Zahl': nichtdeklarierter Bezeichner
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(14) : warning C4129: 'z': Nicht erkannte Folge von Escapesequenz
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(24) : error C2059: Syntaxfehler: '{'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(24) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>d:\dokumente und einstellungen\niklas\eigene dateien\visual studio 2005\projects\informatikpraktikum i\aufgabe_04\primzahlzerlegung.cpp(25) : error C2668: 'sqrt': Mehrdeutiger Aufruf einer überladenen Funktion
1> c:\programme\microsoft visual studio 8\vc\include\math.h(581): kann 'long double sqrt(long double)' sein
1> c:\programme\microsoft visual studio 8\vc\include\math.h(533): oder "float sqrt(float)"
1> c:\programme\microsoft visual studio 8\vc\include\math.h(128): oder "double sqrt(double)"
1> bei Anpassung der Argumentliste '(int)'
1>Das Buildprotokoll wurde unter "file://d:\Dokumente und Einstellungen\Niklas\Eigene Dateien\Visual Studio 2005\Projects\InformatikPraktikum I\Aufgabe_04\Debug\BuildLog.htm" gespeichert.
1>Aufgabe_04 - 30 Fehler, 1 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Ups - die IO-Operatoren am Anfang sind ja auch verkehrt herum gesetzt ("cout**<<..." bzw. cin>>**...").
-
hmm also ich habs jezt. läuft so einigermassen aber glaub die funktin stimmt noch nit ganz so:
#include <iostream> #include <cmath> using namespace std; void main (void) { int faktor=2, zahl , rest ; cout << "Bitte die Zahl die zerlegt werden soll eingeben!!! "; cin >> zahl; do { rest = zahl % faktor; if( rest == 0) { cout << faktor << "zahl"<<endl; zahl = zahl / faktor; } else { faktor = faktor + 1; } } while ( faktor<=sqrt((double)zahl)); }
-
a) achte mal auf die Groß/Kleinschreibung - zahl und Zahl sind zwei verschiedene Namen.
b) Es gibt keine Escape-Sequenz '\z' - dort ist der Backslash überflüssig.
c) die Abbruchbedingung der while-Schleife muß (genauer darf) nicht in {...} eingeschlossen werden.
-
CStoll schrieb:
a) achte mal auf die Groß/Kleinschreibung - zahl und Zahl sind zwei verschiedene Namen.
b) Es gibt keine Escape-Sequenz '\z' - dort ist der Backslash überflüssig.
c) die Abbruchbedingung der while-Schleife muß (genauer darf) nicht in {...} eingeschlossen werden.
OK DANKE HABS SELBER ALLES SCHON GEFUNDEN.
aber irgendwie stimmt da was noch nit oder? bzw ich versteh wenn die ergebniss nit)
-
Ne, stimmt auch so nicht - du hast einfach ohne zu gucken den if-Code von Braunstein kopiert, und der hat extra nicht den vollständigen richtigen Code dafür gepostet. Guck dir das nochmal genau an, bzw vergleiche es einfach mit dem Diagramm.
-
naja kopiert nit aber als Hilfe genommen;) Ok ich gucke noch mal:)
#include <iostream> #include <cmath> using namespace std; void main (void) { int faktor=2, Zahl , rest ; cout << "Bitte die Zahl die zerlegt werden soll eingeben: "; cin >> Zahl; do { rest = Zahl % faktor; if( rest == 0) { cout << faktor << "Zahl"<<endl; Zahl = Zahl / faktor; faktor =2; } else { faktor = faktor + 1; } } while ( faktor<=sqrt((double)Zahl)); }das faktor =2 hatte ich vergessen oder?? ich glaub aber in der ausgabe cout << faktor<<"Zahl"<< endl;
da stimmt glaube ich noch was nit.
-
Soweit richtig, fehlt nur noch die letzte Zeile des Struktogramms

-
hmm wenn ichs drunter schreib dann macht ers immer noch nit ganz wie muss ich den nda die klammern setzen?
#include <iostream> #include <cmath> using namespace std; void main (void) { int faktor=2, Zahl , rest ; cout << "Bitte die Zahl die zerlegt werden soll eingeben: "; cin >> Zahl; do { rest = Zahl % faktor; if( rest == 0) { cout << faktor << "Zahl"<<endl; Zahl = Zahl / faktor; faktor = 2; } else { faktor = faktor + 1; } } while ( faktor<=sqrt((double)Zahl)); cout<<Zahl<<endl; }
-
wog schrieb:
hmm wenn ichs drunter schreib dann macht ers immer noch nit ganz
aha...
-
So, jetzt habe ich mal deine Hausaufgaben gemacht. Im Großen und Ganzen habe ich deinen obigen Quelltext abgeschrieben und die Klammern und Operatoren mal sinnvoll lesbar gesetzt.
Gewöhn dir bitte recht schnell einen vernünftigen Stil an, damit du selbst noch durch deinen Code durchblickst:
(Soll nicht heißen, dass man Stil das gelbe vom Ei ist, eben nur ein Beispiel)
#include <iostream> #include <cmath> using namespace std; int main() // alternativ "int main(int argc, char** args)", wenn // Kommandozeilenparameter verwendet werden { int faktor = 2; int zahl; cout << "Bitte die Zahl eingeben, die zerlegt werden soll:" << endl; cin >> zahl; do { int rest = zahl % faktor; // Variablen können in C++ auch dort deklariert (und auch // zugewiesen werden, wo sie benötigt werden. if(rest == 0) { cout << faktor << endl; zahl = zahl / faktor; faktor = 2; } else { faktor = faktor + 1; } } while(faktor <= sqrt(zahl)); cout << zahl << endl; return EXIT_SUCCESS; }Sinnvolle Einrückungen und ein paar Leerzeichen um die Operatoren gestalten das ganze doch schon lesebarer. So kann man den Text auch leichter nachvollziehen.
Grüße... Heiko
-
So nach langen Machen und Hilfen von euch habe ichs gepackt!
#include <iostream> #include <cmath> using namespace std; void main (void) { int Faktor=2, Zahl , Rest ; cout << "Bitte die Zahl die zerlegt werden soll eingeben: "; cin >> Zahl; do { Rest = Zahl % Faktor; if ( Rest == 0) { cout << Faktor<<"x"; Zahl = Zahl / Faktor; Faktor = 2; } else { Faktor = Faktor + 1; } } while (Faktor<=sqrt((double)Zahl)); cout<<Zahl<<endl; }Im Laufe des We muss ich noch die Fibonacci Reihe Programmieren also macht euch auf was gefasst es kommen noch viele dumme Fragen:)
Danke noch mal für alles.
wog