Java ::: Desafios e Lista de Exercícios Resolvidos ::: Data e Hora

Exercícios Resolvidos de Java - Datas e horas - Escreva um programa Java que mostre a hora atual no formato HH:MM:SS

Quantidade de visualizações: 3150 vezes
Exercício Resolvido de Java - Datas e horas - Escreva um programa Java que mostre a hora atual no formato HH:MM:SS

Pergunta/Tarefa:

Escreva um programa Java console que mostre a hora atual no formato HH:MM:SS, ou seja, algo parecido com 23:43:15.

Dica: Você pode usar várias classes Java para obter a hora atual. Não precisa se prender à classe que usei na resolução do exercício.

Sua saída deverá ser parecida com:



Resposta/Solução:

package arquivodecodigos;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Estudos{
  public static void main(String[] args){
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");  
    LocalDateTime agora = LocalDateTime.now();  
    System.out.println("A hora atual é: " + dtf.format(agora));
  }
}



Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout

Como posicionar os componentes nas linhas e colunas de um GridBagLayout do Java Swing usando as propriedades gridx e gridy

Quantidade de visualizações: 12320 vezes
A classe GridBagConstraints, usada para definir como os componentes serão distribuidos em um GridBagLayout, possui duas variáveis que permitem definir a linha e coluna nas quais o componente será colocado. Veja-as abaixo:

gridx - Especifica a coluna na qual o componente será colocado. A primeira coluna possui o valor 0. Esta variável pode receber também o valor RELATIVE (valor padrão). Neste caso, o componente será colocado imediatamente após o último componente inserido (na horizontal).

gridy - Especifica a linha na qual o componente será colocado. A primeira linha possui o valor 0. Esta variável pode receber também o valor RELATIVE (valor padrão). Neste caso, o componente será colocado imediatamente abaixo do último componente inserido (na vertical).

Veja um trecho de código que mostra como posicionar seis botões nas linhas e colunas de um GridBagLayout:

import javax.swing.*;
import java.awt.*;

public class Estudos extends JFrame{
  public Estudos(){
    super("Como usar a classe GridBagLayout");

    // define o layout
    setLayout(new GridBagLayout());

    // cria o GridBagConstraints
    GridBagConstraints gbc = new GridBagConstraints();

    // adiciona componentes à janela
    gbc.gridy = 0; // linha
    gbc.gridx = 0; // coluna
    add(new JButton("Botão 1"), gbc);

    gbc.gridy = 0; // linha
    gbc.gridx = 1; // coluna
    add(new JButton("Botão 2"), gbc);

    gbc.gridy = 0; // linha
    gbc.gridx = 2; // coluna
    add(new JButton("Botão 3"), gbc);

    gbc.gridy = 1; // linha
    gbc.gridx = 0; // coluna
    add(new JButton("Botão 4"), gbc);

    gbc.gridy = 1; // linha
    gbc.gridx = 1; // coluna
    add(new JButton("Botão 5"), gbc);

    gbc.gridy = 1; // linha
    gbc.gridx = 2; // coluna
    add(new JButton("Botão 6"), gbc);
    
    setSize(350, 150);
    setVisible(true);    
  }

  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



C# ::: Coleções (Collections) ::: List<T>

Como usar a classe genérica List<T> do C# em suas aplicações

Quantidade de visualizações: 15701 vezes
A classe genérica List<T> da linguagem C# representa uma lista fortemente tipada de objetos que podem ser acessados por índices. Esta classe fornece métodos para pesquisar, ordenar e manipular seus elementos. Veja sua posição na hierarquia de classes da plataforma .NET:

System.Object
  System.Collections.Generic.List<T>
    System.ServiceModel.Install.Configuration.
  ServiceModelConfigurationSectionCollection
    System.ServiceModel.Install.Configuration.
  ServiceModelConfigurationSectionGroupCollection
    System.Workflow.ComponentModel.ActivityCollection
    System.Workflow.Activities.WorkflowRoleCollection
    System.Workflow.Activities.OperationParameterInfoCollection
    System.Workflow.ComponentModel.Design.
  ActivityDesignerGlyphCollection
    System.Workflow.Runtime.Tracking.ExtractCollection
    System.Workflow.Runtime.Tracking.TrackingAnnotationCollection
    System.Workflow.Runtime.Tracking.TrackingConditionCollection
    System.Workflow.Runtime.Tracking.ActivityTrackingLocationCollection
    System.Workflow.Runtime.Tracking.UserTrackingLocationCollection
    System.Workflow.Runtime.Tracking.ActivityTrackPointCollection
    System.Workflow.Runtime.Tracking.UserTrackPointCollection
    System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection

Esta classe implementa também as interfaces IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection e IEnumerable.

A classe List<T> é a equivalente genérica da classe ArrayList. Ela implementa a interface genérica IList<T> usando um array (matriz) cujo tamanho é dinamicamente aumentado de acordo com a necessidade. Esta classe usa tanto um comparador de igualdade quanto um de ordenação.

Os métodos tais como Contains(), IndexOf(), LastIndexOf() e Remove() usam um comparador de igualdade para os elementos da lista. O comparador de igualdade padrão para o tipo T é definido segundo as seguintes regras: Se o tipo T implementar a interface genérica IEquatable<T>, então o comparador de igualdade é o método Equals(T) dessa interface. Caso contrário, o comparador de igualdade padrão é Object.Equals(Object).

Os métodos tais como BinarySearch() e Sort() usam um comparador de ordenação para os elementos da lista. O comparador padrão para o tipo T é definido da seguinte forma: Se o tipo T implementar a interface genérica IComparable<T>, então o comparador padrão é o método CompareTo(T) dessa interface. Caso contrário, se o tipo T implementar a interface não-genérica IComparable, então o comparador padrão é o método CompareTo(Object) dessa interface. Se o tipo T não implementar nenhuma destas duas interfaces, então não haverá comparador padrão, e um comparador ou delegate de comparação deve ser fornecido explicitamente.

Uma lista List<T> não fornece garantias quanto à sua ordenação. Devemos ordená-la por conta própria antes de efetuar algumas operações (tais como BinarySearch) que exigem que a List<T> esteja ordenada. Os elementos em uma coleção do tipo List<T> podem ser acessados usando índices (que começam a partir de 0). Uma List<T> aceita o valor null como valor válido para tipos referência e aceita elementos duplicados.

Em relação à performance, a documentação do .NET afirma que, embora List<T> e ArrayList possuam funcionalidade semelhante, a classe List<T> possui uma performance melhor na maioria dos casos, além de ser type safe (oferece segurança de tipos).

Veja um trecho de código no qual criamos uma List<T> de inteiros, inserimos alguns valores e usamos o laço foreach para percorrer a lista e exibir os valores dos elementos:

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<int> valores = new List<int>();

