Einfache C++ Übung !
-
Hi,
ich habe folgende Aufgabe,
weiss jedoch nicht wie vorzugehen ist, bzw. was zu machen ist !http://img339.imageshack.us/img339/8241/ohnetitel1yb6.jpg
DANKE im Voraus für jede Hilfe !
MFG
-
Hallo,
Wie sehen denn deine bisherigen Versuche/Überlegungen zu diesem Problem aus?

Gruß, Caipi
-
Das Programm soll so aussehen, dass da Steht:
Geben zie eine zahl ein: 12 der Kreis hat ein Radius von 12, einen Umfang von 2*pi*12, und einen Flächeninhalt von pi*pi*12 ...nur dass die Werte ausgerechnet sind. Wenn du das nicht schaffst solltest du dir überlegen, ob du nicht vieleicht das Falsche Fach an der Uni belegt hast, noch ist es möglich zu wechseln (oder nicht?).
-
Mal zum 1. Teil...^^
#include <iostream> #include <cmath> // Für Berechnung #define PI 3.1415926535897932 // Makro für PI using namespace std; int main(){ float r; float d; float u; float a; cout<<"*************************************"<<endl; cout<<"Geben Sie den Radius des Kreises ein:"<<endl; cout<<"*************************************"<<endl; cin>>r; // Eingabe von r cout<<endl; d = 2*r; // Berechnung von Durchmesser u = d*PI; // Berechnung von Umfang a = 2*PI*r; // Berechnung von der Fläche cout<<"Der Umfang beträgt: "<<u<<endl; // Ausgabe Umfang cout<<"Der Flaecheninhalt des Kreises beträgt: "<<a<<endl; // Ausgabe Fläche cout<<endl; system("PAUSE"); // evt. wegen Konsole... return 0; }Vielleicht so?
-
daLord schrieb:
Mal zum 1. Teil...^^
#include <cmath> // Für BerechnungWenn du die Funktionen nicht nutzt, brauchst du sie auch nicht einbinden
daLord schrieb:
Mal zum 1. Teil...^^
#define PI 3.1415926535897932 // Makro für PIDas ist kein Makro
-
wird aber genauso stur ersetzt!
-
daLord schrieb:
d = 2*r; // Berechnung von Durchmesser u = d*PI; // Berechnung von Umfang a = 2*PI*r; // Berechnung von der Flächetut mir ja Leid, aber das ist dämlich...
hast du dir das mal angeguckt?wenn d == 2 * r, dann bedeutet u = d * PI das selbe wie u = 2 * PI * r.
das wiederum bedeutet, dass u == a!also für u kannst du gleich u = 2 * PI * r schreiben, dann sparst du das d.
und a ist nicht 2 * PI * r, sonder a = PI * PI * r!programmieren is eben nicht alles xD, Mathe muss auch gelernt sein.
ansonsten is der Code ganz ok.
MfG DrakoXP
-
a = PI * PI * r!
a = PI * r²
programmieren is eben nicht alles xD, Mathe muss auch gelernt sein.
-
Zut mir leid, kann man sich auch mal verschreiben? -.- so ne ² übersieht man schnell...
/* * Dann halt so... */ #include <iostream> #define PI 3.1415926535897932 // ...kein Makro using namespace std; int main(){ float r; float d; float u; float a; cout<<"*************************************"<<endl; cout<<"Geben Sie den Radius des Kreises ein:"<<endl; cout<<"*************************************"<<endl; cin>>r; // Eingabe von r cout<<endl; d = 2*r; // Berechnung von Durchmesser u = d*PI; // Berechnung von Umfang a = PI*(r*r); // Berechnung von der Fläche cout<<"Der Umfang beträgt: "<<u<<endl; // Ausgabe Umfang cout<<"Der Flaecheninhalt des Kreises beträgt: "<<a<<endl; // Ausgabe Fläche cout<<endl; system("PAUSE"); // evt. wegen Konsole... return 0; }
-
daLord schrieb:
#define PI 3.1415926535897932 // ...kein Makropfff...
-
Bin grad am grübeln wie eine "Objektorientierte Version" aussehen würde. Ist gar nicht so einfach finde ich:
#include <iostream> using namespace std; class Shape { public: Shape(double save_=0):m_save(save_),PI(3.1415926535){} virtual ~Shape(){} void input(); virtual double perimeter() const = 0; virtual double area() const = 0; inline double get_save() const {return m_save;} protected: double m_save; const double PI; }; void Shape::input() { cout << ">>"; while(!(cin >> m_save)) { cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); cout << "ERROR <misentry>\n"; cout << ">>"; } } class Circle : public Shape { public: Circle(double i_save=0):Shape(i_save){} ~Circle(){} inline double perimeter() const {return m_save*2*PI;} //Umfang inline double area() const {return m_save*m_save*2;} //Fläche private: }; class Square : public Shape { public: Square(double i_save=0):Shape(i_save){} ~Square(){} inline double perimeter() const {return 4*m_save;} //Umfang inline double area() const {return m_save*m_save;} //Fläche private: }; int main() { Shape *Part1=new Circle; Part1->input(); cout << "Kreisumfang: " << Part1->perimeter() << "\n"; cout << "Kreisfl" << "\x84" << "che: " << Part1->area() << "\n"; Shape *Part2=new Square(Part1->get_save()); delete Part1; Part1=NULL; cout << "Kantenl" << "\x84" << "nge: " << Part2->perimeter() << "\n"; cout << "Quadratsfl" << "\x84" << "che: " << Part2->area() << "\n"; delete Part2; Part2=NULL; return 0; }Der Code ist hier natürlich sehr lange, und anderst ist es viel einfacher, aber nur mal so aus reinem Interesse. Vll. ist mein Code ja auch irgendwie unötig zu lange? Aber ich hab halt versucht, so wie ichs in meinem Buch gelernt habe alles schön sauber in Klassen reinzuhaun.....
Passt das so...?
Kann man das jetzt objektorientiert nennen? Gehts noch "objektorientierter"? Was wären eure Vorschläge?MfG
Stromberg