Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 12:34

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 126 Beiträge ]  Gehe zu Seite Vorherige  1 ... 3, 4, 5, 6, 7, 8, 9  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 16:29 
Offline
DGL Member

Registriert: Mi Jul 15, 2009 18:29
Beiträge: 52
Code:
  1.  
  2.  
  3. int horner(int a[], int x, int n){
  4.     int h;
  5.  
  6.     if(n>0)
  7.         h=horner(a, x, n-1);
  8.     else
  9.         return a[n];
  10.  
  11.     return h*x+a[n];
  12. }
  13.  
  14.  
  15.  



ist das hier vielleicht der richtige weg ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 16:49 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 30, 2007 18:35
Beiträge: 331
Das ist eine rekursive Variante des Horner Schemas und hat wie schon erwähnt nicht direkt etwas mit deinem Problem zu tun.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 16:50 
Offline
DGL Member

Registriert: Mi Jul 15, 2009 18:29
Beiträge: 52
und wie muss ungefähr mein prog aussehen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 16:59 
Offline
DGL Member

Registriert: Mi Jul 15, 2009 18:29
Beiträge: 52
Code:
  1.  
  2.    
  3.  
  4.    
  5.        
  6.    
  7.      int array[0..3]  
  8.        
  9.    
  10.       function horner;
  11.       int i;
  12.  
  13.       result := coeff[3];
  14.  
  15.       for (i=0; i<10; i++)
  16.      
  17.       printf (i);
  18.  

???


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 17:41 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Was ist das denn? Das funktioniert ja vorne und hinten nicht.
Das einzige was irgendwie funktionieren könnte ist die Schleife. Und die gibt immer(!) folgendes aus: 0 1 2 3 4 5 6 7 8 9

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 17:42 
Offline
DGL Member

Registriert: Mi Jul 15, 2009 18:29
Beiträge: 52
ich habs ??

Code:
  1.  
  2. int horner(double Ac[], double Ax[], int n, double x) {
  3.     /* Ac ist der Vektor mit den Koeffizienten,
  4.        Ax sind die Stützstellen und, n die Anzahl von Stützstellen und
  5.        x der Punkt, an dem ausgewertet werden soll. */
  6.     int i;
  7.     double y = 0;
  8.     for(i=n; i>=0; i--) {
  9.         y = y * (x - Ax[i]) + Ac[i];
  10.     }
  11.     return y;
  12. }
  13.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 18:32 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 30, 2007 18:35
Beiträge: 331
Deine Aufgabe ist es ja wohl eben diese Koeffizienten, also das Approximationspolynom auszurechnen. Das was du hier treibst hat nichts damit zu tun sondern sind Versuche die Werte dieses Polynoms zu berechnen.

Code:
  1.    
  2.      int array[0..3]
  3.        
  4.    
  5.       function horner;
  6.       int i;
  7.  
  8.       result := coeff[3];
  9.  
  10.       for (i=0; i<10; i++)
  11.      
  12.       printf (i);
  13.  


Wenn man das hier sieht ist es offensichtlich, dass du deinen ganzen Code von irgendwo zusammenkopierst und keine Ahnung hast was du tust. Da wird C mit falschen Pascal gemischt und was rauskommt hat überhaupt keinen Sinn.

Code:
  1. int horner(double Ac[], double Ax[], int n, double x) {
  2.     /* Ac ist der Vektor mit den Koeffizienten,
  3.        Ax sind die Stützstellen und, n die Anzahl von Stützstellen und
  4.        x der Punkt, an dem ausgewertet werden soll. */
  5.     int i;
  6.     double y = 0;
  7.     for(i=n; i>=0; i--) {
  8.         y = y * (x - Ax[i]) + Ac[i];
  9.     }
  10.     return y;
  11. }


Das hier ist auch nicht viel besser. Die Funktion gibt int zurück, du schreibst aber return y. Das ist aber ein double den du obendrein noch mit = 0 initialisierst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 19:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 04, 2006 15:42
Beiträge: 78
Wohnort: Bonn
Programmiersprache: Python, C++, Delphi
Jule, hör auf mit diesem Mist deine Zeit zu verschwenden. Dir wurde jetzt schon öfter
erklärt, was du zu tun hast!

http://de.wikipedia.org/wiki/Lineares_Gleichungssystem

http://de.wikipedia.org/wiki/Gau%C3%9Fs ... sverfahren

http://de.wikipedia.org/wiki/Hornerschema

