Zurück   3DCenter Forum > Software-Hilfe Foren > Programmierung
Registrieren Hilfe Community Kalender Heutige Beiträge Suchen Uns unterstützen

Antwort
 
Themen-Optionen Ansicht
Alt 2012-12-14, 14:42:28   #1 (im Thread / einzeln)
Colin MacLaren
Master Member
 
Benutzerbild von Colin MacLaren
 
Registriert: 2003-08-27
Ort: Chemnitz
Beiträge: 8.241
Colin MacLaren eine Nachricht über ICQ schicken
Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Hi,

ich habe gerade meinen ersten Beleg, der direkt in die Note eingeht, zu Ende gebracht und wollte vor der Abgabe mal die Profis drüberschauen lassen, ob mir nicht irgendetwas Dummes passiert ist, dann ist die Prüfungszulassung direkt futsch. Im ersten Semester ist die Effizienz bezüglich Ausführungsgeschwindigkeit und Speicherverbrauch egal.

Aufgabenstellung war die händische Berechnung einer Cotangens-Funktion in C++, wobei nur die Grundrechenoperatoren sowie Bedingungen und Schleifen verwendet werden dürfen.

Detailliert findet ihr die Aufgabenstellung hier: http://www.tu-chemnitz.de/informatik...e/beleg112.php

Danke.

Code:
#include <iostream>
#include <cmath>
using namespace std;
//Anzahl der Summanden der Laurent-Entwicklung
#define SUMMANDEN 12
// Anzahl der dafür benötigten Bernoulli-Zahlen (= 2 * SUMMANDEN + 1)
#define INDIZESBN 25
// Größe von Epsilon
#define EPSILON 1e-8

double betrag(double x)
{
	if (x < 0)
		x = 0 - x;
	return x;
}

double binominalkoeffizient(double n, int k)
{
	double zaehler = n, nenner = 1;
	int binozaehler;
	if (k == 0 || n == k)
		return 1;
	if (k < 0)
	{
		cout << "k kleiner 0!\n\n";
		return 0;
	}
	//Nenner berechnen 
	for (binozaehler = 1; binozaehler <= k; binozaehler++)
		nenner *= binozaehler;
	//k Stellen im Zähler heruntergehen
	for (binozaehler--; binozaehler > 1; binozaehler--)
		zaehler *= --n;
	return zaehler/nenner ;
}


double summand (double x, int zaehlersummand)
{
	int i,n,k;
	// Da eine Division durch ganzahliges N nur 0 ausgibt, benötigen wir eine zusätzliche Variable ndezpluseins.
	double zwischenerg = 1.0, summe, ndezpluseins;
	// Definition des Feldes, mit Index 0 = 1 wie auf Wikipedia
	double Bn[INDIZESBN] = {1};
	// Berechnung der Bernoulli-Zahlen Bn[n].
	for (n=1; n <= INDIZESBN - 1; n++)
	{
		summe = 0;
		for (k = 0; k <= n-1; k++)
			summe += binominalkoeffizient(n+1, k) * Bn[k];
		ndezpluseins = n + 1;
		summe *= (-1/ndezpluseins);
		Bn[n] = summe;
	}
	// Berechnung des Summanden laut Summenformel der Laurent-Entwicklug in der Aufgabenstellung.
	for (i = 1; i <= 2*zaehlersummand; i++)
		zwischenerg *= 2;
	zwischenerg *= betrag(Bn[2*zaehlersummand]);
	for (i = 1; i <= 2*zaehlersummand; i++)
		zwischenerg /= i;
	for (i = 1; i <= 2*zaehlersummand-1; i++)
		zwischenerg *= x;
	return zwischenerg;
}


double cotangens(double x)
{
	double wert = 1/x;
	int n;
		for (n = 1; n <= SUMMANDEN && summand (x,n) > EPSILON; n++)
		wert -= summand (x,n);
	return wert;
}

int main()
{
	double x;
	const double Pi = 3.14159265;
	cout << "Geben Sie eine Zahl, deren Betrag im Intervall (0, Pi) liegt, an: ";
	cin >> x;
	cout << "\n";
	if (betrag(x) <= 0 || betrag(x) >= Pi)
	{
		cout << "Die von Ihnen eigegebene Zahl entspricht nicht dem Wertebereich.\n";
		return 0;
	}
	cout << "Das Programm hat folgenden Wert ermittelt: " << cotangens(betrag(x)) << "\n";
	cout << "Die Standardbibliothek <cmath> ermittelt:  " << 1 / tan(x) << "\n\n";
	cout << "Die Differenz betraegt: " << betrag(1.0 / tan(x) - cotangens(betrag(x))) << "\n\n";
	if (x < 0)
		cout <<"\nHinweis:\n--------\n1/tan(x) mittels <cmath> liefert fuer negative x das falsche Vorzeichen,\nda die Cotangensfunktion im Intervall (-Pi,Pi) gerade ist.\n\n";
	return 0;
}


