Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

POO - Programação Orientada a Objetos - Uma classe para representar uma pessoa, com os atributos privados de nome, data de nascimento e altura - Exercícios Resolvidos de Java

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

Crie uma classe para representar uma pessoa, com os atributos privados de nome, data de nascimento e altura. Crie os métodos públicos necessários para sets e gets e também um método para imprimir todos dados de uma pessoa. Crie um método para calcular a idade da pessoa.

A data de nascimento pode ser informada como uma String (no formato 05/10/1982, por exemplo) e, no cálculo da idade, considere apenas o ano da data de nascimento informada.

Sua saída deverá ser parecida com:



Resposta/Solução:

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

Código para a classe Pessoa.java:

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

package arquivodecodigos;

import java.util.Calendar;

public class Pessoa {
  private String nome;
  private String dataNascimento;
  private double altura;

  // método que imprime todos os dados da pessoa
  public void imprimirDados(){
    System.out.println("Nome: " + nome + "\nData de Nascimento: " +
      dataNascimento + "\nAltura: " + altura);
  }
  
  // método que calcula a idade da pessoa
  public void calcularIdade(){
    // vamos obter o ano da data de hoje
    Calendar calendario = Calendar.getInstance();
    int anoDataAtual = calendario.get(Calendar.YEAR);
    
    // agora vamos obter o ano de nascimento da pessoa
    String partesDataNascimento[] = dataNascimento.split("/");
    int anoNascimento = Integer.parseInt(partesDataNascimento[2]);
    
    // agora mostramos a idade da pessoa
    int anos = anoDataAtual - anoNascimento;
    System.out.println("A pessoa tem " + anos + " anos.");
  }
  
  public String getNome() {
    return nome;
  }

  public void setNome(String nome) {
    this.nome = nome;
  }

  public String getDataNascimento() {
    return dataNascimento;
  }

  public void setDataNascimento(String dataNascimento) {
    this.dataNascimento = dataNascimento;
  }

  public double getAltura() {
    return altura;
  }

  public void setAltura(double altura) {
    this.altura = altura;
  }
}

Código para a classe Principal.java:

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

package arquivodecodigos;

public class Principal {
  public static void main(String[] args) {
    // vamos criar uma nova pessoa
    Pessoa p = new Pessoa();
    p.setNome("Amanda Teixeira");
    p.setDataNascimento("12/05/1982");
    p.setAltura(1.64);
    
    // vamos mostrar os dados da pessoa
    p.imprimirDados();
    
    // vamos mostrar a idade da pessoa
    p.calcularIdade();
  }
}


Link para compartilhar na Internet ou com seus amigos:

Lisp ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço loop para contar de 1 até 10 em Lisp

Quantidade de visualizações: 491 vezes
A estrutura de repetição loop da linguagem Common Lisp é o laço mais simples fornecido pela linguagem. Este laço nos permite repetir uma ou mais instruções de código repetidamente, até que o comando return seja encontrado, o que faz com que o laço seja interrompido.

Veja no trecho de código abaixo como podemos usar o laço loop da Common Lisp para contar e exibir os valores de 1 até 10:

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

(
  ; vamos declarar a variável que vamos usar
  let (numero)	
  ; vamos inicializar a variável com o valor 1
  (setq numero 1)
  ; agora iniciamos o laço
  (loop 
    ; escrevemos o valor da variável
    (write numero)
    ; aumentamos o valor da variável em 1
    (setq numero (+ numero 1))
    ; provocamos uma quebra de linha 
    (terpri)
    ; e fazemos o teste da continuidade
    (when (> numero 10) (return))
  )
)

Ao executarmos este código Common Lisp nós teremos o seguinte resultado:

1
2
3
4
5
6
7
8
9
10

Veja que usamos a macro when para testar o ponto de parada do laço. Note ainda o uso da função terpri da Common Lisp para provocar uma quebra de linha na saída do programa.


R ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em R dados dois pontos no plano cartesiano

Quantidade de visualizações: 1041 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem R que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

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

# x e y do primeiro ponto
x1 <- readline("Coordenada x do primeiro ponto: ")
y1 <- readline("Coordenada y do primeiro ponto: ")
x1 <- as.numeric(x1)
y1 <- as.numeric(y1)

# x e y do segundo ponto
x2 <- readline("Coordenada x do segundo ponto: ")
y2 <- readline("Coordenada y do segundo ponto: ")
x2 <- as.numeric(x2)
y2 <- as.numeric(y2)

# agora vamos calcular o coeficiente angular
m <- (y2 - y1) / (x2 - x1)

# mostramos o resultado
paste("O coeficiente angular é:", m)

Ao executar este código em linguagem R nós teremos o seguinte resultado:

[1] "O coeficiente angular é: 0.666666666666667"

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

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

# x e y do primeiro ponto
x1 <- readline("Coordenada x do primeiro ponto: ")
y1 <- readline("Coordenada y do primeiro ponto: ")
x1 <- as.numeric(x1)
y1 <- as.numeric(y1)

# x e y do segundo ponto
x2 <- readline("Coordenada x do segundo ponto: ")
y2 <- readline("Coordenada y do segundo ponto: ")
x2 <- as.numeric(x2)
y2 <- as.numeric(y2)

# vamos obter o comprimento do cateto oposto
cateto_oposto <- y2 - y1
# e agora o cateto adjascente
cateto_adjascente <- x2 - x1
# vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
# (em radianos, não se esqueça)
tetha <- atan2(cateto_oposto, cateto_adjascente)
# e finalmente usamos a tangente desse ângulo para calcular
# o coeficiente angular
tangente <- tan(tetha)

# mostramos o resultado
paste("O coeficiente angular é:", tangente)

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


Portugol ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em Portugol - Como calcular Bhaskara em Portugol

Quantidade de visualizações: 1828 vezes
Como resolver uma equação do 2º grau usando Portugol

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando um algoritmo escrito na ferramenta Portugol Studio, uma das preferidas para o aprendizado de algoritmos e lógica de programação.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a &#8800; 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso algoritmo Portugol vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código Portugol (escrevi e testei no Portugol Webstudio). Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

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

// "Como resolver uma equação do 2º grau usando Portugol
programa {
  // inclui a biblioteca Matematica
  inclua biblioteca Matematica --> mat

  // função principal do programa
  funcao inicio() {
    // variáveis usadas na resolução do problema
    // os coeficientes
    real a, b, c
    // as duas raizes, a imaginaria e o discriminante
    real raiz1, raiz2, imaginaria, discriminante

    // vamos pedir para o usuário informar os valores dos coeficientes
    escreva("Valor do coeficiente a: ")
    leia(a)
    escreva("Valor do coeficiente b: ")
    leia(b)
    escreva("Valor do coeficiente c: ")
    leia(c)

    // vamos calcular o discriminante
    discriminante = (b * b) - (4 * a * c)

    // a equação possui duas soluções reais?
    se (discriminante > 0) {
      raiz1 = ((b * -1) + mat.raiz(discriminante, 2.0)) / (2 * a)
      raiz2 = ((b * -1) - mat.raiz(discriminante, 2.0)) / (2 * a)
      escreva("Duas raizes: x1 = ", raiz1, " e x2 = ", raiz2)
    }
    // a equação possui uma única solução real?
    senao se (discriminante == 0){
      raiz1 = (b * -1) / (2 * a)
      raiz2 = (b * -1) / (2 * a)
      escreva("Duas raizes iguais: x1 = ", raiz1, " e x2 = ", raiz2)
    }
    // a equação não possui solução real?
    senao{
      raiz1 = (b * -1) / (2 * a)
      raiz2 = (b * -1) / (2 * a)
      imaginaria = mat.raiz((discriminante * -1), 2.0) / (2 * a)
      escreva("Existem duas raízes complexas: ")
      escreva("x1 = ", raiz1, " + " ,imaginaria, " e x2 = ", raiz2, " - ", imaginaria)
    }
  }
}

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

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1.0 e x2 = -3.0


C# ::: Windows Forms ::: CheckBox

Como marcar ou desmarcar uma CheckBox do C# Windows Forms via código

Quantidade de visualizações: 14185 vezes
É possível marcar ou desmarcar uma CheckBox do C# Windows Forms via código. Para isso só precisamos manipular sua propriedade Checked. Se quisermos que a CheckBox seja marcada, basta fornecermos o valor true para esta propriedade. Veja:

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

private void button1_Click(object sender, EventArgs e){
  // vamos marcar a CheckBox
  checkBox1.Checked = true;
}

Se quisermos desmarcar, basta fornecermos o valor false. Veja:

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

private void button1_Click(object sender, EventArgs e){
  // vamos desmarcar a CheckBox
  checkBox1.Checked = false;
}



R ::: Dicas de Estudo e Anotações ::: Variáveis e Constantes

Como usar a função class() da linguagem R para verificar o tipo de dados de uma variável

Quantidade de visualizações: 865 vezes
Na linguagem R nós não precisamos informar o tipo de dados de uma variável no momento de sua declaração e, consequentemente, atribuição de seu valor inicial. No entanto, a linguagem permite que as variáveis, no decorrer da execução do programa, assumam outros tipos de dados.

Dessa forma, em várias situações nós podemos precisar verificar qual o tipo de dados armazenado em um variável em um determinado momento, talvez, com o propósito de não assumir riscos durante um cálculo envolvendo inteiros e decimais.

A função class() da linguagem R recebe o nome de uma variável e nos informa o seu tipo de dados. Veja um exemplo de seu uso:

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

> x <- 10 [ENTER]
> class(x) [ENTER]
[1] "numeric"
> x <- "Java" [ENTER]
> class(x) [ENTER]
[1] "character"
> x <- TRUE [ENTER]
> class(x) [ENTER]
[1] "logical"
> x <- 5L [ENTER]
> class(x) [ENTER]
[1] "integer"
> 

Execute estas linhas na janela de comandos do R ou em um script e veja como a variável x assumiu, no decorrer da execução, os tipos numeric, character, logical e integer.


Veja mais Dicas e truques de R

Dicas e truques de outras linguagens

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

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



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