Desafios e Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exemplo de interface e polimorfismo em Java - A interface Forma e as classes Retangulo e Circulo - Exercícios Resolvidos de Java

Quantidade de visualizações: 349 vezes
Pergunta/Tarefa:

O objetivo deste exercício é demonstrar como podemos usar polimorfismo para manipular dois objetos diferentes a partir de uma interface em comum. Para isso, crie uma interface Forma contendo dois métodos: area() e perimetro().

Em seguida crie as classes Retangulo e Circulo, que implementam a interface Forma e fornecem suas próprias implementações para os métodos area() e perimetro(), ou seja, demonstre que as formas de calcular a área e o perímetro são diferentes entre os dois objetos.

Para finalizar, na classe principal da aplicação Java, crie objetos das classe Retangulo e Circulo e use um objeto da interface Forma para representá-los. Atenção: é permitido criar apenas uma variável do tipo Forma para acessar os dois objetos. Ao fazer isso você estará, obrigatoriamente, usando polimorfismo.

Sua saída deverá ser parecida com:

Base do retângulo: 5
Altura do retângulo: 3
A área do retângulo é: 15.0
O perímetro do retângulo é: 16.0

Raio do círculo: 4
A área do círculo é: 50.26548245743669
O perímetro do círculo é: 25.132741228718345 
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

O primeiro passo é a criação da interface Forma, que declara os métodos area() e perimetro():



Em seguida criamos a classe Retangulo, que implementa a interface Forma e fornece sua própria implementação para os métodos area() e perimetro():



Em seguida criamos a classe Circulo, que também implementa a interface Forma e sobrescreve os métodos area() e perimetro(), ou seja, fornece sua própria implementação desses métodos:



Finalmente nós criamos a classe principal que nos permitirá criar um retângulo e um círculo e mostramos suas áreas e perímetros. Note o uso de uma variável do tipo Forma para acessar os objetos Retangulo e Circulo. Isso é polimorfismo ao vivo e a cores:



Link para compartilhar na Internet ou com seus amigos:

C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como somar os elementos de um vetor de inteiros em C++

Quantidade de visualizações: 16589 vezes
Esta dica mostra a você como usar um laço for do C++ para somar todos os valores dos elementos de um vetor de inteiros. Observe que aqui nós declaramos e inicializamos o vetor (array) em apenas uma instrução:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
  // declara e inicializa um array de
  // 5 inteiros
  int valores[] = {2, 7, 1, 5, 6};
  int soma = 0;

  // soma os valores dos elementos
  for(int i = 0; i < 5; i++){
    soma += valores[i];
    // o mesmo que
    // soma = soma + valores[i];
  }

  // exibe o resultado
  cout << "Soma: " << soma << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Soma: 21


PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como usar a função array_unique() do PHP para remover elementos duplicados de um vetor - Removendo elementos repetidos de um array PHP

Quantidade de visualizações: 18011 vezes
Em algumas situações nossos códigos precisam remover os elementos duplicados em um array (vetor) PHP. Isso pode ser feito por meio do uso da função array_unique(). Esta função recebe um array e retorna um outro array com os elementos duplicados removidos. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php
  // vamos declarar e inicializar um vetor de inteiros
  $valores = array(43, 2, 6, 11, 98, 6, 3, 6);
 
  // vamos exibir os valores do vetor
  echo "Com elementos duplicados:<br>";
  foreach($valores as $valor){
    echo $valor . " - ";
  }
 
  // vamos remover os elementos duplicados
  $valores = array_unique($valores);
   
  // vamos exibir os valores do vetor novamente
  echo "<br><br>Sem elementos duplicados:<br>";
  foreach($valores as $valor){
    echo $valor . " - ";
  }
?>

Ao executarmos este código teremos o seguinte resultado:

Com elementos duplicados:
43 - 2 - 6 - 11 - 98 - 6 - 3 - 6 - 
 
Sem elementos duplicados:
43 - 2 - 6 - 11 - 98 - 3 -


Note que a função array_unique() remove APENAS os valores dos elementos duplicados, ou seja, as chaves ou índices são mantidos. Isso pode ser visto no trecho de código a seguir:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php
  // vamos declarar e inicializar um vetor de inteiros
  $valores = array(43, 2, 6, 11, 98, 6, 3, 6);
 
  // vamos listar os valores dos elementos no vetor
  for($i = 0; $i < count($valores); $i++){
    echo $valores[$i] . " - ";
  }
 
  // vamos remover os elementos duplicados
  $valores = array_unique($valores);
   
  // vamos listar os valores no vetor novamente
  echo "<br><br>";
  for($i = 0; $i < count($valores); $i++){
    echo $valores[$i] . " - ";
  }
?>

Este código resultará em:

43 - 2 - 6 - 11 - 98 - 6 - 3 - 6 - 
 
43 - 2 - 6 - 11 - 98 - -


Note que a última iteração do laço deveria alcançar o valor 3. Em vez disso o laço imprimiu um valor não definido no índice 5. Esta dica foi escrita no PHP 5.2.10. Vamos torcer para que as versões mais recentes não apresentem este comportamento. Enquanto isso EVITE usar o laço for com vetores resultantes de uma chamada à função array_unique(). Use o laço foreach().


Delphi ::: dbExpress ::: TSQLDataSet

Como obter a quantidade de campos nos registros retornados em um TSQLDataSet do Delphi usando a propriedade FieldCount

Quantidade de visualizações: 10804 vezes
Em algumas situações precisamos saber a quantidade de campos retornados em um objeto TSQLDataSet depois de dispararmos o comando SQL SELECT definido em sua propriedade CommandText. Para isso podemos usar a propriedade FieldCount. Veja sua assinatura:

property FieldCount: Integer;

Esta propriedade é definida originalmente em TDataSet e herdada pela classe TSQLDataSet.

Veja um trecho de código no qual disparamos um comando SQL SELECT em uma tabela contatos e exibimos a quantidade de campos dos registros retornados:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos definir o comando SQL a ser executado
  SQLDataSet1.CommandText := 'SELECT * FROM contatos';

  // vamos executar o comando
  SQLDataSet1.Open;

  // vamos obter a quantidade de registros retornados
  ShowMessage('Quantidade de campos retornados: ' +
    IntToStr(SQLDataSet1.FieldCount));
end;

Ao executarmos este trecho de código teremos uma mensagem com o seguinte texto:

Quantidade de campos retornados: 5.

Note que a propriedade FieldCount inclui somente os campos listados na propriedade Fields. Quaisquer campos agregados listados pela propriedade AggFields não são incluídos na contagem.


C# ::: Dicas & Truques ::: Data e Hora

Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da classe DateTime

Quantidade de visualizações: 26402 vezes
Em algumas situações nossos códigos precisam adicionar ou subtrair dias de uma data. Isso pode ser feito com o auxílio do método AddDays() da estrutura DateTime. Este método recebe o número de dias a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações.

Veja um trecho de código no qual adicionamos 5 dias à data atual:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static void Main(string[] args){
  // vamos obter a data de hoje
  DateTime hoje = DateTime.Now;

  // exibe a data de hoje
  System.Console.WriteLine("Hoje é {0:d}", hoje);

  // vamos adicionar 5 dias à data de hoje
  DateTime data_futura = hoje.AddDays(5);

  // exibe a data daqui a cinco dias
  System.Console.WriteLine("Daqui a 5 dias será {0:d}", data_futura);

  // pausa o programa
  System.Console.Write("\nPressione qualquer tecla para sair...");
  Console.ReadKey();
}

É possível também subtrair dias. Para isso só precisamos fornecer um valor negativo para o método AddDays(). Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static void Main(string[] args){
  // vamos obter a data de hoje
  DateTime hoje = DateTime.Now;

  // exibe a data de hoje
  System.Console.WriteLine("Hoje é {0:d}", hoje);

  // vamos subtrair 7 dias da data de hoje
  DateTime data_passado = hoje.AddDays(-7);

  // exibe a data sete dias atrás
  System.Console.WriteLine("Há 7 dias era {0:d}", data_passado);

  // pausa o programa
  System.Console.Write("\nPressione qualquer tecla para sair...");
  Console.ReadKey();
}

Lembre-se, contudo, que o método AddDays() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar.


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators)

Exercícios Resolvidos de C++ - Como converter de decimal para binário usando os operadores de bits em C++

Quantidade de visualizações: 577 vezes
Aprenda a programar com a nossa lista de exercícios de C++ e desafios de programação.

Pergunta/Tarefa:

Escreva um programa C++ para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits.

Sua saída deverá ser parecida com:

Informe um número decimal: 9
O número binário é: 00000000000000000000000000001001
Resposta/Solução:

Veja a resolução completa para o exercício em C++, comentada linha a linha:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

// vamos definir o tamanho do vetor para guardar
// os dígitos do número binário
#define TAM_INT sizeof(int) * 8

int main(int argc, char *argv[]){
  // variáveis para ajudar a resolver o problema
  int decimal, indice, i;
  
  // vetor para guardar o número binário
  int binario[TAM_INT];

  // vamos pedir para o usuário informar um decimal inteiro
  cout << "Informe um número decimal: ";
  cin >> decimal;

  // ajustamos índice para o último elemento do vetor
  indice = TAM_INT - 1;

  // enquanto índice for maior ou igual a 0
  while(indice >= 0){
    // vamos guardar o bit menos significativo LSB
    binario[indice] = decimal & 1;
    
    // diminuímos o índice
    indice--;

    // desloca bits para a direita uma posição
    decimal = decimal >> 1;
  }

  // agora vamos exibir o número binário
  cout << "O número binário é: ";
  for(i = 0; i < TAM_INT; i++){
    cout << binario[i];
  }
 
  cout << "\n\n"; 
 
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C++

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais


© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 63 usuários muito felizes estudando em nosso site.