PC: Ryzen 9800X3D, Gigabyte X870 Gaming X Wifi 7, 32GB Corsair DDR5 6000MHz CL30, Gigabyte 7900XTX Gaming OC, Corsair RM850 850W, Fractal Design North, Sound Blaster AE-9, 2x1TB WD Sn550@Raid0, 2TB Kingston NV2
Konsole: Lenovo Legion Go 2 TB, Nintendo Switch 2017

Geändert von Colin MacLaren (2012-12-14 um 15:23:16 Uhr)
Colin MacLaren ist offline Computer-Informationen von Colin MacLaren anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-14, 14:48:30   #2 (im Thread / einzeln)
Exxtreme
Moderator & 3D-Guru
 
Benutzerbild von Exxtreme
 
Registriert: 2001-08-19
Ort: Baden-Württemberg
Beiträge: 47.438
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Bei der main-Funktion fehlt die abschliessende Klammer.

"Der Akt, durch den ein Individuum seiner Güter beraubt wird, heisst Raub, wenn ihn ein anderes Individuum begeht. Und soziale Gerechtigkeit, wenn eine ganze Gruppe plündert" - Nicolas Gomez Davila
"Die perfekte Gleichheit liegt nur im Tod. Deshalb ist der Genozid die Lieblingsbeschäftigung der Gleichmacher." - Roland Baader
"Es ist egal, ob die Wissenschaft der globalen Erwärmung komplett an den Haaren herbeigezogen ist, gibt uns der Klimawandel doch die größte Möglichkeit Gerechtigkeit und Gleichheit in die Welt zu tragen." Christine Stewart
"Nimm das Recht weg – was ist dann ein Staat noch anderes als eine große Räuberbande" - Heiliger Augustinus
"Socialists cry "Power to the people", and raise the clenched fist as they say it. We all know what they really mean—power over people, power to the State." - Margaret Thatcher
Ich ziehe es vor, meine Kenntnisse aus den autorisierten Informationen unserer Regierung zu beziehen. - Klima"wissenschaft" in Action
Exxtreme ist offline Computer-Informationen von Exxtreme anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-14, 15:10:15   #3 (im Thread / einzeln)
TheGamer
Admiral Member
 
Registriert: 2002-12-28
Beiträge: 3.926
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Zitat von Exxtreme Beitrag anzeigen
Bei der main-Funktion fehlt die abschliessende Klammer.
Steht da, nur nicht im CODE Block.
TheGamer ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-14, 21:22:10   #4 (im Thread / einzeln)
Simon
Avantgarde Member
 
Benutzerbild von Simon
 
Registriert: 2001-04-11
Beiträge: 4.324
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Keine defines, koennen die meisten Debugger nicht aufloesen und zeigen nur die nackten Werte an. Beschissen zum Debuggen weil es meist uebertrieben wird, also am besten gar nicht erst angewoehnen.

Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!

Linux ist nicht Windows - Alle Umsteiger und mit Windows-Unzufriedenen sollten das lesen!
Simon ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-14, 23:01:43   #5 (im Thread / einzeln)
Colin MacLaren
Master Member
Threadstarter
 
Benutzerbild von Colin MacLaren
 
Registriert: 2003-08-27
Ort: Chemnitz
Beiträge: 8.241
Colin MacLaren eine Nachricht über ICQ schicken
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Das lehrt der Dozent so Der findet das total toll.


PC: Ryzen 9800X3D, Gigabyte X870 Gaming X Wifi 7, 32GB Corsair DDR5 6000MHz CL30, Gigabyte 7900XTX Gaming OC, Corsair RM850 850W, Fractal Design North, Sound Blaster AE-9, 2x1TB WD Sn550@Raid0, 2TB Kingston NV2
Konsole: Lenovo Legion Go 2 TB, Nintendo Switch 2017
Colin MacLaren ist offline Computer-Informationen von Colin MacLaren anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-14, 23:51:24   #6 (im Thread / einzeln)
PHuV
Insane Member
 