http://www.taoyue.com/tutorials/pascal/

- in der Reihenfolge.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 20:06 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Hast du schon mal die eine Stelle an der Steht n=2 durch n=5 ersetzen probiert? Auf den 1. Blick sieht das Programm so aus als sollte es dann immernoch funzen und nen polynom 5. grades statt 2. grades verwenden.

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 22:03 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
The-Winner hat geschrieben:
Hast du schon mal die eine Stelle an der Steht n=2 durch n=5 ersetzen probiert? Auf den 1. Blick sieht das Programm so aus als sollte es dann immernoch funzen und nen polynom 5. grades statt 2. grades verwenden.


Auf das n hab' ich auch schon mehrmals hingewiesen, weil ich das auch vermute. Aber ne Antwort ob das funktioniert bekam ich noch nicht.
Das wäre natürlich schon geil, wenn dieser ganze seitenlange Thread durch einen einzigen Post hätte ersetzt werden können. Und ein so trivialer noch dazu.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 20, 2009 22:26 
Offline
DGL Member

Registriert: Mi Jul 15, 2009 18:29
Beiträge: 52
ich habe mal in meinem programm die 2 zu ne 5 verändert und das klappt, wäre es denn richtig oder muss da noch einiges verändert werden?
weil mein prof hat mir ein code geschickt
Code:
  1.  
  2.  
  3. int horner(double Ac[], double Ax[], int n, double x) {
  4.     /* Ac ist der Vektor mit den Koeffizienten,
  5.        Ax sind die Stützstellen und, n die Anzahl von Stützstellen und
  6.        x der Punkt, an dem ausgewertet werden soll. */
  7.     int i;
  8.     double y = 0;
  9.     for(i=n; i>=0; i--) {
  10.         y = y * (x - Ax[i]) + Ac[i];
  11.     }
  12.     return y;
  13. }
  14.  
  15.  


und hat gesagt so in etwa, aber wenn mein programm doch schon den 2.grad zeichnen kann dann muss ich doch einfach nur die 2 verändern oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 21, 2009 08:45 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Na dann nimm einfach deinen bestehenden Code. Und bau das von deinem Prof rein.

Software Engineering hat schon was von normalen Engineering.
Die einzelnen unterprogramme kannst du dir wie kleine Maschinen vorstellen. Du steckst was ran, die machen was damit und am Ende kommt was raus.

Die Ingeneure müssen ihre Maschinen mit Förderbänder und Kabel verbinden. Wir tun das mit Variablen. Du nimmst die Ausgabe einer Funktion, speicherst die in einer Variable und steckst diese dann in die nächste Funktion wieder rein.

Es geht einfach nur darum, die "Maschinen" in der richtigen Reihenfolge und Art und Weise zu verbinden.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 21, 2009 08:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 04, 2006 15:42
Beiträge: 78
Wohnort: Bonn
Programmiersprache: Python, C++, Delphi
Warum sollte sie das einbauen? Der Code lässt sich noch nicht mal übersetzen.
Woher soll Jule wissen, wo sie es einbauen muss? Das muss schon jemand für sie machen.

BTW. benutzt "jules" Code ja schon das Hornerschema (hat sie wohl benutzt ohne es zu merken),
von daher muss man gar nichts einbauen.

Hoffentlich funktioniert n Erhöhen nicht nur, sondern führt auch zum gewünschten mathematischen
Ergebnis. Ich bin vielleicht dumm, aber mir ist bis jetzt nicht 100%ig klar, was für ein Polynom mit
welchen Eigenschaften überhaupt ermittelt werden soll.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 21, 2009 09:02 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 30, 2007 18:35
Beiträge: 331
Wenn dein Prof dir diesen Code gibt ist es kein Wunder, dass niemand was kann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 21, 2009 09:10 
Offline
DGL Member

Registriert: Mi Jul 15, 2009 18:29
Beiträge: 52
guten morgen,
hatte gestern meinem prof mal gefragt ob es richtig wäre die 2 in eine andere zahl zu
verändern, da schrieb er zurück:

Nein, der Grad solltevorwählbar sein, sagen wir maximal 25.

dadrunter kann ich nix anfangen?
dann müsste ich ja eine abfrage machen wo ich bis 25 eingeben könnte oder liege ich falsch`?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 126 Beiträge ]  Gehe zu Seite Vorherige  1 ... 3, 4, 5, 6, 7, 8, 9  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]