Fragen zur Formatierung
-
Hallo zusammen,
ich habe ein kleineres Formatierungsproblem. Das Programm macht eigentlich was es sollte. Die Funktionen für die Berechnung der Werte können natürlich auch direkt von der cmath lib genommen werden. Aber ich benötige diese um diese später evt. noch zu erweitern.
Die auszugebene Tabelle sollte untereinander stehen, aber irgendwie funktioniert dies nicht.
Zu einem für die Überschriften und zum anderen werden die Werte nicht auf die Stellen gekürzt.Hat jemand eine Idee wie ich das besser hinbekommen kann, bzw. zum Laufen bekomme?
#include <iostream> #include <iomanip> #include <cmath> using namespace std; double sinus (double x); //Funktions Prototype double cosinus (double x); //Funktions Prototype double hoch (double x); //Funktions Prototype double durchlauf (double x, double y, double z, int a); //Funktions Prototype int main () { int sigziffern; double schritte, startwert, endwert; cout << "Bitte Startwert fuer x eingeben: "; cin >> startwert; cout << "\n\n"; cout << "Bitte Endwert fuer x eingeben: "; cin >> endwert; cout << "\n\n"; cout << "Bitte Schrittweite fuer x eingeben: "; cin >> schritte; cout << "\n\n"; cout << "Wieviele signifikante Ziffern sollen angezeigt werden: "; cin >> sigziffern; cout << "\n\n"; cout <<setw(sigziffern) << "x" <<"| sin(x)" << setw(sigziffern) << "| cos(x)" << setw(sigziffern) << "| x^2" << setw(sigziffern) << "\n"; durchlauf (startwert, endwert, schritte, sigziffern); return 0; } double durchlauf (double x, double y, double z, int a) { // while Schleife fuer den Durchlauf der einzelnen Felder while (x<y || x==y) { cout << left << showpos << scientific << setprecision(a) << x << "|" << left << showpos << scientific << setprecision(a) << sinus(x) << "|" << left << showpos << scientific << setprecision(a) << cosinus(x) << "|" << left << showpos << scientific << setprecision(a) << hoch(x) << "|" << "\n"; x = x+z; } } double sinus (double x) { //Funktion für Sinus Berechnung return sin(x); } double cosinus (double x) { //Funktion für Cosinus Berechnung return cos(x); } double hoch (double x) { //Funktion für Hoch Berechnung return x*x; }
-
...
-
Da wir nicht genau wissen können, wie das scientific-Format aussieht (z.B. Anzahl der Ziffern des Exponenten), fällt mir als Notnagel nur so etwas ein:
unsigned length; { stringstream s; s << left << showpos << scientific << setprecision(sigziffern) << 1.0; length = s.str().size(); } // length in setw benutzenOder, da setw nicht gut zum Zentrieren ist und mir das aber besser gefällt, basteln wir uns auch noch etwas dafür:
http://ideone.com/IvQKXZEigentlich würde ich aber einfach Tabs nehmen.