Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- //TODO: konstruiraj ja abstraknata klasa Shape
- class Shape{
- protected:
- int a;
- public:
- Shape(){}
- Shape(int a){
- this->a=a;
- }
- virtual double plostina() {}
- virtual void pecati() {}
- virtual int getType() {}
- };
- //TODO: konstruiraj ja klasata Kvadrat
- class Square : public Shape{
- public:
- Square(int a) : Shape(a){}
- double plostina(){
- return (double)a*a;
- }
- void pecati(){
- cout<<"Kvadrat so plostina = "<<plostina()<<endl;
- }
- int getType(){
- return 1;
- }
- };
- //TODO: konstruiraj ja klasata Krug
- class Krug : public Shape{
- public:
- Krug(int a) : Shape(a){}
- double plostina(){
- return 3.14 * a * a;
- }
- void pecati(){
- cout<<"Krug so plostina = "<<plostina()<<endl;
- }
- int getType(){
- return 2;
- }
- };
- //TODO: konstruiraj ja klasata Triagolnik
- class Triagolnik : public Shape{
- public:
- Triagolnik(int a) : Shape(a){}
- double plostina(){
- return (sqrt(3)/4) * (double)a * a;
- }
- void pecati(){
- cout<<"Triagolnik so plostina = "<<plostina()<<endl;
- }
- int getType(){
- return 3;
- }
- };
- //TODO: definiraj go metodot void checkNumTypes(Shape** niza, int n)
- void checkNumTypes(Shape** niza, int n){
- int square=0, krug=0, triagolnik=0;
- for(int i=0;i<n;++i){
- if(niza[i]->getType()==1)
- square++;
- if(niza[i]->getType()==2)
- krug++;
- if(niza[i]->getType()==3)
- triagolnik++;
- }
- cout<<"Broj na kvadrati vo nizata = "<<square<<endl;
- cout<<"Broj na krugovi vo nizata = "<<krug<<endl;
- cout<<"Broj na triagolnici vo nizata = "<<triagolnik<<endl;
- }
- int main(){
- int n;
- cin >> n;
- //TODO: inicijaliziraj niza od pokazuvachi kon klasata Shape
- Shape **niza;
- //TODO: alociraj memorija so golemina n za prethodno navedenata niza
- niza=new Shape*[50];
- int classType;
- int side;
- //TODO: konstruiraj for ciklus so chija pomosh ke ja popolnish nizata
- for(int i = 0; i < n; ++i){
- cin >> classType;
- cin >> side;
- if(classType==1)
- niza[i]=new Square(side);
- if(classType==2)
- niza[i]=new Krug(side);
- if(classType==3)
- niza[i]=new Triagolnik(side);
- }
- for(int i = 0; i < n; ++i){
- niza[i]->pecati();
- }
- checkNumTypes(niza, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement