Buscar

Algoritmos e Estrutura de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos e Estrutura de Dados 
Lista de Exercícios
Questão 1:
(A)- Programação Orientada a Objetos (POO):
	 É um paradigma de programação que usa tipos de dados personalizados. Em vez de operar apenas com tipos de dados primitivos, podemos construir novos tipos de dados, conforme nossa necessidade.
EX: #include <iostream> 
using namespace std; 
int main(void)
{ char s[40]; 
cout << "Digite seu nome: ";
 cin >> s; 
cout << "Seu nome eh" << s << "\n"; 
return 0; }
(B)- Classe:
	Uma Classe é uma coleção de objetos que são descritos com os mesmos atributos e as mesmas operações. Uma classe representa uma ideia ou conceito e classifica objetos que tenham propriedades similares.
As classes são os blocos de construção mais importantes dos sistemas orientados a objetos, e devem possuir responsabilidades bem definidas dentro da aplicação.
EX: #include "conta.h"
void Conta::inicializa(string n, float s)
{
  nome = n;
  saldo = s;
  if (saldo < 0)
    cout << "Erro na Criação da Conta!!!" << endl;
}
void Conta::deposita(float valor)
{
  saldo = saldo + valor;
}
void Conta::consulta()
{
  cout << "Cliente: " << nome << endl;
  cout << "Saldo Atual: " << saldo << endl;
  cout << "Numero da Conta: " << numero << endl;
}
int Conta::saque(float valor)
{
  if (saldo < valor)
    return 0;
  else
  {
    saldo = saldo - valor;
    return 1;
  }
}
(C)- Instância
	É o objeto, uma ocorrência específica de uma classe.
As classes originam instâncias sob requisição, no processo denominado Instanciação. O projetista / analista cria a classe. A classe é então usada para criar objetos em tempo de execução.
EX: class Caixa {
double lado;
double Volume()
{
return lado * lado * lado;
}
}
(D)- Objeto
	Trata-se de uma ocorrência específica de uma classe; é uma “instância de classe”.
Os objetos são a base da OO (Orientação a Objetos).
Os objetos representam entidades do mundo real, como aviões, pessoas, contas correntes, etc., mas também podem representar outros conceitos, como gráficos (círculos, quadrados, cones, esferas, etc.)
Um objeto possui características próprias (atributos) e executa determinadas ações (métodos), sendo esses atributos e métodos provenientes da classe que origina o objeto.
EX: 
 Int main(int argc, char *arqv[])
 	{
		Pessoa p;
		Return0;
 }
Questão 2:
Em C++ a diferença entre uma declaração de struct e class é que o nível de acesso padrão para structs é public e para class é private.
structs em C++ podem conter metodos, e tudo mais que você consegue colocar em um tipo definido usando class.
· public: permite acesso a qualquer código externo a classe.
· protected: permite acesso às classes filhas, mas proíbe a qualquer outro acesso externo.
· private: proíbe qualquer acesso externo à própria classe, inclusive das classes filhas.
· 
· class Pai {
· protected $protegido = 'Protegido';
· protected function metodoProtegido() {
· echo 'Método protegido na classe pai';
· }
· }
· class Filha extends Pai {
· public function acessarAtributoProtegido(){
· echo $this->protegido;
· }
· public function chamarMetodoProtegido() {
· parent::metodoProtegido();
· }
· }
· { }
}Questão 3:
	Atributos são as propriedades de um objeto. Métodos são as ações que um objeto pode realizar. Os objetos são características definidas pelas classes. Neles é permitido instanciar objetos da classe para inicializar os atributos e invocar os métodos
Questão 4:
a) Hierarquia, polimorfismo de sobrecarga, polimorfismo de sobreposição.
Questão 5:
	Herança é um mecanismo importante quando um grupo de classes apresenta a mesma interface, mas a implementação interna dos métodos é diferente. Polimorfismo é uma característica em orientação a objetos que usa a hierarquia de objetos.
Questão 6:
	O encapsulamento permite que você atualize seu componente, forneça uma implementação mais eficiente ou corrija erros – tudo isso sem ter de tocar nos outros objetos de seu programa. Os usuários de seu objeto se beneficiarão automaticamente de todas as alterações que você fizer.
Questão 7:
	Método getter é utilizado para recuperar alguma informação, geralmente ... Método setter é utilizado para setar um valor dentro de um objeto, de uma variavel.
Questão 8:
	Herança é um dos pontos chave de programação orientada a objetos (POO). Ela fornece meios de promover a extensibilidade do código, a reutilização e uma maior coerência lógica no modelo de implementação.
Questão 11:
#include <iostream>
using namespace std;
void mostrarAtributosNaTela(string nome, int telefone, string marca, string cor);
class Carro{
 //declarando as variáveis como privadas
 private:
 string nome;
 int telefone;
 string marca;
 string cor;
	public:
 //construtor
		Carro(string nomeC, int telefoneC, string marcaC, string corC){
 setNome(nomeC);
 setTelefone(telefoneC);
 setMarca(marcaC);
 setCor(corC);
 }
		string getNome(){
			return nome;
		}
		
		int getTelefone(){
			return telefone;
		}
		
		string getMarca(){
			return marca;
		}
 string getCor(){
			return cor;
		}
	
 	void setNome(string nomex){
		 nome = nomex;			
		}
		
		void setTelefone(int telefonex){
			
			telefone = telefonex;
		}
		
		void setMarca(string marcax){
		 marca = marcax;
		}
 void setCor(string corx){
		 cor = corx;
		}
};
int main(){
	
 int qtsCarrosInserir;
 cout<<"Quantos donos você quer inserir? :";
 cin >> qtsCarrosInserir;
 //vou fazer isso quantos carros ele decidir fazer
 for(int n = 0; n < qtsCarrosInserir; n++){
 string nome;
 int telefone;
 string placa;
 string cor;
 
 cout<<"\nQual nome do carro? :";
 cin >> nome;
 cout<<"\nQual o telefone? :";
 cin >> telefone;
 
 cout<<"Qual a placa do carro? :";
 cin >> placa;
 cout<<"Qual a cor do carro? :";
 cin >> cor;
 //mandando as informações para o construtor
 Carro carro(nome, telefone,placa, cor);
 mostrarAtributosNaTela(carro.getNome(), carro.getTelefone(), carro.getMarca(), carro.getCor()); 
 }
	return 0;
}
//metodo para mostrar na tela informações do carro
void mostrarAtributosNaTela(string nome, int telefone, string marca, string cor){
 
 cout<<"\n====informações do carro cadastrado ===== :";
 cout<<"\nNome do carro :"<<nome;
 cout<<"\ntelefone do carro :"<<telefone;
 cout<<"\nMarca do carro:"<<marca;
 cout<<"\nCor do carro :"<<cor;
}
Questão 12:
#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
class Caneta{ // Essa a classe do objeto caneta, ou seja, o seu templete. Nele, estar o presentes metodos e atributos.
	
	public:
	
	// Atributos do objeto ->
	
 
	string cor;
	string marca;
	string modelo;
	float peso_do_veiculo;
	float ano;
	bool novo_veiculo;
	bool veiculo_cadastrado;
	
	// Metodos do objeto ->
	
	void novo_veiculo (bool novo_veiculo, bool veiculo_cadastrado){ // Metodo que verifica o estado atual do veiculo.
		
		if(novo_veiculo == false && veiculo_cadastrado == true){
			
			cout << "Novo veiculo" << endl;
			cout << "Veiculo cadastrado : " << peso_do_veiculo << "%" << endl;
		}
		else if( ano == false && marca == false){
			
			cout << "Ano do veiculo" << endl;
			cout << "marca do veiculo << endl;
		}
		else if(cor == true && modelo == false){
			
			cout << "Por favor qual a cor do veiculo" << endl;
			cout << "Qual o modelo do veiculo" << endl;
	
	}
	
	void escrever(string palavra){
		
		if(novo_veiculo == false && veiculo_cadastrado == true){ 
			
			cout << "Digite os dados do novo veiculo " << endl;
			cin >> veiculo;
			novo_veiculo = novo_veiculo;
			cout << "Veiculo : '" << veiculo << "' foi cadastrado com sucesso!" << endl; 
		}
		else{
			
			cout << "Ops, algo deu errado! Verifique se o veiculo já está no sistema." << endl;
		}
	}
	
};
int main(){
	
	veiculo objeto; // Aqui instanciamos a classe e criamos o objeto.
	int aux;
	objeto.ano_ = 2000; // ano padrão do veículo
	objeto.cor = "preto";
	objeto.marca = "chevrolet";
	objeto.modelo = "onix";
	objeto.novo_veiculo = true; 
	objeto.veiculo_cadastrado =false;
	
	
	while(3){
	
	cout << "1- Consultar estado do carro" << endl;
	cout << "2- Escrever" << endl;
	cout << "3- Sair" << endl;
	cin >> aux;
	
	switch(aux){ // Switch utilizado como controlador de a??es da caneta
		
		case 1:{
			
			objeto.novo_veiculo(objeto.marca, objeto.ano);
			
			break;
		}
		case 2:{
			
			objeto.escrever(objeto.palavra);
			
			break;
		}
		case 3:{
			
			exit(3);
			
			break;
		}
	}	
}
	return 0;
}

Continue navegando