Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Java ::: Dicas & Truques ::: Data e Hora

Como usar a classe Calendar do Java em suas aplicações - Java para iniciantes

Quantidade de visualizações: 21682 vezes
[Baseado na documentação Java] - A classe Calendar (pacote java.util) é uma classe abstrata (que não pode ser instanciada usando new) que fornece métodos para efetuar a conversão entre um momento específico no tempo e um conjunto de campos de calendário, tais como YEAR, MONTH, DAY_OF_MONTH, HOUR e assim por diante, e para manipular tais campos, por exemplo, obter a data da próxima semana. Um momento no tempo pode ser representado por um valor de milisegundos que é a diferença entre a data atual e a zero hora do dia 01/01/1970 (Epoch, January 1, 1970 00:00:00.000 GMT (Gregorian)).

Veja a posição desta classe na hierarquia de classes Java:

java.lang.Object
  java.util.Calendar
A classe Calendar implementa as interfaces Serializable, Cloneable e Comparable<Calendar> e sua subclasse conhecida é GregorianCalendar.

Esta classe também fornece campos e métodos adicionais para a implementação de um sistema concreto de calendário fora do pacote java.util. Estes campos e métodos são definidos como protected.

Assim como as demais classes sensitivas à localização (locale-sensitive), a classe Calendar fornece um método de classe chamado getInstance() que nos permite obter um objeto desta classe. Este método retorna um objeto Calendar cujos campos de calendário são inicializados com a data e hora atual. Veja:

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    Calendar agora = Calendar.getInstance();
    System.out.println(agora.toString());
  } 
}

Experimente executar este programa e terá um resultado parecido com:

java.util.GregorianCalendar[time=1228937781807,
areFieldsSet=true,areAllFieldsSet
=true,lenient=true,zone=sun.util.calendar.ZoneInfo
[id="America/Sao_Paulo",offset
=-10800000,dstSavings=3600000,useDaylight=true,
transitions=129,lastRule=java.uti
l.SimpleTimeZone[id=America/Sao_Paulo,offset=
-10800000,dstSavings=3600000,useDay
light=true,startYear=0,startMode=3,startMonth=9,
startDay=15,startDayOfWeek=1,sta
rtTime=0,startTimeMode=0,endMode=3,endMonth=1,
endDay=15,endDayOfWeek=1,endTime=0
,endTimeMode=0]],firstDayOfWeek=2,
minimalDaysInFirstWeek=1,ERA=1,YEAR=2008,MONTH
=11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=
10,DAY_OF_YEAR=345,DAY_OF_WEEK=
4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=5,HOUR_OF_DAY
=17,MINUTE=36,SECOND=21,MILLI
SECOND=807,ZONE_OFFSET=-10800000,DST_OFFSET=3600000]


Como podemos ver, todas as informações relativas à data e hora que poderemos precisar estão contidas neste resultado.

Um objeto Calendar pode produzir todos os valores de todos os campos de calendário necessários para implementar a formatação de data e hora para uma determinada língua e estilo de calendário (por exemplo, Japanese-Gregorian, Japanese-Traditional). A classe Calendar define a faixa de valores retornados por determinados campos de calendário, assim como seus significados. Por exemplo, o primeiro mês do sistema de calendário tem o valor MONTH == JANUARY para todos os calendários. Outros valores são definidos por subclasses concretas, tais como ERA.


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

Como calcular o Momento Mínimo de uma viga de concreto armado usando Python - Python para Engenharia Civil e Cálculo Estrutural

Quantidade de visualizações: 247 vezes
A ABNT NBR 6118 (Projeto de estruturas de concreto armado) define que todas as vigas, independente de suas dimensões e momentos solicitantes, precisam apresentar uma taxa mínima de armadura de tração. O concreto possui excelente resistência à compressão, porém, sua resistência à tração é muito baixa, ficando em torno de 10% do valor de sua resistência à compressão.

A NBR 6118 lista, como primeira exigência, uma taxa mínima absoluta de 0,15% de armadura longitudinal para as vigas de concreto armado. A segunda exigência é calcular a área de armadura mínima a partir do Mdmin, que é o momento mínimo (de projeto) a ser considerado no dimensionamento.

Dessa forma, após calcularmos o momento mínimo Mdmin, só precisamos calcular a área de aço correspondente a este momento.

A fórmula do momento mínimo para as vigas de concreto armado é:

\[M_\text{dmin} = 0,8 \cdot W_\text{0} \cdot f_\text{ctk,sup}\]
Onde:

Mdmin é o momento mínimo de projeto a ser considerado, em kN.m (ou kN.cm dependendo da necessidade);

fctk,sup é o limite superior da resistência à tração média do concreto, em kN.cm2. Em outra dica desta seção eu mostrei como o fctk,sup é calculado;

W0 é o módulo de resistência da seção transversal da viga, em m3.

Já o Módulo de Resistência da Seção (para seções retangulares), é calculado pela seguinte fórmula:

\[W_\text{0} = \frac{b \cdot h^2}{6}\]
Onde:

W0 é o módulo de resistência da seção transversal da viga, em cm3;

b é a largura da viga em centímetros;

h é a altura da viga em centímetros.

Veja agora o código Python que pede para o usuário informar o FCK do concreto e as dimensões da viga e calcula o fctk,sup, o W0 e finalmente o Mdmin solicitante para o cálculo da armadura longitudinal mínima da viga:

# vamos importar o módulo Math
import math

# função principal do programa
def main():
  # vamos pedir para o usuário informar o FCK do concreto
  fck = float(input("Informe o FCK do concreto em Mpa: "))

  # vamos ler a largura da viga
  bw = float(input("Informe a largura bw da viga em cm: "))
  
  # vamos ler a altura da viga
  h = float(input("Informe a altura h da viga em cm: "))
  
  # agora vamos calcular a resistência à tração média
  # do concreto
  fctk_m = 0.3 * math.pow(fck, 2.0 / 3.0)

  # vamos calcular o limite superior
  fctk_sup = 1.3 * fctk_m

  # vamos calcular o módulo de resistência da seção
  w0 = (bw * math.pow(h, 2) / 6.0) 

  # agora já podemos calcular o momento mínimo
  mdmin = 0.8 * w0 * (fctk_sup / 10.0)

  # e mostramos os resultados
  print("\nO fctk,sup é: {0} Mpa ({1} kN/cm2)".format(round(fctk_sup, 5),
    round(fctk_sup / 10.0, 5)))
  print("O módulo de resistência da seção W0 é: {0} cm3 ({1} m3)".format(
    round(w0, 5), round(w0 / 1000000.0, 5)))
  print("O momento mínimo Mdmin é: {0} kN.cm ({1} kN.m)".format(
    round(mdmin, 5), round(mdmin / 100.0, 5)))

if __name__ == "__main__":
  main()

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

Informe o FCK do concreto em Mpa: 30
Informe a largura bw da viga em cm: 20
Informe a altura h da viga em cm: 50

O fctk,sup é: 3.76541 Mpa (0.37654 kN/cm2)
O módulo de resistência da seção W0 é: 8333.33333 cm3 (0.00833 m3)
O momento mínimo Mdmin é: 2510.2724 kN.cm (25.10272 kN.m)


Java ::: Pacote java.lang ::: StringBuffer

Curso completo de Java - Como usar a classe StringBuffer da linguagem Java

Quantidade de visualizações: 9367 vezes
A classe StringBuffer, no pacote java.lang, representa uma sequencia de caracteres mutável e segura em relação a threads. Um objeto StringBuffer é parecido com uma String, com a diferença que um StringBuffer pode ser modificado in-place, ou seja, modificações em seu conteúdo não geram uma nova cópia, como acontece com objetos da classe String.

Veja a posição desta classe na hierarquia de classes Java:

java.lang.Object
  java.lang.StringBuffer
A classe StringBuffer implementa as interfaces Serializable, Appendable e CharSequence.

A qualquer momento um StringBuffer contém uma sequencia de caracteres em particular, mas o tamanho e o conteúdo da sequencia pode ser alterado por meio de certas chamadas de métodos.

Objetos StringBuffer são seguros para acesso em um ambiente de múltiplas threads. Os métodos são sincronizados (synchronized) onde necessário de forma a garantir que todas as operações em uma instância em particular se comportem como se estivessem em ordem serial, ou seja, sejam consistentes com a ordem das chamadas de métodos feitas por cada uma das threads envolvidas.

As operações principais de um StringBuffer são os métodos append() e insert(), que são sobrecarregados para aceitar dados de qualquer tipo. Cada um destes métodos converte a informação fornecida em string e então acrescenta ou insere os caracteres desta string no string buffer. O método append() sempre adiciona os caracteres no final do buffer. O método insert(), por sua vez, adiciona os caracteres em um determinado ponto.

Por exemplo, se z se refere a um objeto string buffer cujo conteúdo é "start", então a chamada de método z.append("le") faria com que o string buffer tivesse agora ""startle"", enquanto z.insert(4, "le") alteraria o conteúdo do string buffer para "starlet".

Em geral, se sb se refere a uma instância de StringBuffer, então sb.append(x) tem o mesmo efeito que sb.insert(sb.length(), x).

Sempre que uma operação ocorre envolvendo uma sequencia de fonte (por exemplo, adicionar ou inserir a partir de uma outra sequencia), esta classe sincroniza somente o string buffer no qual a operação está sendo feita.

Todo string buffer possui uma capacidade (capacity). Enquanto o comprimento da sequencia de caracteres contida no string buffer não exceder a capacidade do mesmo, não há necessidade de alocar uma nova matriz interna de buffer. Se o buffer interno for sobrecarregado, ele será automaticamente expandido. A partir do Java 5, esta classe foi suplementada com uma classe equivalente criada para o uso em ambiente de thread única: StringBuilder. A classe StringBuilder deve ser usada em vez de StringBuffer, uma vez que ela suporta as mesmas operações mas é mais rápida por não executar sincronização.


C++ ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar true e false em C e C++

Quantidade de visualizações: 14819 vezes
Em praticamente todas as linguagens de programação nós encontramos expressões condicionais que definem o fluxo de execução. Expressões condicionais são aquelas que, quando avaliadas, resultam em um valor true (verdadeiro) ou false (falso).

Muitas linguagens de programação possuem um tipo booleano que armazena os valores true ou false. Enquanto o C++ possui o tipo bool, o C possui uma forma bem interessante de definir true ou false.

Em C, um valor true é qualquer valor diferente de 0, incluindo numeros negativos. Veja:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int pode = 1; // verdadeiro
  int nao_pode = 0; // falso

  if(pode)
    printf("Teste resultou verdadeiro\n\n");

  if(!nao_pode)
    printf("Teste resultou verdadeiro\n\n");

  system("PAUSE");
  return 0;
}

Lembre-se então. False em C é o valor zero. Qualquer outro valor é true.

Embora C++ já possua o tipo bool, é possível usar a abordagem do zero para false e qualquer outro valor para true em C++ também. Você verá muito código legado usando este artifício. Quer ver algo interessante agora? Execute o seguinte código C++:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  bool pode = true;
  bool nao_pode = false;

  cout << pode << "\n";
  cout << nao_pode << "\n\n";

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

Nos compiladores que obedecem o C++ padrão você verá os valores 1 e 0 serem impressos.


VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço For do VB.NET - Apostila VB.NET para iniciantes

Quantidade de visualizações: 13605 vezes
O laço For...Next é usado quando sabemos exatamente a quantidade de vezes que o bloco de códigos deverá ser executado. Veja um exemplo no qual contamos de 1 a 10:

For valor As Integer = 1 To 10 Step 1
  Console.WriteLine(valor)
Next

Veja que o laço For...Next é composto de três partes muito importantes:

a) Inicialização da variável de controle:

For valor As Integer = 1

Aqui é onde definimos o valor inicial da variável de controle. No exemplo nós fizemos a declaração da variável no cabeçalho do laço, mas ela pode ser declarada externamente sem nenhum problema.

b) Limite do valor da variável de controle:

To 10

A palavra-chave To permite definir o valor máximo que a variável de controle pode alcançar.

c) Incremento da variável de controle:

Step 1

A palavra-chave Step permite definir o valor que servirá de incremento para a variável de controle. No exemplo usamos 1, mas poderia ser qualquer valor inteiro.

Veja um exemplo de laço For...Next no qual exibimos os números pares de 0 a 20:

For numero As Integer = 0 To 20 Step 2
  Console.WriteLine(numero)
Next

E se quisermos contar de trás para frente? Fácil, basta fornecer um valor negativo para o incremento. Veja:

For numero As Integer = 10 To 0 Step -1
  Console.WriteLine(numero)
Next



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

Como calcular o cosseno de um ângulo em Dart usando o método cos() da biblioteca Math - Calculadora de cosseno em Dart

Quantidade de visualizações: 916 vezes
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula:

\[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \]

Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Dart. Esta método, que faz parte da biblioteca Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

// vamos importar a biblioteca dart:math
import "dart:math";

void main(){
  print("Cosseno de 0 = " + cos(0).toString());
  print("Cosseno de 1 = " + cos(1).toString());
  print("Cosseno de 2 = " + cos(2).toString());
}

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

Cosseno de 0 = 1.0
Cosseno de 1 = 0.5403023058681398
Cosseno de 2 = -0.4161468365471424

Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo:




Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercício Resolvido de Portugol - Um programa que lê três números inteiros e mostra o maior

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

Faça um algoritmo em Portugol que solicita três números inteiros e mostra o maior deles. Exiba uma mensagem caso os três números não forem diferentes. Sua saída deverá ser parecida com:

Informe o primeiro número: 5
Informe o segundo número: 8
Informe o terceiro número: 3
O segundo número é o maior
Resposta/Solução:

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

// Um programa que lê três números inteiros e mostra o maior
programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    inteiro num1, num2, num3 
    
    // vamos solicitar os três números inteiros
    escreva("Informe o primeiro número: ")
    leia(num1)
    escreva("Informe o segundo número: ")
    leia(num2)
    escreva("Informe o terceiro número: ")
    leia(num3)
    
    // o primeiro número é o maior?
    se (num1 > num2 e num1 > num3) {
      escreva("O primeiro número é o maior")
    }
    senao {
      // o segundo número é o maior?
      se (num2 > num1 e num2 > num3) {
        escreva("O segundo número é o maior")
      }
      senao{
        // o terceiro número é o maior?
        se (num3 > num1 e num3 > num2) { 
          escreva("O terceiro número é o maior")
        }
        // os número não são diferentes
       senao {
         escreva("Os três números não são diferentes")
       }
    }
  }
}



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

Como obter o valor de PI em Java usando a constante Math.PI

Quantidade de visualizações: 21557 vezes
A constante PI, ou simplesmente PI, é o valor da razão entre a circunferência de qualquer círculo e seu diâmetro. Veja a figura abaixo para melhor entendimento:



Em Java, o PI pode ser obtido por meio do uso da constante PI da classe Math. Seu valor é algo como: 3,14159...

Veja o trecho de código abaixo:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    // obtém e exibe o valor da constante PI
    System.out.println("O valor de PI é: " + Math.PI);

    System.exit(0);
  }
}

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

O valor de PI é: 3.141592653589793


Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string em um valor inteiro em Ruby usando a função to_i da classe String

Quantidade de visualizações: 11529 vezes
Em algumas situações precisamos transformar um valor contido em uma string em um valor numérico do tipo inteiro. Em Ruby podemos fazer isso usando o método to_i da classe String.

Veja:

# um número inteiro declarado como string
valor = "34"

# vamos somar este número a um outro
resultado = 30 + valor.to_i

# exibe o resultado
puts resultado

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

64


VB.NET ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a equação reduzida da reta em VB.NET dados dois pontos pertencentes à reta

Quantidade de visualizações: 454 vezes
Nesta dica de VB.NET veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código VB.NET completo para esta tarefa:

Imports System

Module Program
  ' função principal do programa VB.NET
  Sub Main(args As String())
    ' vamos ler as coordenadas do primeiro ponto
    Console.Write("Coordenada x do primeiro ponto: ")
    Dim x1 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Coordenada y do primeiro ponto: ")
    Dim y1 As Double = Double.Parse(Console.ReadLine())

    ' vamos ler as coordenadas do segundo ponto
    Console.Write("Coordenada x do segundo ponto: ")
    Dim x2 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Coordenada y do segundo ponto: ")
    Dim y2 As Double = Double.Parse(Console.ReadLine())

    Dim sinal As String = "+"
    ' vamos calcular o coeficiente angular da reta
    Dim m As Double = (y2 - y1) / (x2 - x1)
    ' vamos calcular o coeficiente linear
    Dim n As Double = y1 - (m * x1)

    ' coeficiente linear menor que zero? O sinal será negativo
    If n < 0 Then
      sinal = "-"
      n = n * -1
    End If

    ' mostra a equação reduzida da reta
    Console.WriteLine("Equação reduzida: y = " & m & "x" _
      & " " & sinal & " " & n)

    Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub

End Module

Ao executar este código VB.NET nós teremos o seguinte resultado:

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

>> y = (-0.75 * 3) + 8.75
y = 6.5000

temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.

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


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 Apenas R$ 32,90


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