Benutzerbild von PHuV
 
Registriert: 2005-01-23
Ort: Berlin
Beiträge: 22.232
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Die meisten Dozenten haben aber noch nie praktisch in SW-Projekten gearbeitet.

vBulletin Total Ignore:Badesalz, #44 , Razor, Pest, Mosher, GSXR-1000, Filp, und viele andere.
PHuV ist gerade online   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 00:16:58   #7 (im Thread / einzeln)
del_4901
Gast
 
Beiträge: n/a
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Wir hatten gestern erst nen Bewerber, der das auch so gemacht hat, wir haben Ihm dann einstimmig davon abgeraten.
  Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 00:21:20   #8 (im Thread / einzeln)
samm
Admiral Member
 
Registriert: 2008-08-03
Beiträge: 3.224
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Zitat von PHuV Beitrag anzeigen
Die meisten Dozenten haben aber noch nie praktisch in SW-Projekten gearbeitet.
Vorurteil, das ich nicht bestätigen kann. Genau zwei meiner Informatik-Dozenten waren Theoretiker oder Uni-exklusive Softwarebastler, alle andern waren aktive Programmierer.

Colin McLaren:
Hab jetzt nicht nachgerechnet, ob alles richtig berechnet wird, aber einige Hinweise:

- stilistisch finde ich neben den schon kritisierten #define (die du ruhig lassen kannst, wenn der Prof das explizit so will) Deklaration/Initialisierung in Listenform nicht gerade übersichtlich, vgl.
Code:
double zwischenerg = 1.0, summe, ndezpluseins;
- Für die Funktion "betrag()" gäbe es in cmath auch "abs()".

- Für eine Funktion "int main()" wird konventionellerweise im Fehlerfall einen Wert ungleich 0 zurückgegeben, z.B. hier einfach 1. 0 steht üblicherweise nur für erfolgreichen Abschluss.

- Die Überprüfung "k < 0" in der Funktion "binominalkoeffizient" ist im Grunde unnötig, da es in deinem Fall soweit ich gesehen habe immer >=0 ist. Schaden wird's trotzdem nicht, falls irgendwas unerwartet schief geht (Überlauf oder so), oder die Funktion wiederverwendet werden soll.

Wider kontraproduktiver Angstpropaganda

BIAS-o-Meter: [AMD]+---|----[nVidia] . . . . [AMD]-+--|----[Intel]

Geändert von samm (2012-12-15 um 00:22:36 Uhr)
samm ist offline Computer-Informationen von samm anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 00:28:56   #9 (im Thread / einzeln)
nalye
Administrator
 
Benutzerbild von nalye
 
Registriert: 2006-02-27
Ort: Wo ist Hof?
Beiträge: 7.041
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Geht aber mit negativen Werten über Umwege

Code:
nalye@raspberrypi ~ $ ./a.out 
Geben Sie eine Zahl, deren Betrag im Intervall (0, Pi) liegt, an: 1/(2-4)

Das Programm hat folgenden Wert ermittelt: 0.642093
Die Standardbibliothek <cmath> ermittelt:  0.642093

Die Differenz betraegt: 2.50455e-09
Ich weiß, kein Fehler per se, aber sowas sollte man eventuell noch abfangen?

