Approximation
-
Fellhuhn schrieb:
Eigentlich ist es egal was du machst, solange du an dem selben Punkt anfängst die Arrays zu beschreiben, wie du sie auch bearbeitest. Nur da du bei 2 anfängst und bis 1000 gehst, beschränkst du dich auf 998 Punkte.
Kannst natürlich auch bei 2 anfangen und die Abfrage auf < 1002 ändern. Dann hast wieder 1.000 Elemente.
hmm achso weil er hat uns ein tipp gegeben da hat er gemeint die ersten 2 in der Summe muss man erst
Sx=x[0]+x[1];
rechnen dann fängt die schleife ab 2 an weiß aber nit warumwenn ich dann die Felder eingebe. Schreib ich dann erst alle x und dann alle y hin oder ist des abwechseln immer ein x mit passendem y?
-
Vermutlich weil die da sein müssen. Klingt natürlich für einen "Nicht-Programmierer" logisch die fixen Parameter so zu berechnen und den Rest über eine dynamische Schleife laufen zu lassen.

-
Fellhuhn schrieb:
Vermutlich weil die da sein müssen. Klingt natürlich für einen "Nicht-Programmierer" logisch die fixen Parameter so zu berechnen und den Rest über eine dynamische Schleife laufen zu lassen.

Häää was meinst du jetzt? Muss ich doch noch was ausbessern? Sxx=x[0]*x[1];Sx=x[0]+x[1],....???
Sx=x[0]+x[1]; Sy=y[0]+y[1]; Sxy=x[0]*y[0]+x[1]*y[1]; Sxx=x[0]*x[0]+x[1]+x[1]; for(int i=2;i<n;++i) { Sx+=x[i]; Sy+=y[i]; Sxy+=y[i]*x[i]; Sxx+=x[i]*x[i]; }danke
-
wog schrieb:
wenn ich dann die Felder eingebe. Schreib ich dann erst alle x und dann alle y hin oder ist des abwechseln immer ein x mit passendem y?
Das ist dir überlassen - du mußt nur die Eingabe entsprechend regeln (momentan liest du abwechselnd einen x-Wert und den zugeöhrigen y-Wert ein)
-
Wenn Sx etc das sein soll, was ich auf der letzten Seite geschrieben habe, ist es richtig so wie es momentan ist. Ich kann nur den Programmierkram kontrollieren, nicht die Mathematik dahinter. Dafür ist es zu spät.

-
Fellhuhn schrieb:
Wenn Sx etc das sein soll, was ich auf der letzten Seite geschrieben habe, ist es richtig so wie es momentan ist. Ich kann nur den Programmierkram kontrollieren, nicht die Mathematik dahinter. Dafür ist es zu spät.

das sollte stimmen unterhttp://wog-sen.de/a_5.JPG
habe ich ja mal die aufgabe geuppt.
mein programm sieht so aus: Es läuft ja aber wenn ich die werte eingebe der er uns gegeben hat dann kommt was anderers raus wie seine ausgabe
#include <iostream> #include <cmath> using namespace std; void main (void) { double A,B,n,s,i; cout<<"Anzahl der Messpunkte eingeben:"<<endl; cin>>n; if(n<2) { cout<<"Der Wert muss groesser/gleich 2 sein!! Bitte erneut eingeben!!"<<endl; cin>>n; } cout<<"Bitte die Messpunkte eingeben - Immer abwechselnd ein X und ein Y"<<endl; double Sx=0,Sy=0,Sxy=0,Sxx=0,x[1000],y[1000]; for(int i=0;i<n;++i) cin>>x[i]>>y[i]; Sx=x[0]+x[1]; Sy=y[0]+y[1]; Sxy=x[0]*y[0]+x[1]*y[1]; Sxx=x[0]*x[0]+x[1]+x[1]; for(int i=2;i<n;++i) { Sx+=x[i]; Sy+=y[i]; Sxy+=y[i]*x[i]; Sxx+=x[i]*x[i]; } A=((Sxx*Sy)-(Sx*Sxy))/(n*Sxx-(Sx*Sx)); B=(n*Sxy-(Sx*Sy))/(n*Sxx-(Sx*Sx)); if (n*Sxx-(Sx*Sx)==0 ||(n*Sxx-(Sx*Sx))==0 ) { cout << " Mathematischer Widerspruch bei der Berechnung von b!!! Bitte schließen Sie das Fenster" <<endl; } cout<<"y="<<A<<"+"<<B<<"*"<<"x"<<endl; }
-
Ok danke es geht jetzt ich habe wieder das:
Sx=x[0]+x[1];
Sy=y[0]+y[1];
Sxy=x[0]*y[0]+x[1]*y[1];
Sxx=x[0]*x[0]+x[1]+x[1];entfernt und es geht. Naja hauptsach unser Prof hat uns des als Tip gegeben:) Schlechter Tip..

DANKE
Ich schaue die Tage noch mal vorbei habe noch eine schöne Aufgabe im Gepäck, da werde ich sicher eure Hilfe brauchen:)
lg und frohe Weihnachten falls man sich nicht mehr schreibt
WOG
-
CStoll schrieb:
Ein ganzes Array auf einmal aufsummieren beherrscht C++ leider nicht
Wasn mit std::accumulate

-
unabhängig von der aufgabe:
wog schrieb:
void main (void)main *muss* int zurückgeben, alles andere ist falsch.
und: das (void) als argumentliste ist zwar nicht direkt falsch, aber in c++ nicht notwendig und auch nicht üblich.int main()
-
der mob schrieb:
unabhängig von der aufgabe:
wog schrieb:
void main (void)main *muss* int zurückgeben, alles andere ist falsch.
und: das (void) als argumentliste ist zwar nicht direkt falsch, aber in c++ nicht notwendig und auch nicht üblich.int main()Unser Prof hat uns das oben nocht nicht erklärt er meint wir sollen das einfach immer so übernehmen:) Das kommt im 2.Semester in Infomatik2(ich studiere allgemeine Maschinenbau)
lg
wog
-
KasF schrieb:
CStoll schrieb:
Ein ganzes Array auf einmal aufsummieren beherrscht C++ leider nicht
Wasn mit std::accumulate

Wenn's vom Prof erlaubt ist (da schlage ich schon ständig vor, die STL konsequent zu verwenden, und dann unterschlage ich die beste Lösung - std::accumulate() und std::inner_product()
:xmas2: )