Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die stärke von Software ist es gerade sequenzen zu bearbeiten.
Es ist eigentlich egal ob die ein Polynom 2. oder 120. Grades berechnen sollst. Du musst du zuerst vom Nutzer abfragen, welchen Grad er berechnen will, danach die Formel und dann deinen Code mit diesen Daten füttern. Die Schleifen laufen dann einfach länger, die Felder müssen größer sein etc.
Aber das Prinzip ist das gleiche.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Fr Jan 04, 2008 21:29 Beiträge: 419 Wohnort: Lübeck
cin und cout funktioniert genauso wie "hello world", nur dass man noch ein wenig Programmcode drumherum schreibt. In deinem Fall machste dann ein cout und cin direkt am Anfang deiner Funktion und speicherst die eingegebene Zahl als 'n'. 'n' benutzt du dann als Maximalzahl für deine Schleife und als Anzahl der Arrayeinträge die im Speicher angelegt werden sollen. Vielleicht funktioniert es ja dann.
Achja.. in der Schleife musst du bis MaximalZahl-1 zählen, also n-1, weil, dein array mit n einträgen geht nicht von 1 bis n sondern von 0 bis n-1 und wenn die schleife aber bis n zählt, dann versuchst du einen wert zu lesen (den mit der nummer 'n'), der garnicht exisitiert und dann fliegt dir dein Programm um die Ohren... obwohl ich glaub C/C++ nimmt das einfach so hin und gibt dir Datenschrott ausm hintersten Nirvana zurück.
_________________ Klar Soweit?
Zuletzt geändert von Sellmann am Di Jul 21, 2009 10:19, insgesamt 1-mal geändert.
ich bekomm das nicht hin =(
hab versucht aber geht nicht, und am freitag ist abgabe =(((((((
mein prof schreibt:
Das Auswählen des Polynomgrades soll der andere aus dem Projekt übernehmen. Sie bekommen den Grad vorgegeben.
ich bekomm das nicht hin =( hab versucht aber geht nicht, und am freitag ist abgabe =(((((((
Eben beim Zähneputzen hab ich leider die Kristallkugel vom Badezimmerschrank geschubst. Ich
hoffe es stört dich deshalb nicht, wenn ich frage:
- Was hast du denn versucht? Zeig im Idealfall mal dein verändertes Listing.
- Was geht nicht? Beskommst du ein Fehler beim Kompilieren oder hat der geänderte Code nicht
den von dir geschwünschten Effekt?
- Warum rückt der Abgabetermin eigentlich immer weiter in die Ferne (war das nicht mal ein Mittwoch)?
- Und warum nimmst du dir die Kritik an deiner Postweise nicht zu Herzen und lässt zur Abwechslung mal
brauchbare Infos durchblicken. Das ist nicht böse gemeint, aber es wäre dann vielleicht einfacher (nein -
es wäre dann erst überhaupt möglich) dir bei deinem Problem zu helfen.
Und vor allem beantworte die Frage von Sellman - was auch die Frage aufwirft: Warum kommst du
damit erst jetzt raus?
Wenn der Grad des Polynoms von jemand anderem frei festgelegt werden soll, wäre es sicher nicht
verkehrt, wenn du dir mal dynamische Arrays in C++ anschaust (die releavanten Schlüsselwörter für
Google sind: new und dispose) - alternativ kannst du aber auch die Vector-Klasse aus der STL verwenden
(frag nicht wie, steht im Netz).
_________________ Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut. Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’. Und du schaust mich an und fragst ob ich das kann. Und ich denk, ich werd' mich ändern irgendwann. _________________Farin Urlaub - Bewegungslos
der andere ist der, dem ich das abgeben muss und der das dann in einem menü einbindet mein programm.
der abgabe termin ist freitag, aber er wird leider nicht verlängert.
am freitag um 13uhr !!!
der grad muss von dem andeeren festgelegt werden und darf nur maximal 25 sein.
und das was der andere dann wählt muss dann mein programm übernehmen.
hab versucht diesen code von meinem prof einzubinden aber lautet fehler.
Dass du dich selbst drum bemühst. Es wurde alles schon mehr als einmal gesagt. Ich weiß zwar immernoch nicht, wer der "andere" sein soll, aber ich habe dir ja den Code gegeben der eine Zahl einlesen kann. Das einzige was du dann noch brauchst ist eine globale Variable welche du zum Beispiel "grad" nennst.
Code:
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream> // einfügen!
int grad = 0; // einfügen!
...
int main(int argc, char **argv)
{
std::cout << "Grad des Polynoms eingeben:" << std::endl; // einfügen!
std::cin >> grad; // einfügen!
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(width, height);
glutInitWindowPosition(600,50);
glutCreateWindow("APPROXIMATION CURVES");
glEnable(GL_MAP1_VERTEX_3);
glClearColor(1.0, 1.0, 1.0, 1.0);
/* Register the callbacks */
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
So, jetzt hast du die Grade in einer Variable stehen. Was dein Prof dir gegeben hat ist natürlich kompletter blödsinn und kann überhaupt nicht funktionieren. Was du tun musst ist in der Funktion drawParabel() "n" mit "grad" zu initialisieren. Dann brauchst du natürlich noch Arrays die lang genug sind. Hier bieten sich dynamische Arrays an. Die kann man natürlich nicht so:
Code:
float a[n][n], s, rs[n],z[n],koeff[n],h,x,y;
deklarieren. Dazu musst du dir den Speicher holen:
Code:
float *rs = new float[n+1];
...
delete[] rs; // am Ende von drawParabel()
Du kannst die Arrays aber auch einfach so groß machen, dass die Grenzen nicht erreicht werden.
Ich weiß nicht, was daran jetzt so schwer gewesen sein soll - gerade weil ALLES hier schon geschrieben wurde. Wenn man sieht was der Prof dir andauernd für einen Müll zuschiebt kann man sogar davon ausgehen, dass er überhaupt nicht merkt, dass keine einzige Zeile von diesem Programm von dir stammt.
Edit: sei froh, dass ich überhaupt noch was schreibe. So wie du dich hier aufführst gehört dir eigentlich nicht geholfen. Wahrscheinlich liest du dir nichtmal durch was die Leute hier schreiben. Ein paar Posts über meinem wird noch gesagt, dass du sagen sollst welche Fehler der Code verursacht und du schreibst wieder nur von "Fehlern". Das ist doch lächerlich, das einzige was du tust ist Code von anderen sinnlos bei dir einzufügen ohne nur die leiseste Ahnung davon zu haben.
Das ist ja wohl der Gipfel. Hast du dir durchgelesen was ich geschrieben habe? Naja... was soll die Frage, natürlich hast du es nicht sonst hättest du nicht so was sinnloses gemacht. Das das nicht richtig ist sollte schon alleine durch die Compilerfehler die dir um die Ohren fliegen offensichtlich sein.
Ich bin es Leid, und werde diesem Trauerspiel ein Ende setzen und hoffen dass du nicht noch ein Problem hast - ich werde dir dabei sicher nicht helfen.
Code:
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#define MAX_CPTS 50 /* Fixed maximum number of control points */
GLfloat cpts[MAX_CPTS][3];
int ncpts =0;
int key_Approcurve=0;
int key_Parabel=0;
int key_ctrlpoly=0;
int key_input=2;
int key_points=0;
int indx;
int num =0;
staticint width =1000, height =1000;/* Window width and height */
Mitglieder in diesem Forum: Google [Bot] und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.