Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Kvadrat{
- protected:
- double a;
- public:
- // default constructor
- Kvadrat () { a = 0; }
- // constructor so argument
- Kvadrat ( double a ) {
- this -> a = a;
- }
- // copy constructor
- Kvadrat ( const Kvadrat &k ) {
- a = k.a;
- }
- // operator =
- Kvadrat & operator=( const Kvadrat &k ) {
- if(this!=&k){
- a = k.a;
- }
- return *this;
- }
- // metod perimetar
- double perimetar () { return 4*a; }
- // metod plostina
- double plostina () { return a*a; }
- // metod pecati
- void pecati () {
- cout<<"Kvadrat so dolzina a="<<a<<" ima plostina P="<<plostina()<<" i perimetar L="<<perimetar()<<endl;
- }
- // destructor
- ~Kvadrat () {}
- };
- class Pravoagolnik : public Kvadrat {
- private:
- double x;
- double y;
- public:
- // default constructor
- Pravoagolnik () : Kvadrat () { x=0; y=0; }
- // constructor so argumenti
- Pravoagolnik ( double a, double x, double y ) : Kvadrat ( a ) {
- this -> x = x;
- this -> y = y;
- }
- // copy constructor
- Pravoagolnik ( const Pravoagolnik &p ) {
- this -> a = p.a;
- this -> x = p.x;
- this -> y = p.y;
- }
- // constructor so argument kvadrat
- Pravoagolnik ( const Kvadrat &k, double x, double y ) : Kvadrat ( k ) {
- this -> x = x;
- this -> y = y;
- }
- // destructor
- ~Pravoagolnik () {}
- // operator =
- Pravoagolnik & operator=( const Pravoagolnik &p ) {
- if(this!=&p){
- this -> a = p.a;
- this -> x = p.x;
- this -> y = p.y;
- }
- return *this;
- }
- // prepokriena perimetar
- double perimetar () {
- return ( Kvadrat::perimetar() + 2*x + 2*y );
- }
- // prepokriena plostina
- double plostina () {
- return (a+x)*(a+y);
- }
- // prepokriena pecati
- void pecati () {
- if ( x == y ) {
- a+=x; x=0; y=0;
- Kvadrat :: pecati();
- }
- else{
- cout<<"Pravoagolnik so strani: "<<a+x<<" i "<<a+y<<" ima plostina P="<<plostina()<<" i perimetar L="<<perimetar()<<endl;
- }
- }
- };
- int main() {
- int n;
- double a,x,y;
- Kvadrat * kvadrati;
- Pravoagolnik * pravoagolnici;
- cin>>n;
- kvadrati = new Kvadrat [n];
- pravoagolnici = new Pravoagolnik [n];
- for (int i=0;i<n;i++){
- cin>>a;
- kvadrati[i] = Kvadrat(a);
- }
- for (int i=0;i<n;i++){
- cin>>x>>y;
- pravoagolnici[i]=Pravoagolnik(kvadrati[i],x,y);
- }
- int testCase;
- cin>>testCase;
- if (testCase==1){
- cout<<"===Testiranje na klasata Kvadrat==="<<endl;
- for (int i=0;i<n;i++)
- kvadrati[i].pecati();
- }
- else {
- cout<<"===Testiranje na klasata Pravoagolnik==="<<endl;
- for (int i=0;i<n;i++)
- pravoagolnici[i].pecati();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement