Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- #include<exception>
- using namespace std;
- class GeoIznimka : public exception{
- private:
- char* msg;
- double a;
- double b;
- double c;
- public:
- void set_a(double x){
- a = x;
- }
- void set_b(double x){
- b = x;
- }
- void set_c(double x){
- c = x;
- }
- double get_a(){
- return a;
- }
- double get_b(){
- return b;
- }
- double get_c(){
- return c;
- }
- GeoIznimka(char* txt):msg(txt){}
- virtual const char* what() const throw(){
- return msg;
- }
- };
- class Trokut{
- protected:
- double a;
- double b;
- double c;
- public:
- Trokut():a(1),b(1),c(1){}
- Trokut(double x,double y,double z):a(x),b(y),c(z){}
- double povrsina(){
- double s = (a+b+c)/2;
- return sqrt(s*(s-a)*(s-b)*(s-c));
- }
- double opseg(){
- return a+b+c;
- }
- bool is_it_trokut(){
- if(a+b > c && a+c>b && b+c>a){
- return true;
- }
- else{
- GeoIznimka A("Nije moguce konsturirat objek s stranicama");
- A.set_a(a);
- A.set_b(b);
- A.set_c(c);
- throw A;
- }
- }
- };
- int main(){
- try{
- Trokut A;
- Trokut B(4,1,1);
- A.is_it_trokut();
- B.is_it_trokut();
- cout<<A.opseg()<<endl;
- cout<<B.opseg()<<endl;
- if(A.povrsina() > B.povrsina()){
- cout << "A ima vecu povrsinu!"<<endl;
- }
- else if(A.povrsina() < B.povrsina()){
- cout << "B ima vecu povrsinu!"<<endl;
- }
- else{
- cout<<"Povrsine su iste" <<endl;
- }
- }
- catch(GeoIznimka &iznimka){
- cout << iznimka.what() << " a:" << iznimka.get_a() <<" b:"<< iznimka.get_b() <<" c:"<< iznimka.get_c() <<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement