![]() |
|
||||
![]() 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 |
Java para iniciantes - Como usar a classe Date em suas aplicações JavaQuantidade de visualizações: 14232 vezes |
A classe Date pertence ao pacote java.util, e, embora muitos de seus métodos estejam em desuso (Deprecated), ainda encontraremos muito código Java que usa esta classe para trabalhar com datas e horas. Veja sua posição na hierarquia de classes Java:java.lang.Object java.util.Date Esta classe implementa as interfaces Serializable, Cloneable e Comparable<Date> e suas subclasses conhecidas são Date, Time, Timestamp (todas do pacote java.sql). As informações abaixo podem ser encontradas na documentação da classe Date. A classe Date representa um momento específico no tempo, com uma precisão de milisegundos. Antes do JDK 1.1, esta classe tinha duas funções adicionais. Ela permitia a interpretação de datas como valores de ano, mês, dia, hora, minuto e segundo. Também permitia a formatação e parsing de strings de datas. Infelizmente, a API para estas funções não facilitava a internacionalização. Assim, a partir do JDK 1.1, a classe Calendar deve ser usada para converter entre campos de datas e horas e a classe DateFormat deve ser usada para formatar e fazer o parsing de strings de datas. Os métodos correspondentes a estas funções estão em desuso (Deprecated) na classe Date. Embora a classe Date tenha sido projetada para refletir a hora universal coordenada (Coordinated Universal Time - UTC), ela pode não ser capaz de fazer isso corretamente, dependendo do sistema no qual a Java Virtual Machine esteja sendo executada. A grande maioria dos sistemas operacionais modernos assume que 1 dia = 24 × 60 × 60 = 86400 segundos em todos os casos. No UTC, contudo, de dois em dois anos, aproximadamente, há um segundo extra, chamado de "leap second" (a mesma idéia do ano bissexto). O leap second é sempre adicionado como o último segundo do dia e sempre nos dias 31 de dezembro ou 30 de junho. Por exemplo, o último minuto do ano de 1995 teve 61 segundos, graças ao segundo extra que foi adicionado. A maioria dos relógios dos computadores não são precisos o suficiente para refletir a distinção do leap second. Alguns padrões de computadores são definidos em termos da hora de Greenwich (Greenwich mean time - GMT), que é o equivalente ao Universal Time (UT). GMT é o nome "civil" para o padrão, UT é o nome "científico" para o mesmo padrão. A distinção entre UTC e UT é que UTC é baseado em um relógio atômico e UT é baseado em observações astronômicas, o que para todos os propósitos práticos não traz diferença significativa. Devido à rotação da terra não ser uniforme (ela desacelera ou acelera de formas complicadas), O UT nem sempre flui uniformente. Segundos extras (Leap seconds) são inseridos conforme necessário no UTC de forma a mantê-lo dentro dos 0.9 segundos do UT1, que é uma versão do UT com algumas correções aplicadas. Há outros sistemas de datas e horas também; por exemplo, a escala de tempo pelo sistema de posicionamento global baseado em satélite (satellite-based global positioning system - GPS) é sincronizado com o UTC mas não é ajustado para os segundos extras. Em todos os métodos da classe Date que aceitam ou retornam valores de ano, mês, dia, hora, minuto e segundos, as seguintes representações são usadas:
|
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de um caractere em uma string C# usando o método IndexOf() da classe StringQuantidade de visualizações: 16957 vezes |
Nesta dica mostrarei como podemos tirar proveito da função IndexOf() da classe String do C# para contar todas as ocorrências de uma letra em uma palavra, texto ou frase. Note que, além de retornar a quantidade de ocorrências do caractere, nós vamos mostrar também o índice de cada ocorrência. Veja o código C# completo: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto muito de C#. E você?"; char letra = 'o'; // vamos pesquisar a letra "o" int quant = 0; int pos = -1, pos_ant = -1, cont = 0; while (cont < frase.Length) { pos = frase.IndexOf(letra, cont); if ((pos != pos_ant) && (pos != -1)) { Console.WriteLine("\"" + letra + "\" encontrada no índice " + pos); quant++; } cont++; // aumenta o contador pos_ant = pos; } Console.WriteLine("Encontrei " + quant + " ocorrências da " + "letra " + letra); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: "o" encontrada no índice 1 "o" encontrada no índice 4 "o" encontrada no índice 10 "o" encontrada no índice 22 Encontrei 4 ocorrências da letra o |
Python ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Como usar os argumentos padrões das funções e métodos em PythonQuantidade de visualizações: 7759 vezes |
Geralmente quando efetuamos chamadas às funções, nosso código fica responsável por fornecer os valores para os argumentos da função. Em Python é possível termos argumentos padrões, e tais argumentos já podem ter um valor pré-definido. Desta forma, a passagem dos parâmetros se torna opcional. Veja um exemplo:# função com argumento padrão def erro(msg = "Houve um erro."): print(msg) def main(): # chamada à função fornecendo o argumento erro("Erro desconhecido.") # chamada à função sem fornecer o argumento erro() if __name__== "__main__": main() Ao executarmos este exemplo nós teremos o seguinte resultado: Erro desconhecido. Houve um erro. Veja mais um exemplo: # função com argumentos padrões def volume(comprimento = 1, largura = 1, altura = 1): return (comprimento * largura * altura) def main(): # chamada à função fornecendo um argumento print(volume(3)) # chamada à função fornecendo dois argumentos print(volume(4, 5)) # chamada à função fornecendo três argumentos print(volume(4, 5, 7)) # chamada à função fornecendo nenhum argumento print(volume()) if __name__== "__main__": main() Ao executarmos este exemplo nós teremos o seguinte resultado: 3 20 140 1 É importante observar que os argumentos padrões devem estar sempre à direita dos demais argumentos. Falhar em cumprir esta exigência pode causar um erro do tipo: SyntaxError: non-default argument follows default argument |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como obter o arco-seno de um ângulo em radianos usando o método asin() da classe Math da linguagem JavaQuantidade de visualizações: 14077 vezes |
Nesta dica eu mostrarei como podemos obter o arco seno (ou arco-seno) de um determinado ângulo (em radianos, não em graus). De acordo com a seguinte definição: Se seno(x) = y, então arcoseno(y) = x O arco-seno (geralmente abreviado como arcsen, ou arcsin) é parte das funções trigonométricas inversas, ou seja, ele é o inverso do seno. Dessa forma, se o seno é a relação entre o cateto oposto ao ângulo e a hipotenusa, o arcoseno parte dessa relação para encontrar o valor do ângulo. A classe Math, do pacote java.lang, possui o seguinte método: public static double asin(double a) Este método recebe um valor double e retorna também um valor double, na faixa (-PI / 2) <= x <= (PI / 2), onde x é o valor forcecido para o método. Veja o código para o exemplo: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ double angulo = 0.5; System.out.println("O arco seno de " + angulo + " é " + Math.asin(angulo)); } } Ao executarmos este código nós teremos o seguinte resultado: O arco seno de 0.5 é 0.5235987755982989 Não se esqueça de que o resultado será em radianos. Assim, se efetuarmos o cálculo abaixo: Graus = Radianos * (180 / PI) Graus = 0.5235987755982989 * (180 / 3.14) Teremos o valor aproximado de 30.015216435571276 para o ângulo em graus. |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms Avançado - Como rolar as linhas de um TextBox para cima uma de cada vez usando a API do WindowsQuantidade de visualizações: 7653 vezes |
Em algumas situações gostaríamos de rolar para cima o conteúdo de um TextBox de múltiplas linhas uma linha de cada vez. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_LINEUP para seu parâmetro wParam. O valor do parâmetro lParam é zero. Veja um trecho de código que rola para cima o conteúdo de um TextBox uma linha de cada vez. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem. Comece adicionando a linha: using System.Runtime.InteropServices; na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método: [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); Finalmente coloque o código abaixo no evento Click de um botão: private void button2_Click(object sender, EventArgs e){ // antes de executar este exemplo certifique-se de que // a propriedade Multiline do TextBox esteja definida // como true e a propriedade ScrollBars contenha o valor // Vertical ou Both textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Vertical; // constante para a mensagem WM_VSCROLL const uint WM_VSCROLL = 0x115; // constante para o parâmetro wParam const int SB_LINEUP = 0; // handle para a caixa de texto IntPtr handle = textBox1.Handle; IntPtr wParam = (IntPtr)SB_LINEUP; IntPtr lParam = IntPtr.Zero; // vamos fazer com que o TextBox role uma linha para cima SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam); } |
PHP ::: Dicas & Truques ::: Variáveis e Constantes |
Como testar se uma variável é do tipo float (número de ponto-flutuante) usando as funções is_float() e is_real() do PHPQuantidade de visualizações: 12848 vezes |
Em algumas situações podemos querer saber se o tipo de uma variável é float, ou seja, contém um valor com casas decimais. Este teste pode ser feito com o auxílio da função is_float() ou is_real(). Esta função retorna um valor true ou false dependendendo do tipo de variável sendo testada. <?php $valor = 0.6; if(is_float($valor)){ echo 'A variável $valor é do tipo float'; } ?> Ao executar este código PHP nós teremos o seguinte resultado: A variável $valor é do tipo float |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como ordenar um array de strings em ordem alfabética em JavaScript - Vetores e matrizes em JavaScriptQuantidade de visualizações: 19620 vezes |
Nesta dica mostrarei como podemos usar a função sort() do objeto Array da linguagem JavaScript para classificar em ordem alfabética crescente, um vetor (array) de strings, ou seja, um vetor contendo palavras, frases ou texto. Veja o código completo para o exemplo: <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> var nomes = new Array(); nomes[0] = "Fernanda"; nomes[1] = "Amanda"; nomes[2] = "Márcia"; nomes[3] = "Carolina"; document.write("Valores no vetor: " + nomes + "<br>"); document.write("Ordenando o vetor agora<br>"); nomes.sort(); document.write("Valores no vetor: " + nomes); </script> </body> </html> Ao executar este código nós teremos o seguinte resultado: Valores no vetor: Fernanda,Amanda,Márcia,Carolina Ordenando o vetor agora Valores no vetor: Amanda,Carolina,Fernanda,Márcia |
Kotlin ::: Dicas de Estudo e Anotações ::: Input e Output (Entrada e Saída) |
Como usar a função readLine() do kotlin.io para ler a entrada do usuário em KotlinQuantidade de visualizações: 7679 vezes |
Podemos ler a entrada do usuário usando o método readLine() do pacote kotlin.io, que é importado automaticamente para todas as aplicações Kotlin. Esta função retorna um objeto da classe String? e aceita um valor null, ou seja, uma string vazia. Veja um exemplo no qual pedimos para o usuário informar o seu nome e em seguida exibimos uma saudação: fun main(args: Array<String>) { print("Por favor, informe o seu nome: ") // vai ler o nome e guardar na variável nome var nome = readLine() println("Olá, $nome. Bem-vindo(a) ao Kotlin.") } Ao executarmos este código nós teremos o seguinte resultado: Por favor, informe o seu nome: Osmar J. Silva Olá, Osmar J. Silva. Bem-vindo(a) ao Kotlin. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Python - Escreva um programa Python para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 1933 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: # vamos declarar e construir um vetor de 8 inteiros valores = [0, 3, 0, 5, 7, 4, 0, 9] Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Python: # método principal def main(): # vamos declarar e construir um vetor de 8 inteiros valores = [0, 3, 0, 5, 7, 4, 0, 9] # vamos mostrar o vetor na ordem original print("Vetor na ordem original:\n") for i in range(len(valores)): print("%d " % valores[i], end="") # vamos inicializar j como 0 para que ele aponte para # o primeiro elemento do vetor j = 0 # agora o laço for percorre todos os elementos do vetor, # incrementanto a variável i e deixando o j em 0 for i in range(len(valores)): # encontramos um valor que não é 0 if(valores[i] != 0): # fazemos a troca entre os elementos nos índices # i e j temp = valores[i] valores[i] = valores[j] valores[j] = temp # e avançamos o j para o elemento seguinte j = j + 1 # agora mostramos o resultado print("\n\nVetor com os zeros deslocados para o final:\n") for i in range(len(valores)): print("%d " % valores[i], end="") if __name__== "__main__": main() Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
Python ::: Python para Engenharia ::: Engenharia Civil - Instalações de Águas Pluviais |
Como calcular a área de contribuição de água da chuva de um telhado usando Python - Python para Engenharia Civil - Instalações de Águas PluviaisQuantidade de visualizações: 312 vezes |
![]() De acordo com a NBR 10844 de 1989, que trata das instalações de águas pluviais, a área de contribuição corresponde à "Soma das áreas das superfícies que, interceptando chuva, conduzem as águas para determinado ponto da instalação". As superfícies que interceptam a água da chuva podem ser, por exemplo, superfícies planas horizontais (como lajes), superfícies inclinadas (como os telhados da maioria das casas e edifícios e mostrado na figura acima) e superfícies planas verticais (como as platibandas). No caso das superficies inclinadas, ou seja, os telhados comumente encontrados, a fórmula para o cálculo da área da contribuição da água da chuva é feito por meio da seguinte fórmula: \[A = \left(a + \frac{h}{2}\right) \cdot b\] Onde: A é a área de contribuição de água da chuva do telhado considerado em m2; a é a largura do telhado em metros; b é o comprimento do telhado em metros; h é a altura do telhado em metros, conforme mostrado na figura acima. Veja agora o código Python que pede para o usuário informar a largura, a altura e o comprimento do telhado e mostra a sua área de contribuição de água da chuva: # função principal do programa def main(): # vamos pedir para o usuário informar a largura do telhado largura = float(input("Informe a largura do telhado em metros: ")) # vamos pedir para o usuário informar o comprimento do telhado comprimento = float(input("Informe o comprimento do telhado em metros: ")) # vamos pedir para o usuário informar a altura do telhado altura = float(input("Informe a altura do telhado em metros: ")) # vamos calcular a área de contribuição do telhado area = (largura + (altura / 2.0)) * comprimento # e mostramos os resultados print("\nA área de contribuição do telhado é: {0} m2".format( round(area, 5))) if __name__ == "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a largura do telhado em metros: 5 Informe o comprimento do telhado em metros: 15 Informe a altura do telhado em metros: 1.5 A área de contribuição do telhado é: 86.25 m2 |
Nossas 20 dicas & truques de programação mais populares |
Ruby - Exercício Resolvido de Ruby - Como percorrer os elementos de um array em Ruby usando a função each |
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 |
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 |