  // vamos inserir três valores na lista
  valores.Add(5);
  valores.Add(2);
  valores.Add(9);

  // vamos usar o laço foreach para percorrer os elementos
  // na lista
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos pausar a execução
  Console.ReadKey();
}



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

Como testar se um ano é bissexto em C# usando a função IsLeapYear() da classe DateTime

Quantidade de visualizações: 14440 vezes
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:

static void Main(string[] args){
  // vamos verificar se o ano 2008
  // é bissexto
  int ano = 2008;

  if(DateTime.IsLeapYear(ano)){
    Console.WriteLine("O ano informado é bissexto");
  }
  else{
    Console.WriteLine("O ano informado NÃO é bissexto");
  }

  // pausa o programa
  Console.ReadKey();
}

Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999.


Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como converter radianos em graus na linguagem Java

Quantidade de visualizações: 3394 vezes
Todas os métodos e funções trigonométricas em Java recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin() da classe Math. Esta função recebe o ângulo em radianos e retorna o seu seno.

No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo:

\[Graus = Radianos \times \frac{180}{\pi}\]

Agora veja como esta fórmula pode ser escrita em código Java:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    double radianos = 1.5;
    double graus = radianos * (180 / Math.PI);
 
    System.out.println(radianos + " radianos convertidos para " +
      "graus é " + graus);

    System.exit(0);
  }
}

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

1.5 radianos convertidos para graus é 85.94366926962348

Para fins de memorização, 1 radiano equivale a 57,2957795 graus.


Java ::: Dicas & Truques ::: Arquivos e Diretórios

Como ler o conteúdo de um arquivo texto em Java usando as classes BufferedReader, FileReader e a função readLine()

Quantidade de visualizações: 127 vezes
Nesta dica mostrarei como podemos combinar as classes BufferedReader, FileReader e a função readLine() para ler o conteúdo de um arquivo texto em Java, uma linha de cada vez.

Veja o código completo para o exemplo:

package estudos;

import java.io.*;

