EXERCÍCIO 1 - FUNÇÕES DE E/S EM C++
TESTE O CÓDIGO ABAIXO:
#include <iostream>
main() {
int i;
double d;
long l;
cout << "Digite um inteiro: ";
cin >> i;
cout << "Digite um double: ";
cin >> d;
cout << "Digite um long: ";
cin >> l;
cout << " inteiro:"<< i << " double:" << d << " long:" << l;
cin>>i;
}
1
EXERCÍCIO 2
Crie uma classe círculo com operações:
deslocar // desloca o circulo em x e y
aumentar // aumenta o raio do circulo
Imprimir // imprime a informações a respeito do
círculo
A classe deve manter as informações necessárias
para definir um círculo
2
EXERCICIO 2 – CRIE UMA CLASSE CÍRCULO COM
OPERAÇÕES DESLOCAR, AUMENTAR, IMPRIMIR
#include <iostream>
class Circulo {
public:
int x,y,raio;
void deslocar(int dx,int dy);
void aumentar(int dR);
void imprimir();
};
void Circulo::imprimir() {
cout<<"Circulo de centro em ("<<x<<","<<y<<") e raio="<<raio;
}
void Circulo::deslocar(int dx,int dy) {
x=x+dx;
y=y+dy;
}
void Circulo::aumentar(int dR) {
raio=raio+dR;
}
3
EXERCÍCIO – 2 – USO DE OBJETO CÍRCULO
void main() {
Circulo c1;
c1.x=50; c1.y=50;
c1.raio=20;
c1.imprimir();
c1.deslocar(5,5);
c1.imprimir();
c1.aumentar(3);
c1.imprimir();
4
}
EXERCÍCIO - 3
Criar um construtor para classe Círculo com
dados iniciais
Tornar os atributos privativos
Criar uma classe Figura com as mesmas funções
membro de círculo, porém todas abstratas e
marcar circulo como derivado de figura
Criar uma classe Quadrado derivada da classe
Figura
5
class Figura {
public:
virtual void deslocar(int dx,int dy)=0;
virtual void aumentar(int dR)=0;
virtual void imprimir()=0;
};
class Quadrado :public Figura{
private:
int x,y,lado;
public:
void deslocar(int dx,int dy);
void aumentar(int dR);
void imprimir();
Quadrado(int x1,int y1,int r1);
};
6
Quadrado::Quadrado(int x1,int y1,int l) {
x=x1;
y=y1;
lado=l;
}
void Quadrado::imprimir() {
cout<<"Quadrado de canto superior esquerdo em
("<<x<<","<<y<<") e lado="<<lado<<endl;
}
void Quadrado::deslocar(int dx,int dy) {
x=x+dx; y=y+dy;
}
void Quadrado::aumentar(int dR) {
lado=lado+dR; }
7
EXERCÍCIO - 4
Criar uma classe que implemente uma Pilha
para Figura com as seguintes operações:
int push(Figura* x); //insere x no topo
Figura* pop(); // retira o elemento topo
Figura* top(); // retorna o topo sem desempilhá-lo
int size(); //retorna o tamanho atual da pilha
bool isEmpty(); // verifica se a pilha está vazia
8
class Pilha {
private:
Figura **figuras; int topo;
static int TAM=100;
public:
int push(Figura* x); //insere x no topo
Figura* pop(); // retira o elemento topo
Figura* top(); // retorna o topo sem desempilhá-lo
int size(); //retorna o tamanho atual da pilha
bool isEmpty(); // verifica se a pilha está vazia
//construtor e destrutor
Pilha();
~Pilha();
};
9
int Pilha::size() { return topo+1; }
bool Pilha::isEmpty() {return (topo<0); }
Figura* Pilha::top() {
if (isEmpty())
return NULL;
return figuras[topo];
}
Figura* Pilha::pop() {
if (isEmpty()) return NULL;
return figuras[topo--]; }
10
int Pilha::push(Figura* x) {
if (size() == TAM)
return -1;
figuras[++topo]=x;
return 1;
}
Pilha::Pilha() {
figuras=new Figura*[TAM];
}
Pilha::~Pilha() {
delete figuras;
}
11
UTILIZAÇÃO DA PILHA
void main() {
Pilha p; Figura *f;
p.push(new Quadrado(50,50,30));
p.push(new Circulo(10,10,5));
p.push(new Quadrado(20,20,10));
f=p.pop(); f->imprimir(); delete f;
f=p.pop(); f->imprimir(); delete f;
f=p.pop(); f->imprimir(); delete f;
}
12
RESULTADO DA UTILIZAÇÃO DA PILHA
Quadrado de canto superior esquerdo em (20,20) e lado=10
Circulo de centro em (10,10) e raio=5
Quadrado de canto superior esquerdo em (50,50) e lado=30
13
Download

EXERCÍCIO 1 -FUNÇÕES DE E/S EM C++ TESTE O CÓDIGO