Veröffentlicht 10. März 200520 j Hey. Muss für die Schule mit C++ das "Pascalsche Dreieck" programmieren. Hab's schon stundenlang versucht, aber bekomm es nicht hin. HILFEEEE Es wäre gut, wenn man die Anzahl der Zeilen und Spalten angeben könnte. Außerdem sollte es schon ein Dreieck sein. Das, was ich bins jetzt hinbekommen hab, sieht so aus: #include <iostream.h> #include <iomanip.h> int main() { int x[10][10],i,j; //Erste Zeile setzen x[0][0] = 1; // Erstes Element, Sonderbehandlung for (i = 1; i < 100; i++) { x[0] = 0; } //Zeilen aus ihren Vorgängern berechnen for (i = 1; i < 10; i++) { x[0] = 1; for (j = 1; j < 10; j++) { x[j] = x[i-1][j-1] + x[i-1][j]; } } //Matrix ausgeben: for (int i = 0; i< 10; ++i) { for (int j = 0; j < 10; ++j) { cout<<setw(4); cout<<x[j]; } cout<<"\n"; } cin.get();cin.get(); } Ist allerdings nicht ausreichend. Vielleicht könnt ihr mir ja helfen =) MFG marfrei2
10. März 200520 j Werde mal versuchen zu helfen, auch wenn meine C++ Kenntnisse bescheiden sind. Hey. Muss für die Schule mit C++ das "Pascalsche Dreieck" programmieren. Hab's schon stundenlang versucht, aber bekomm es nicht hin. HILFEEEE Es wäre gut, wenn man die Anzahl der Zeilen und Spalten angeben könnte. Außerdem sollte es schon ein Dreieck sein. Das, was ich bins jetzt hinbekommen hab, sieht so aus: #include <iostream.h> #include <iomanip.h> Laut Norm ohne ".h" Endung. Zudem fehlt noch die Zeile: using namespace std; wenn du mit nem ANSI-kompatiblen Kompiler arbeitest. int main() { int x[10][10],i,j; //Erste Zeile setzen x[0][0] = 1; // Erstes Element, Sonderbehandlung for (i = 1; i < 100; i++) { x[0] = 0; } 1.)Wieso hier 100 und in der Initialisierung nur 10 Elemente? 2.)Zudem sollte die 1 doch in der Mitte stehen und nicht am Rand, siehe [1]. 3.)Es ist besser wenn du erstmal das gesammte Feld Null setzt, sonst kann da alles mögliche stehen, war zumindest bei mir so //Zeilen aus ihren Vorgängern berechnen for (i = 1; i < 10; i++) { x[0] = 1; Wieso x[0] jedesmal 1 setzen? for (j = 1; j < 10; j++) { x[j] = x[i-1][j-1] + x[i-1][j]; } } x[i-1][j] ist falsch, überleg mal, die Ergebnisse stehen im Dreieck nie unter dem Element der darüberliegenden Zeile. //Matrix ausgeben: for (int i = 0; i< 10; ++i) { for (int j = 0; j < 10; ++j) { cout<<setw(4); cout<<x[j]; } cout<<"\n"; } cin.get();cin.get(); } Ist allerdings nicht ausreichend. Vielleicht könnt ihr mir ja helfen =) MFG marfrei2 Ich hoffe das reicht an Hilfestellung [1]Pascalsches Dreieck
11. März 200520 j hmm ich weis ja nicht mal wofür using namespace std; da ist. hab das schon öfter gesehen, aber wenn ich es ausprobieren wollte, gibt der mir immer n fehler aus. "name of namespace expected" oda sowas ^^ danke für die hilfestellung, aber bis jetzt kann ich damit nicht wirklich viel anfangen Laut Norm ohne ".h" Endung. << wieso ohne ".h"? was bringt das? wo liegt der unterschied?
11. März 200520 j Erstmal, was für Compiler(Version, Alter) nutzt du, sonst artet das hier in Rätselraten aus. using namespace std; Gibt nach meinem Verständnis an, das für alle Befehle im Quelltext die Funktion des C++ - ANSI-Standards benutzt werden. Ohne .h werden die neuen Header benutzt, welche nach Norm funktionieren sollten.
11. März 200520 j Laut Norm ohne ".h" Endung. << wieso ohne ".h"? was bringt das? wo liegt der unterschied?iostream und iostream.h sind zwei unterschiedliche Dateien. Die Form mit .h ist die veraltete, bei der alle Klassen, Objekte und Funktionen im globalen Namensraum liegen. Die Form ohne .h ist die, die dem aktuellen Standard entspricht. Dabei liegen alle Objekte, Klassen und Funktionen im Namensraum std. Neuere Compiler beschweren sich oft bei der Benutzung der alten Headerdateien, wenn sie sie überhaupt noch bereitstellen.
11. März 200520 j aso. gut zu wissen. hab c++ irgendwann mal von der schule bekommen, d.h. ich denke nicht es wirklich auf dem neusten stand ist. > Borland C++ V 5.01 Hab es mal ohne ".h" ausprobiert und dafür "using namespace std;" verwendet. Beim compilieren bekomme ich die Fehlermeldung "Fehler: Namespace name expected". hilft euch das weiter? +hoff+
11. März 200520 j aso. gut zu wissen. hab c++ irgendwann mal von der schule bekommen, d.h. ich denke nicht es wirklich auf dem neusten stand ist. > Borland C++ V 5.01 Probier mal: #include <iostream> using namespace std; int main() { } zu kompilieren, wenn da eine Fehlermeldung kommt, ist der Kompiler zu alt. Probier dann: http://www.bloodshed.net/dev/devcpp.html und dort die Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) runterladen, lass dich von dem beta nicht verrückt machen, die Software läuft bei mir stabil. Hab es mal ohne ".h" ausprobiert und dafür "using namespace std;" verwendet. Beim compilieren bekomme ich die Fehlermeldung "Fehler: Namespace name expected". Sollte an der Version liegen.
12. März 200520 j using namespace std; Gibt nach meinem Verständnis an, das für alle Befehle im Quelltext die Funktion des C++ - ANSI-Standards benutzt werden. Nein. using namespace ... erspart Dir lediglich die Schreibarbeit alle Namen innerhalb eines Namespaces ohne den Namen des Namespaces selbst benutzen zu können. Die Angabe ist erforderlich, da bei Verwendung von <iostream> (ohne .h) alle Namen im Namespace std liegen. Beispiel: Nach der vorangehenden Angabe von "using namespace std;" kann man anstatt "std::cout" einfach "cout" schreiben. Man kann natürlich trotz using namespace ... jederzeit vollständig qualifizierte Namen verwenden. Die Verwendung von <iostream.h> ist veraltet und sollte nicht mehr verwendet werden (neuere Compiler unterstützen diesen Header teils gar nicht mehr), allerdings kommt älterer damit geschriebener Code ohne "using namespace ..." oder die Angabe des Namensraumes aus (in der Form "std::..."), da keiner verwendet wurde. Man konnte folglich direkt cout schreiben.
14. März 200520 j Ok =) ich lad den Compiler grad runter. Die frage ob ".h" oder nicht haben wir jetzt geklärt. Allerdings bin ich mit meinem Dreieck immer noch nicht weiter
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.