000
07.12.2017, 19:02 Uhr
katilinchen
|
Guten Abend,
ich hab ein kleines Programmierproblem.
Zwar sollte das folgende Programm Seitenlängen und Diagonalen einlesen und dann selbstständig entscheiden habe ich ein Quadrat oder habe ich ein Rechteck und soll dann jeweil die Fläche und den Umfang berechen, oder wenn gar nichts davon vorliegt sollte es ausgeben das es weder rechteck noch quadrat ist. Momentan gibt es mir für das Quadrat beides aus also das es ein rechteck und ein quadrat ist. Wie könnte ich denn das am blödesten vermeiden oder abfangen, dass es mir dann nur das quadrat ausgibt und berechnet. momentan prüfe ich ob eben alle seiten gleich lang sind, nur leider beisst sich das etwas mit der abfrage ob beide seiten gleich lang sind.
ich freue mich über jede hilfe danke schonmal!
C++: |
#include <iostream> #include "rechteck.h"
using namespace std;
int main() {
float seite_a, seite_b, seite_c, seite_d, diag_e, diag_f; cout << "Bitte geben Sie nacheinander die Laengen der 4 Seiten und der 2 Diagonalen des Rechtecks an:\nSeite a: " ; cin >> seite_a; cout << "Seite b: "; cin >> seite_b; cout << "Seite c: "; cin >> seite_c; cout << "Seite d: "; cin >> seite_d; cout << "Diagonale e: "; cin >> diag_e; cout << "Diagonale f: "; cin >> diag_f; //cout << seite_a << seite_b << seite_c << seite_d << diag_e << diag_f; rechteck rechteck1 (seite_a, seite_b, seite_c, seite_d, diag_e, diag_f);
if (rechteck1.sindGegenueberliegendeSeitenGleichLang() == 0) { cout << "Kein Rechteck, da die gegenueberliegenden Seiten nicht gleich lang sind!Seitenlaengen: a = " << seite_a << " , b = " << seite_b << " , c = " << seite_c << " , d = " << seite_d << endl; } if (rechteck1.sindDiagonalenGleichLang() == 0) { cout << "Kein Rechteck, da die Diagonalen nicht gleich lang sind!" << "Diagonalen: e = " << diag_e << " , f = " << diag_f << endl; } if (rechteck1.liegteinQuadratvor() == 0) { cout << "Kein Quadrat da die seiten nicht gleich sind" << "a="<< seite_a << " , b= " << seite_b << "c="<< seite_c << " , d= " << seite_d <<endl;
} if ((rechteck1.sindGegenueberliegendeSeitenGleichLang() != 0)&(rechteck1.sindDiagonalenGleichLang() != 0)) { cout << "Ihre Eingabe ergibt ein Rechteck.\n\nSeitenlaengen: a = " << seite_a << " , b = " << seite_b << " , c = " << seite_c << " , d = " << seite_d <<"\nDiagonalen: e = " << diag_e << " , f = " << diag_f << endl; cout << "\nFlaeche ihres Rechtecks: " << rechteck1.flaeche() << "\nUmfang ihres Rechtecks: " << rechteck1.umfangquadrat() << endl; } if(rechteck1.liegteinQuadratvor() !=0 ) { cout << "Ihre Eingabe ergibt ein Quadrat.\n\nSeitenlaengen: a = " << seite_a << " , b = " << seite_b << " , c = " << seite_c << " , d = " << seite_d <<"\nDiagonalen: e = " << diag_e << " , f = " << diag_f << endl; cout << "\nFlaeche ihres Quadrats: " << rechteck1.flaechequadrat() << "\nUmfang ihres Quadrats: " << rechteck1.umfangquadrat()<< endl; }
return (0); }
|
C++: |
#include "rechteck.h"
rechteck::rechteck(const float a, const float b, const float c, const float d, const float e, const float f) : a_ ( a) , b_ ( b) , c_ ( c) , d_ ( d) , e_ ( e) , f_ ( f ) { }
bool rechteck::liegteinQuadratvor() { if((a_ == b_ ) && (a_ == c_) && (e_ == f_)) return true; else return false;
}
bool rechteck::sindGegenueberliegendeSeitenGleichLang() { if ((a_ == c_ ) & (b_ == d_)) return true; else return false;
}
bool rechteck::sindDiagonalenGleichLang() { if (e_ == f_) return true; else return false; }
float rechteck::flaeche() { flaeche_ = a_ * b_; return flaeche_; }
float rechteck::umfang() { umfang_ = 2 * (a_ + b_); return umfang_; }
float rechteck::flaechequadrat() { flaeche_ = a_ * a_; return flaeche_; }
float rechteck::umfangquadrat() { umfang_ = a_*b_*c_*d_; return umfang_; }
rechteck::~rechteck() { //dtor }
|
|