public class Estudos {
  public static void main(String[] args) {
    try {
      BufferedReader in = new BufferedReader(
        new FileReader("c:\\estudos_java\\alunos.txt"));
      String linha;
      while((linha = in.readLine()) != null){
        System.out.println(linha);
      }
      in.close();
    } 
    catch (IOException e){
      System.out.println("Houve um erro: " + e.getMessage());
    }

    System.out.println();
  }
}

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

Alberto
Maria
Fernanda
Josias


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

Como calcular juros compostos e montante usando Delphi

Quantidade de visualizações: 906 vezes
O regime de juros compostos é o mais comum no sistema financeiro e portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte.

Chamamos de capitalização o momento em que os juros são incorporados ao principal. Após três meses de capitalização, temos:

1º mês: M = P .(1 + i)
2º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i)
3º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) x (1 + i)

Simplificando, obtemos a fórmula:

M = P . (1 + i) ^ n

Importante: a taxa i tem que ser expressa na mesma medida de tempo de n, ou seja, taxa de juros ao mês para n meses.

Para calcularmos apenas os juros basta diminuir o principal do montante ao final do período:

J = M - P

Vejamos um exemplo:

Considerando que uma pessoa empresta a outra a quantia de R$ 2.000,00, a juros compostos, pelo prazo de 3 meses, à taxa de 3% ao mês. Quanto deverá ser pago de juros?

Veja o código Delphi para a resolução:

procedure TForm1.Button1Click(Sender: TObject);
var
  principal, taxa, juros, montante: double;
  meses: integer;
begin
  principal := 2000.00;
  taxa := 0.03;
  meses := 3;

  montante := principal * power((1 + taxa), meses);
  juros := montante - principal;

  ShowMessage('O total de juros a ser pago é: '
    + FloatToStr(juros));
  ShowMessage('O montante a ser pago é: '
    + FloatToStr(montante));
end;

Um outra aplicação interessante é mostrar mês a mês a evolução dos juros.

procedure TForm1.Button1Click(Sender: TObject);
var
  principal, taxa, juros, montante, anterior: double;
  i, meses: integer;
begin
  principal := 2000.00;
  taxa := 0.03;
  meses := 3;
  anterior := 0.0;

  for i := 1 to meses do
    begin
      montante := principal * power((1 + taxa), i);
      juros := montante - principal - anterior;

      anterior := anterior + juros;

      Memo1.Lines.Add('Mês: ' + IntToStr(i) + ' - Montante: '
        + FloatToStr(montante) + ' - Juros: ' + FloatToStr(juros));
    end;
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


C# ::: Dicas & Truques ::: Matemática e Estatística

Como gerar um número aleatório usando a função Next() da classe Random do C#

Quantidade de visualizações: 23833 vezes
Este exemplo mostra como gerar números randômicos usando C#. Para isso nós vamos usar o método Next() da classe Random. Este método retorna um número inteiro maior ou igual a zero e menor que a constante MaxValue (cujo valor é 2.147.483.647).

Observe que cada chamada a Next() gera um número aleatório diferente, não havendo a necessidade de criar um novo objeto da classe Random para cada número desejado. Eis o código:

