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:SSQuantidade 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 gridyQuantidade 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çõesQuantidade 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 DateTimeQuantidade 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 JavaQuantidade 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 DelphiQuantidade 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 concretoQuantidade 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 α, 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 α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 iniciantesQuantidade 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. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizada |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |