• Nenhum resultado encontrado

Retangulo::Retangulo (int x0, int y0, int lado1, int lado2) { this->xref = x0; this->yref = y0; this->lado1 = lado1; this->lado2 = lado2; }

N/A
N/A
Protected

Academic year: 2021

Share "Retangulo::Retangulo (int x0, int y0, int lado1, int lado2) { this->xref = x0; this->yref = y0; this->lado1 = lado1; this->lado2 = lado2; }"

Copied!
14
0
0

Texto

(1)

//exemplo1.cpp #include <cstdlib> #include <iostream> using namespace std; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Circulo { private: int id;

int xref, yref; int raio;

public:

Circulo (int x0, int y0, int raio); void draw();

};

Circulo::Circulo(int x0, int y0, int raio) { xref = x0;

yref = y0;

this->raio = raio; }

void Circulo::draw() {

cout << "Desenhando circulo com centro em (" << xref << ","

<< yref << ") e raio " << raio << endl; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Retangulo {

private:

int xref, yref; int lado1, lado2; public:

Retangulo(int x0, int y0, int lado1, int lado2); void draw();

};

Retangulo::Retangulo (int x0, int y0, int lado1, int lado2) { this->xref = x0; this->yref = y0; this->lado1 = lado1; this->lado2 = lado2; } void Retangulo::draw() {

cout << "Desenhando retangulo com referencia em (" << xref << "," << yref << ") e lados "

<< lado1 << " e " <<lado2 <<endl; }

int main(int argc, char** argv) { Circulo c(10, -10, 50); Retangulo r(-8, -8, 10, 30); c.draw(); r.draw(); return 0; }

(2)

Display(COR _fundo=COR{255,255,255}); void mostrar(int ms); void limpar(); } disp; int Display::conta=0; Display::Display(COR _fundo) { fundo=_fundo; img.create(480,640); img.setTo(fundo); nomeJanela="DISPLAY"+to_string(conta); conta++; namedWindow(nomeJanela); } void Display::mostrar(int ms) { imshow(nomeJanela,img); waitKey(ms); } void Display::limpar() { img.setTo(fundo); } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Circulo { private:

int xref, yref; int raio;

public:

Circulo (int x0, int y0, int raio); void draw();

};

Circulo::Circulo(int x0, int y0, int raio) { this->xref = x0;

this->yref = y0; this->raio = raio; }

void Circulo::draw() {

circle(disp.img, Point(xref,yref), raio, Scalar(0,0,0), 3 ); }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Retangulo {

private:

int xref, yref; int lado1, lado2; public:

(3)

Retangulo(int x0, int y0, int lado1, int lado2); void draw();

};

Retangulo::Retangulo (int x0, int y0, int lado1, int lado2) { this->xref = x0; this->yref = y0; this->lado1 = lado1; this->lado2 = lado2; } void Retangulo::draw() { rectangle(disp.img, Point(xref,yref), Point(xref+lado1,yref+lado2), Scalar(0,0,0), 3 ); } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< int main(int argc, char** argv) {

Circulo c(100, 100, 50); Retangulo r(200, 200, 60, 90); c.draw(); r.draw(); disp.mostrar(0); return 0; }

Para compilar e executar este programa, instale biblioteca Cekeikon4/OpenCV de acordo com:

(4)

Shape (int x0, int y0); void draw();

void move (int deltax, int deltay); };

Shape::Shape(int x0, int y0) { this->xref = x0;

this->yref = y0; }

void Shape::draw() {

cout << "Nao sentido desenhar uma forma generica! Referencia (" << xref << "," << yref << ")" << endl;

}

void Shape::move(int deltax, int deltay){ this->xref += deltax;

this->yref += deltay; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Circulo : public Shape {

private: int raio; public:

Circulo(int x0, int y0, int raio); void draw();

};

Circulo::Circulo(int x0, int y0, int raio) : Shape (x0,y0) { this->raio = raio;

}

void Circulo::draw() {

cout << "Desenhando circulo com centro em (" << xref << ","

<< yref << ") e raio " << raio << endl; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Retangulo : public Shape {

private:

int lado1, lado2; public:

Retangulo(int x0, int y0, int lado1, int lado2); void draw();

};

Retangulo::Retangulo(int x0, int y0, int lado1, int lado2) : Shape(x0, y0) {

(5)

this->lado2 = lado2; }

void Retangulo::draw() {

cout << "Desenhando retangulo com referencia em (" << xref << "," << yref << ") e lados "

<< lado1 << " e " <<lado2 <<endl; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Figura {

public:

Figura();

void transladar (int deltax, int deltay); void draw();

~Figura(); private:

Shape *formas[10];//a figura pode ter até 10 formas int numerodeformas = 0; }; Figura::Figura() { formas[numerodeformas]=new Circulo(100,100,50); numerodeformas++; formas[numerodeformas]=new Retangulo(200,200,60,90); numerodeformas++; }

void Figura::transladar(int deltax, int deltay) { for (int i = 0; i < numerodeformas; i++) { formas[i]->move(deltax, deltay);

} }

void Figura::draw() {

for (int i = 0; i < numerodeformas; i++) { formas[i]->draw();

} }

Figura::~Figura() {

for (int i = 0; i < numerodeformas; i++) { delete formas[i];

} }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< int main(int argc, char** argv) {

Figura f; f.draw();

f.transladar(2,3); f.draw();

(6)

Shape (int x0, int y0); virtual void draw();

void move (int deltax, int deltay); virtual ~Shape();

};

Shape::Shape(int x0, int y0) { this->xref = x0;

this->yref = y0; }

void Shape::draw() {

cout << "Nao sentido desenhar uma forma generica! Referencia (" << xref << "," << yref << ")" << endl;

}

void Shape::move(int deltax, int deltay){ this->xref += deltax; this->yref += deltay; } Shape::~Shape() {} //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Circulo : public Shape {

private: int raio; public:

Circulo(int x0, int y0, int raio); void draw();

};

Circulo::Circulo(int x0, int y0, int raio) : Shape (x0,y0) { this->raio = raio;

}

void Circulo::draw() {

cout << "Desenhando circulo com centro em (" << xref << ","

<< yref << ") e raio " << raio << endl; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Retangulo : public Shape {

private:

int lado1, lado2; public:

Retangulo(int x0, int y0, int lado1, int lado2); void draw();

(7)

Retangulo::Retangulo(int x0, int y0, int lado1, int lado2) : Shape(x0, y0) { this->lado1 = lado1; this->lado2 = lado2; } void Retangulo::draw() {

cout << "Desenhando retangulo com referencia em (" << xref << "," << yref << ") e lados "

<< lado1 << " e " <<lado2 <<endl; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Figura {

public:

Figura();

void transladar (int deltax, int deltay); void draw();

~Figura(); private:

Shape *formas[10];//a figura pode ter até 10 formas int numerodeformas = 0; }; Figura::Figura() { formas[numerodeformas]=new Circulo(100,100,50); numerodeformas++; formas[numerodeformas]=new Retangulo(200,200,60,90); numerodeformas++; }

void Figura::transladar(int deltax, int deltay) { for (int i = 0; i < numerodeformas; i++) { formas[i]->move(deltax, deltay);

} }

void Figura::draw() {

for (int i = 0; i < numerodeformas; i++) { formas[i]->draw();

} }

Figura::~Figura() {

for (int i = 0; i < numerodeformas; i++) { delete formas[i];

} }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< int main(int argc, char** argv) {

Figura f; f.draw();

f.transladar(2,3); f.draw();

(8)

Shape (int x0, int y0); virtual void draw()=0;

void move (int deltax, int deltay); virtual ~Shape();

};

Shape::Shape(int x0, int y0) { this->xref = x0;

this->yref = y0; }

// void Shape::draw() {

// cout << "Nao sentido desenhar uma forma generica! Referencia (" // << xref << "," << yref << ")" << endl;

// }

void Shape::move(int deltax, int deltay){ this->xref += deltax; this->yref += deltay; } Shape::~Shape() {} //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Circulo : public Shape {

private: int raio; public:

Circulo(int x0, int y0, int raio); void draw();

};

Circulo::Circulo(int x0, int y0, int raio) : Shape (x0,y0) { this->raio = raio;

}

void Circulo::draw() {

cout << "Desenhando circulo com centro em (" << xref << ","

<< yref << ") e raio " << raio << endl; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Retangulo : public Shape {

private:

int lado1, lado2; public:

Retangulo(int x0, int y0, int lado1, int lado2); void draw();

(9)

Retangulo::Retangulo(int x0, int y0, int lado1, int lado2) : Shape(x0, y0) { this->lado1 = lado1; this->lado2 = lado2; } void Retangulo::draw() {

cout << "Desenhando retangulo com referencia em (" << xref << "," << yref << ") e lados "

<< lado1 << " e " <<lado2 <<endl; }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Figura {

public:

Figura();

void transladar (int deltax, int deltay); void draw();

~Figura(); private:

Shape *formas[10];//a figura pode ter até 10 formas int numerodeformas = 0; }; Figura::Figura() { formas[numerodeformas]=new Circulo(100,100,50); numerodeformas++; formas[numerodeformas]=new Retangulo(200,200,60,90); numerodeformas++; }

void Figura::transladar(int deltax, int deltay) { for (int i = 0; i < numerodeformas; i++) { formas[i]->move(deltax, deltay);

} }

void Figura::draw() {

for (int i = 0; i < numerodeformas; i++) { formas[i]->draw();

} }

Figura::~Figura() {

for (int i = 0; i < numerodeformas; i++) { delete formas[i];

} }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< int main(int argc, char** argv) {

Figura f; f.draw();

f.transladar(2,3); f.draw();

(10)

Display(COR _fundo=COR{255,255,255}); void mostrar(int ms); void limpar(); } disp; int Display::conta=0; Display::Display(COR _fundo) { fundo=_fundo; img.create(480,640); img.setTo(fundo); nomeJanela="DISPLAY"+to_string(conta); conta++; namedWindow(nomeJanela); } void Display::mostrar(int ms) { imshow(nomeJanela,img); waitKey(ms); } void Display::limpar() { img.setTo(fundo); } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Shape { protected: int id;

int xref, yref; public:

Shape (int x0, int y0);

virtual void draw()=0; //alterado void move (int deltax, int deltay); virtual ~Shape(); // alterado

};

Shape::Shape(int x0, int y0) { this->xref = x0;

this->yref = y0; }

void Shape::move(int deltax, int deltay){ this->xref += deltax; this->yref += deltay; } Shape::~Shape() {} //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

(11)

class Circulo : public Shape { private:

int raio; public:

Circulo(int x0, int y0, int raio); void draw();

};

Circulo::Circulo(int x0, int y0, int raio) : Shape (x0,y0) { this->raio = raio;

}

void Circulo::draw() {

circle(disp.img, Point(xref,yref), raio, Scalar(0,0,0), 3 ); }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Retangulo : public Shape {

private:

int lado1, lado2; public:

Retangulo(int x0, int y0, int lado1, int lado2); void draw();

};

Retangulo::Retangulo(int x0, int y0, int lado1, int lado2) : Shape(x0, y0) { this->lado1 = lado1; this->lado2 = lado2; } void Retangulo::draw() { rectangle(disp.img, Point(xref,yref), Point(xref+lado1,yref+lado2), Scalar(0,0,0), 3 ); } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Figura { public: Figura();

void transladar (int deltax, int deltay); void draw();

~Figura(); private:

Shape *formas[10];//a figura pode ter até 10 formas int numerodeformas = 0; }; Figura::Figura() { formas[numerodeformas]=new Circulo(100,100,50); numerodeformas++; formas[numerodeformas]=new Retangulo(200,200,60,90); numerodeformas++; }

void Figura::transladar(int deltax, int deltay) { for (int i = 0; i < numerodeformas; i++) { formas[i]->move(deltax, deltay);

} }

(12)

}

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< int main(int argc, char** argv) {

Figura f; f.draw(); disp.mostrar(0); disp.limpar(); f.transladar(100, 100); f.draw(); disp.mostrar(0); }

(13)

//exemplo5-hae.cpp #include <cstdlib> #include <iostream> using namespace std; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Equipamento { public: Equipamento(); ~Equipamento();

static void mostraCorrenteTotal(); //alterado Hae void mostraId();

private:

static float correnteTotal;

//total da corrente consumida pelos equipamentos. int id, corrente;

};

Equipamento::Equipamento() {

cout << "Forneca o identificador (inteiro): "; cin >> this-> id;

cout << "Forneca o consumo de corrente (A): "; cin >> this->corrente;

correnteTotal += this->corrente; }

Equipamento::~Equipamento() {

cout << "Destruindo equipamento numero: " << this->id << endl; correnteTotal = correnteTotal - this->corrente;

return; }

void Equipamento::mostraCorrenteTotal() { //metodo estatico-alterado Hae

cout << "Corrente total e' " << correnteTotal << endl; }

void Equipamento::mostraId() { //metodo nao estatico cout << "ID e' " << this->id << endl;

}

float Equipamento::correnteTotal = 0; //definicao do atributo estatico //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

int main() {

Equipamento::mostraCorrenteTotal();

//posso acionar o metodo mesmo sem instâncias! Equipamento *e1, *e2;

e1 = new Equipamento(); e1->mostraId();

e1->mostraCorrenteTotal(); // a instancia acessa o metodo estatico e2 = new Equipamento(); e2->mostraId(); Equipamento::mostraCorrenteTotal(); delete (e2); Equipamento::mostraCorrenteTotal(); delete (e1); Equipamento::mostraCorrenteTotal(); return 0; }

(14)

}

void imprimir() {

cout << estatico << endl; } }; int Classe::estatico = 0; int main() { Classe c; c.imprimir(); Classe d; d.imprimir(); }

Referências

Documentos relacionados

São Camilo Santana Geral PS/INT PS/INT - - PS/INT PS/INT

Composição específica da ictiofauna na Gamboa do Perequê nos meses amostrados, com as freqüências absolutas observadas em número de exemplares (Obs), porcentagens

Potencial = Todos os produtos de mesma CT4 trabalhados pelo ABRADIMEX no canal durante o MATNOV 19;

[r]

int mmp_vq MMP_CTX *mmp, gsl_vector *block, int depth, int *code, double *distance.. double acum, min

78 Figura 3.27 Padrão de difração de pós obtido para o complexo ácido nalidíxico:Zn através (a) de síntese por solução, em comparação com os difractogramas

Resultados: Os subtipos mais comuns de TBEB, classificados pelas características na broncoscopia, foram tumoral e granular (em 22,2% para ambas) A baciloscopia de escarro

O luxuoso Contur design da DORMA abriga a avançada tecnologia eletromagnética do operador CS 80 MAGNEO para portas deslizantes, que opera com baixo consumo de energia..