static void Main(string[] args){
  // cria um objeto da classe Random
  Random rnd = new Random();
  
  // gera o número aleatório na faixa
  // 0 até MaxValue (2.147.483.647)
  int numero = rnd.Next();

  // exibe o resultado
  Console.Write("O número gerado foi: {0}", numero);

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

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

O número gerado foi: 504


Python ::: Python para Engenharia ::: Engenharia Civil - Concreto, Concreto Armado e Concretos Especiais

Cálculo de estribos em vigas de concreto armado usando Python - Verificação da compressão diagonal do concreto

Quantidade de visualizações: 202 vezes
No dimensionamento de vigas de concreto armado à força cortante, ou seja, aos esforços de cisalhamento, nós adotamos, de acordo com recomendações da ABNT NBR 6118 (Projeto de estruturas de concreto armado), o modelo de treliça clássica de Ritter-Mörsh, na qual é suposto que uma carga aplicada num ponto qualquer de uma viga de concreto armado, chegue até os apoios percorrendo o caminho de uma treliça. Recordemos ainda que na treliça clássica de Ritter-Mörsh o ângulo de inclinação das bielas comprimidas é igual à 45°.

Neste modelo de treliça, a compressão do banzo superior é resistida pelo concreto, enquanto a tração do banzo inferior é resistida pelo aço. As diagonais comprimidas também são resistidas pelo concreto, cabendo ao aço (estribos) o papel de reforçar as diagonais tracionadas. Notem que usei "reforçar", pois o concreto oferece também uma parcela de resistência à tração nestas diagonais.

Sendo assim, um dos primeiros passos no cálculo e detalhamento das armaduras transversais, ou seja, a armadura de cisalhamento de uma viga de concreto armado, é a verificação da compressão diagonal do concreto. Neste passo nós verificamos se as bielas comprimidas resistem ao esforço cortante solicitante de projeto VSd.

A verificação da compressão diagonal do concreto no Modelo I (no qual o ângulo &#945;, que é o ângulo entre os estribos e o eixo longitudinal da viga, pode ser considerado entre 45º e 90º) pode ser realizada por meio da seguinte fórmula:

\[V_\text{Rd2} = 0,27 \cdot \alpha_\text{v2} \cdot f_\text{cd} \cdot b_w \cdot d \]
Onde:

fcd é a resistência de cálculo do concreto, em kN/cm2;

bw é a largura da viga, em centímetros;

d é a altura útil da viga em centímetros;

Já o &#945;v2 pode ser calculado pela seguinte fórmula:

\[\alpha_\text{v2} = 1 - \frac{f_\text{ck}}{250}\]
Onde:

fck é a resistência característica do concreto, em Mpa.

Veja agora o código Python :

# método principal
def main():
  # vamos pedir para o usuário informar a altura da viga
  altura = float(input("Informe a altura h da viga em cm: "))
   
  # vamos pedir para o usuário informar a largura da viga
  largura = float(input("Informe a largura bw da viga em cm: "))

  # vamos calcular a altura útil da viga
  # aqui eu usei 0.9 mas alguns engenheiros usam 0.95
  altura_util = 0.9 * altura
  
  # vamos pedir para o usuário informar o FCK do concreto
  fck = float(input("Informe o FCK do concreto em Mpa: "))

  # vamos ler o coeficiente de minoração do concreto
  yc = float(input("Informe o coeficiente de minoração yc: "))   

  # vamos solicitar o esforço cortante solicitante VSk
  VSk = float(input("Informe o esforço cortante solicitante em kN: ")) 

  # vamos ler o coeficiente de majoração das cargas
  yf = float(input("Informe o coeficiente de majoração yf: "))

  # vamos calcular o esforço cortante solicitante de cálculo VSd
  VSd = yf * VSk

  # agora vamos calcular o fcd do concreto
  fcd = fck / yc

  # vamos calcular o alfa v2
  av2 = 1 - (fck / 250)

  # finalmente vamos calcular o VRd2 no Modelo de Cálculo I
  VRd2 = 0.27 * av2 * (fcd / 10) * largura * altura_util 

  # vamos mostrar os resultados
  print("\n------ RESULTADOS -----------------------------")
  print("O fcd do concreto é: {0} Mpa".format(round(fcd, 4)))
  print("O valor de av2 é: {0}".format(round(av2, 4)))
  print("O valor de VRd2 é: {0} kN".format(round(VRd2, 4)))
  print("O valor de VSd é: {0} kN".format(round(VSd, 4)))

  # vamos testar se as bielas de compressão não serão esmagadas
  if (VSd <= VRd2):
    print("VSd <= VRd2: As bielas de compressão RESISTEM")
  else:
    print("VSd > VRd2: As bielas de compressão NÃO RESISTEM")

if __name__ == "__main__":
  main()

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

Informe a altura h da viga em cm: 40
Informe a largura bw da viga em cm: 20
Informe o FCK do concreto em Mpa: 25
Informe o coeficiente de minoração yc: 1.4
Informe o esforço cortante solicitante em kN: 75
Informe o coeficiente de majoração yf: 1.4

------ RESULTADOS -----------------------------
O fcd do concreto é: 17.8571 Mpa
O valor de av2 é: 0.9
O valor de VRd2 é: 312.4286 kN
O valor de VSd é: 105.0 kN
VSd <= VRd2: As bielas de compressão RESISTEM


JavaScript ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string para letras maiúsculas em JavaScript usando a função toUpperCase() do objeto String - JavaScript para iniciantes

Quantidade de visualizações: 105 vezes
A função toUpperCase() do objeto String da linguagem JavaScript nos permite transformar todos os caracteres de uma palavra, frase ou texto em letras maiúsculas.

Veja o código completo para o exemplo:

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
 
<script type="text/javascript">
  var frase = "Veja Esta Frase.";
  document.writeln(frase);  
  frase = frase.toUpperCase();
  document.writeln("<br>" + frase);
</script>
 
</body>
</html>

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

Veja Esta Frase.
VEJA ESTA FRASE.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

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



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