Zitat von Karümel Beitrag anzeigen
Saarland ist doch nicht Frankreich, das ist genauso ein Unterschied wie zwischen Mensch und Ossi
Zitat von Acid-Beatz Beitrag anzeigen
Fick nicht mit dem Ficker, vor allem wenn er nalye heißt
Zitat von bardh Beitrag anzeigen
Wenn man sich die 2. Weltkriegsstrategien anschaut, passierte in Moskau was änhliches wie jetzt. Der Gegner kam zwar in Moskau selber relativ leicht rein, aber nicht mehr raus.
Zitat von Lyka Beitrag anzeigen
als Mann habe ich die Fähigkeit, eine Menge Sachen zu tun, ohne zu denken
Zitat von M4xw0lf Beitrag anzeigen
Du bist zum Kotzen, Faschobarbie.
Zitat von pixeljetstream Beitrag anzeigen
Mit Troyan diskutieren ist praktisch sinnfrei.
Zitat von drexsack Beitrag anzeigen
Hipster wollen ja auch nicht Hipster genannt werden, wenn sie auf ihrem Fixie mit Leggings, AirMax, RayBan und Vollbart bei Starbucks vorfahren, um auf der Schreibmaschinen-App ihres iPads bei einem kalorienreduzierten gluten- und koffeinfreien Soja Latte Frappuccino ihren deepen Roman über die emotionalen Auswirkungen der midlife-Crisis einer homosexuellen Kegelrobbe vor Helgoland zu vollenden.
Zitat von Cyphermaster Beitrag anzeigen
Befindet sich Lyka näher als 100m an Christian Lindner oder Plutos, können sie das Wort "Investition" nicht mehr aussprechen
Zitat von Zero-11 Beitrag anzeigen
jetzt hab ich euch Fotzen alle geblockt
Zitat von Mosher Beitrag anzeigen
Du scheinst [...] zu denken, ich hätte generell was gegen Erwerbslose. Damit liegst du falsch, ich hab nur was gegen dich.
Zitat von Jupiter Beitrag anzeigen
Ach ja, bei großen Treffen versammelten sich immer viele Staatsoberhäupter um Trump, weil er ein Alphatyp ist.
Zitat von Plutos Beitrag anzeigen
Ne, der ist aus Plutoshassingen bei Bannstadt an der Karte (liegt in der ehemaligen nalyetischen Bekatzungszone).
Zitat von derpinguin Beitrag anzeigen
Alter, ich lösch gleich meinen Account. Mit Feuer.
Zitat von dreas Beitrag anzeigen
was meint den der westliche herrendeutsche wie der gemeine ostdeutsche so zu sein hat?
Zitat von Sven77 Beitrag anzeigen
auf der anderen seite der mauer
Zitat von MegaManX4 Beitrag anzeigen
Übrigens, jemand der mich der Lüge bezichtigt, wird in der Regel vor die Tür gebeten.
Zitat von Baalzamon Beitrag anzeigen
KAFFEE! Für ein langes und glückliches Leben!
Zitat von Nettozahler Beitrag anzeigen
Sie will Kopfhörer, ich frage welche, sie sagt bunt sollen sie sein, ich beende das Gespräch.
Zitat von demklon Beitrag anzeigen
Schule war niemals meins
Zitat von jay.gee Beitrag anzeigen
Genau genommen ist man mit 13 Jahren noch ein Kind.
Zitat von MarcWessels Beitrag anzeigen
Nur juristisch.
Zitat von Sewing Beitrag anzeigen
versteh ich nicht
Zitat von Showers Beitrag anzeigen
Ich weiß wo du wohnst und kann dir vor die Tür kacken, bei dir klingeln, die Scheiße vergewaltigen, laut deinen Namen schreien und in dein verwundertes Gesicht spritzen. Die Art von Krieg kannst du nicht gewinnen!
Zitat von vinacis_vivids Beitrag anzeigen
Ich schätze mal, dass die Videokonferenz die Karte überfordert hat mit den vielen parallelen Zugriffen zur gleichen Zeit.
[...]
Mein Tipp: Bau die aus und lass die Karte für ein paar Wochen in Ruhe, damit sie sich erholen kann.
Zitat von Radeonfreak Beitrag anzeigen
Plutos ist auf jeden Fall 7777 mal gegen ihn.
nalye ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 02:02:07   #10 (im Thread / einzeln)
PHuV
Insane Member
 
Benutzerbild von PHuV
 
Registriert: 2005-01-23
Ort: Berlin
Beiträge: 22.232
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Zitat von samm Beitrag anzeigen
Vorurteil, das ich nicht bestätigen kann. Genau zwei meiner Informatik-Dozenten waren Theoretiker oder Uni-exklusive Softwarebastler, alle andern waren aktive Programmierer.
Wo? Es ist sicher nicht überall gleich, aber das was ich so an den Unis bisher kennen gelernt habe.... Theoretiker.

vBulletin Total Ignore:Badesalz, #44 , Razor, Pest, Mosher, GSXR-1000, Filp, und viele andere.
PHuV ist gerade online   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 11:37:24   #11 (im Thread / einzeln)
pest
Grandmaster Member
 
Benutzerbild von pest
 
Registriert: 2007-06-07
Beiträge: 10.891
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

schön isses nicht, und da lassen sich einige berechnungen einsparen

bei sowas kringeln sich mir die zehennägel
Code:
for (binozaehler--; binozaehler > 1; binozaehler--)
		zaehler *= --n;
