You are on page 1of 1

AVALIAO PROXIMAL 1 DE TCNICAS DE PROGRAMAO 2314EE21 ENGENHARIA ELTRICA

PROF. DR. MARCELO NICOLETTI FRANCHIN - DATA: 13/10/2017


RA: ______________ NOME: ________________________________________________________________

1. O que programao orientada a objetos? (0.3 ponto); Explique os conceitos de herana com exemplo em C++. (0.4 ponto);
Explique os conceitos de polimorfismo com exemplo em C++. (0.4 ponto); Explique os conceitos de abstrao e
encapsulamento com exemplo em C++. (0.4 ponto)
2.Explique o que programao orientada a eventos no Windows? O que so propriedades, mtodos e eventos no Microsoft
Visual C++ ? D exemplos. (1 ponto)
3. Escreva uma classe chamada complexo para processar armazenar, converter e mostrar um nmero complexo. Nesta classe
um nmero complexo no formato retangular deve ser armazenado em duas variveis float, uma chamada real e a outra
chamada imaginario. A classe deve definir 3 funes pblicas: uma para armazenar o nmero complexo no formato
retangular, com dois parmetros de entrada e nenhum de sada, chamada armazena (pode ser a funo construtora se quiser),
uma para converter e mostrar o nmero complexo no formato polar, com nenhum parmetro de entrada ou de sada,
chamada Retangular2Polar e uma para mostrar o nmero complexo na forma retangular, chamada Mostra. Faa um
programa que contenha a classe e o cdigo das funes de classe e no programa principal crie 2 objetos deste tipo de classe e
utilize estas rotinas da classe inserindo, convertendo e apresentado os elementos. (2.5 pontos)
4. Rastreie o programa console abaixo, com ateno, e informe exatamente o que sair no vdeo: (2.5 pontos)
#define MAXFILA 3 quantidade++; };
#include <iostream> buffer[cauda]=item; int main(){
using namespace std; cauda=(cauda+1)%MAXFILA; fila bb;
class fila { }; bb.entra(5);
public: }; bb.mostrafila();
int buffer[MAXFILA]; int fila::sai(void){ bb.entra(15);
int cabeca; if(quantidade==0){ bb.mostrafila();
int cauda; cout << "Fila vazia. Nada bb.entra(25);
recuperado."<<endl;
int quantidade; bb.mostrafila();
return -1;
fila(void); bb.entra(35);
}
void entra(int item); bb.mostrafila();
else{
int sai(void); bb.entra(45);
quantidade--;
void mostrafila(void); bb.mostrafila();
int saida=buffer[cabeca];
}; bb.sai();
cabeca=(cabeca+1)%MAXFILA;
fila::fila(void){ bb.mostrafila();
return saida;
cabeca=0; bb.sai();
}
cauda=0; bb.mostrafila();
};
quantidade=0; bb.sai();
void fila::mostrafila(void){
}; bb.mostrafila();
char i;
void fila::entra(int item){ bb.sai();
cout<<"Tamanho da
if(quantidade==MAXFILA){ fila:"<<quantidade<<endl; bb.mostrafila();
cout<<"Fila cheia.Dado " << for bb.sai();
item<< " nao inserido."<<endl; (i=cabeca;i<(cabeca+quantidade);i++
){ bb.mostrafila();
return;
cout<<buffer[i]<<" "; system("pause");
}
}; return 0;
else{
cout<<endl; }
5. Considerando a ilustrao a seguir, com os elementos superiores no topo da pilha, escreva o programa principal que faa a
seqncia de operaes push e pop que devem ser realizadas sobre os objetos pilha X, Y e Z para que, partindo do estado
inicial, possa-se chegar ao estado final. permitido criar somente UMA varivel no programa principal, se necessrio.
Nmeros maiores no podem ficar sobre nmeros menores nas pilhas. Explique cada operao efetuada. (2.5 pontos)

Dados:

class pilha{
d1 1
char item[5]; 1
int topo; c12 2
public:
b3 3
pilha();
char pop(); a4 4
void push(char dado);

X Y Z X Y Z
};

Estado inicial Estado final

You might also like