den binomialkoeff. berechnet man besser rekursiv
Code:
int binom (int a, int b)
{ 
    int tempA, tempB; 
    if (( b == 0 ) || (a == b)){ 
        return 1; 
    } 
    /* rekursion */
    else
    { 
        tempA = binom (a - 1, b);
        tempB = binom (a - 1, b - 1);
        return tempA + tempB; 
    } 
}

pure Vernunft darf niemals siegen - Frappo v0.03c - Frametimeanalyse - OriginID: "Lopumbo"

Geändert von pest (2012-12-15 um 11:42:51 Uhr)
pest ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 14:05:03   #12 (im Thread / einzeln)
Berni
Admiral Member
 
Benutzerbild von Berni
 
Registriert: 2002-07-29
Beiträge: 2.152
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Man kann auch noch Berechnungen sparen indem man die Ergebnisse in der main-Funktion in Variablen zwischenspeichert anstatt bei beiden Ausgaben neu zu berechnen.
Edit: Und PI könnte man aus der math.h (M_PI) nehmen anstatt ihn (ungenau) selbst zu definieren.

Geändert von Berni (2012-12-15 um 14:08:30 Uhr)
Berni ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 15:40:58   #13 (im Thread / einzeln)
del_4901
Gast
 
Beiträge: n/a
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Zitat von pest Beitrag anzeigen
schön isses nicht, und da lassen sich einige berechnungen einsparen

bei sowas kringeln sich mir die zehennägel
Ich find seine itterative Version besser. Der Loop kostet doch kaum was. In deiner rekursiven Variante wertest du dafuer staendig den Branch aus.
  Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 16:13:07   #14 (im Thread / einzeln)
Colin MacLaren
Master Member
Threadstarter
 
Benutzerbild von Colin MacLaren
 
Registriert: 2003-08-27
Ort: Chemnitz
Beiträge: 8.241
Colin MacLaren eine Nachricht über ICQ schicken
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Danke für die Tipps. Rekursion wird erst im neuen Jahr gelehrt Die Math-Funktion dürfen wir nur für den Vergleich am Ende heranziehen, damit wir algorithmisches Denken lernen.


PC: Ryzen 9800X3D, Gigabyte X870 Gaming X Wifi 7, 32GB Corsair DDR5 6000MHz CL30, Gigabyte 7900XTX Gaming OC, Corsair RM850 850W, Fractal Design North, Sound Blaster AE-9, 2x1TB WD Sn550@Raid0, 2TB Kingston NV2
Konsole: Lenovo Legion Go 2 TB, Nintendo Switch 2017
Colin MacLaren ist offline Computer-Informationen von Colin MacLaren anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 17:07:42   #15 (im Thread / einzeln)
Demirug
3DCenter Crew & 3D-Guru
 
Benutzerbild von Demirug
 
Registriert: 2002-05-14
Beiträge: 22.430
Demirug eine Nachricht über MSN schicken
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Bist du sicher das deine Abbruchbedingung richtig ist?

In der Aufgabe steht "Die Berechnung soll abbrechen, wenn die Differenz zweier aufeinanderfolger Glieder z i und z i+1 kleiner als ein zu definierender Abbruchwert epsilon wird."

In deinem Code sehe ich aber nur ein "summand (x,n) > EPSILON". Das wäre dann eigentlich "Die Berechnung soll abbrechen, wenn ein Glied z i kleiner oder gleich einem zu definierender Abbruchwert epsilon wird."

Ansonsten weiß ich ja nicht auf was da bei euch Wert gelegt wird. Bei ein paar Sachen gäbe es bei einem Codereview von mir haue.

Demirug ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 18:17:36   #16 (im Thread / einzeln)
pest
Grandmaster Member
 
Benutzerbild von pest
 
Registriert: 2007-06-07
Beiträge: 10.891
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Zitat von AlphaTier Beitrag anzeigen
wertest du dafuer staendig den Branch aus.
och, ich glaube das Berechnen aller Bernoullizahlen, für jeden Summanden erneut, kostet mehr

pure Vernunft darf niemals siegen - Frappo v0.03c - Frametimeanalyse - OriginID: "Lopumbo"

Geändert von pest (2012-12-15 um 19:47:39 Uhr)
pest ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 19:35:31   #17 (im Thread / einzeln)
pest
Grandmaster Member
 
Benutzerbild von pest
 
Registriert: 2007-06-07
Beiträge: 10.891
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

ich hätte mir bei der aufgabenstellung auch nicht soviel aufwand gemacht (wozu sonst steht die tabelle da)

Code:
double zi(double x,int n)
{
  double Bn[12]={1./6,1./30,1./42,1./30,5./66,691./2730,7./6,3617./510,43867./798,174611./330,854513./138,236364091./2730};
  double coeff=2.0;
  for (int t=2;t<=2*n;++t) coeff*=(2.0*x)/double(t);
  return coeff*Bn[n-1];
}

double Cot(double x,double eps)
{
  double erg=1.0/x;
  double z=zi(x,1);
  double s=z;
  for (int n=2;n<=12;++n) {
    double t=zi(x,n);
    if (fabs(z-t)<eps) break;
    z=t;s+=t;
  };
  return erg-s;
}

pure Vernunft darf niemals siegen - Frappo v0.03c - Frametimeanalyse - OriginID: "Lopumbo"

Geändert von pest (2012-12-15 um 20:29:39 Uhr)
pest ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 20:19:18   #18 (im Thread / einzeln)
Watson007
Master Member
 
Registriert: 2004-09-21
Beiträge: 9.504
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

ich rate dem Threadstarter sich Studentengruppen anzuschließen wenn er schon bei der ersten Aufgabe im Forum fragt. Soll ja nicht herablassend klingen.... aber der Schwierigkeitsgrad wird sich sicher noch deutlich steigern.

Ohne Studentengruppen kommt man eh nicht durchs Studium.

Aber ich glaube er hat mich eh auf Ignore gesetzt... hat ja noch nie auf meine Beiträge geantwortet

Ignoreliste: Vader, Hallo, Kamikaze, HDPaul, gnahr, Mosher, mercutio, Plutos, RMC.

Geändert von Watson007 (2012-12-15 um 20:24:14 Uhr)
Watson007 ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-15, 20:24:10   #19 (im Thread / einzeln)
del_4901
Gast
 
Beiträge: n/a
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Zitat von pest Beitrag anzeigen
och, ich glaube das Berechnen aller Bernoullizahlen, für jeden Summanden erneut, kostet mehr
Dafuer ne LuT zu nehmen ist wieder ne andere Optimierung. Mir ging es nur um die Berechnung der Binomialkoeffizienten.
  Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2012-12-16, 03:14:48   #20 (im Thread / einzeln)
PHuV
Insane Member
 
Benutzerbild von PHuV
 
Registriert: 2005-01-23
Ort: Berlin
Beiträge: 22.232
Re: Erstes C++-Programm im Studium, bitte um Check vor Abgabe.

Leute, laßt doch bitte mal die Kirche im Dorf, ja? Er ist ein Einsteiger und Anfänger, und Ihr bombadiert ihn schon mit so viel Zeugs!

Wichtig ist am Anfang, das der Code für den Lernenden selbst verständlich und nachvollziehbar ist, und erst mal seiner Intuition entspricht. Ob das am Anfang nun schöner und effizienter Code ist, ist doch nicht so wichtig.

Das andere kommt doch mit der Zeit und viel Programmierung und Erfahrung, oder? Habt Ihr Euch mal Euren Code von früher angeschaut. Ganz ehrlich, wem kommt da nicht das Grausen? Selbst in der Schaffensperiode fragt man sich schon teilweise nach einem halben Jahr, warum man das so komisch programmiert hat, und es fällt dann einem eine viel bessere Lösung/Code/Algorithmus ein. Ist doch auch klar, wenn mal etwas Abstand gewonnen wird, und man die Sache neutraler betrachten kann, da fällt immer wieder etwas auf.

Kommt, ist noch kein Coder vom Himmel gefallen, oder? Code-Effizienz ist nicht immer gut und angebracht, so meine langjährige Erfahrung. Wenn es nicht 100%ig auf Performance und Laufzeit ankommt, schreibe ich lieber einfach verständlichen Code. Das zahlt sich auf lang Sicht für die SW-Pflege besser aus!

vBulletin Total Ignore:Badesalz, #44 , Razor, Pest, Mosher, GSXR-1000, Filp, und viele andere.

Geändert von PHuV (2012-12-16 um 03:16:57 Uhr)
PHuV ist gerade online   Mit Zitat antworten Beitrag zum Zitieren auswählen
Antwort

Lesezeichen
  • Dieses Thema bei Twitter speichern
  • Dieses Thema bei Facebook speichern


Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03:58 Uhr.


Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.