Você está aqui: C# ::: Desafios e Lista de Exercícios Resolvidos ::: C# Básico |
Como transformar dias em anos, meses, semanas e dias em C# - Exercícios Resolvidos de C#Quantidade de visualizações: 371 vezes |
Pergunta/Tarefa: Escreva um programa C# que pede para o usuário informar o número de dias e faça a conversão para anos, meses, semanas e dias. O número informado pelo usuário deve ser um inteiro positivo. Não há necessidade de considerar anos bissextos nem validar a entrada do usuário. Sua saída deverá ser parecida com: Informe o número de dias: 500 Você informou 500 dias Isso equivale a: 1 anos 4 meses 2 semanas 1 dias Veja a resolução comentada deste exercício usando C#: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; namespace Estudos { class Principal { // função principal do programa C# static void Main(string[] args) { // variáveis usadas na resolução do problema int total_dias, anos, meses, semanas, dias; // vamos ler a quantidade e dias Console.Write("Informe o número de dias: "); total_dias = Int32.Parse(Console.ReadLine()); dias = total_dias; // vamos obter a quantidade de anos anos = dias / 365; dias = dias % 365; // agora a quantidade de meses meses = dias / 30; dias = dias % 30; // agora a quantidade de semanas semanas = dias / 7; // e finalmente os dias dias = dias % 7; // e mostramos os resultados Console.WriteLine("Você informou " + total_dias + " dias\n"); Console.WriteLine("Isso equivale a:"); Console.WriteLine(anos + " anos"); Console.WriteLine(meses + " meses"); Console.WriteLine(semanas + " semanas"); Console.WriteLine(dias + " dias"); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como pesquisar um nó em uma árvore binária de busca usando um método recursivo usando JavaQuantidade de visualizações: 2146 vezes |
Nesta dica mostraremos um exemplo completo de como pesquisar um valor em uma árvore binária de busca em Java. Note que o exemplo usa apenas inteiros, mas você não terá dificuldades para modificar a classe Nó para os dados que você precisar. Código para No.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arvore_binaria; public class No { private int valor; // valor armazenado no nó private No esquerdo; // filho esquerdo private No direito; // filho direito // construtor do nó public No(int valor){ this.valor = valor; this.esquerdo = null; this.direito = null; } public int getValor() { return valor; } public void setValor(int valor) { this.valor = valor; } public No getEsquerdo() { return esquerdo; } public void setEsquerdo(No esquerdo) { this.esquerdo = esquerdo; } public No getDireito() { return direito; } public void setDireito(No direito) { this.direito = direito; } } Código para ArvoreBinariaBusca.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arvore_binaria; public class ArvoreBinariaBusca { private No raiz; // referência para a raiz da árvore // método usado para inserir um novo nó na árvore // retorna true se o nó for inserido com sucesso e false // se o elemento // não puder ser inserido (no caso de já existir um // elemento igual) public boolean inserir(int valor){ // a árvore ainda está vazia? if(raiz == null){ // vamos criar o primeiro nó e definí-lo como a raiz da árvore raiz = new No(valor); // cria um novo nó } else{ // localiza o nó pai do novo nó No pai = null; No noAtual = raiz; // começa a busca pela raiz // enquanto o nó atual for diferente de null while(noAtual != null){ // o valor sendo inserido é menor que o nó atual? if(valor < noAtual.getValor()) { pai = noAtual; // vamos inserir do lado esquerdo noAtual = noAtual.getEsquerdo(); } // o valor sendo inserido é maior que o nó atual else if(valor > noAtual.getValor()){ pai = noAtual; // vamos inserir do lado direito noAtual = noAtual.getDireito(); } else{ return false; // um nó com este valor foi encontrado } } // cria o novo nó e o adiciona como filho do nó pai if(valor < pai.getValor()){ pai.setEsquerdo(new No(valor)); } else{ pai.setDireito(new No(valor)); } } return true; // retorna true para indicar que o novo nó foi inserido } // método que permite pesquisar na árvore binária de busca public No pesquisar(int valor){ return pesquisar(raiz, valor); // chama a versão recursiva do método } // sobrecarga do método pesquisar que recebe dois // parâmetros (esta é a versão recursiva do método) private No pesquisar(No noAtual, int valor){ // o valor pesquisado não foi encontrado....vamos retornar null if(noAtual == null){ return null; } // o valor pesquisado foi encontrado? if(valor == noAtual.getValor()){ return noAtual; // retorna o nó atual } // ainda não encontramos...vamos disparar uma nova // chamada para a sub-árvore da esquerda else if(valor < noAtual.getValor()){ return pesquisar(noAtual.getEsquerdo(), valor); } // ainda não encontramos...vamos disparar uma nova // chamada para a sub-árvore da direita else{ return pesquisar(noAtual.getDireito(), valor); } } } E finalmente o código para a classe principal: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arvore_binaria; import java.util.Scanner; public class ArvoreBinariaTeste { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 5 valores na árvore for(int i = 0; i < 5; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Não foi possível inserir." + " Um elemento já contém este valor."); } } // vamos pesquisar um valor na árvore System.out.print("\nInforme o valor a ser pesquisado: "); int valorPesquisa = Integer.parseInt(entrada.nextLine()); // obtém um objeto da classe NoArvore a partir do // método pesquisar() da classe ArvoreBinariaBusca No res = arvore.pesquisar(valorPesquisa); // o valor foi encontrado? if(res != null){ System.out.println("O valor foi encontrado na árvore"); } else{ System.out.println("O valor não foi encontrado na árvore"); } System.out.println("\n"); } } |
JavaScript ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em JavaScript usando a função cos() do objeto Math - Calculadora de cosseno em JavaScriptQuantidade de visualizações: 7128 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 JavaScript. Esta função, que é parte do objeto Math, recebe um valor numérico e retorna um valor também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> // vamos calcular o cosseno de 3 números document.writeln("Cosseno de 0 = " + Math.cos(0)); document.writeln("<br>Cosseno de 1 = " + Math.cos(1)); document.writeln("<br>Cosseno de 2 = " + Math.cos(2)); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Cosseno de 0 = 1 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: |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como transformar em letras maiúsculas as iniciais de cada palavra em uma string JavaQuantidade de visualizações: 11844 vezes |
Nesta dica mostrarei como podemos combinar os métodos da classe String e da classe StringBuffer para converter em letras maiúsculas as iniciais de cada palavra de uma frase ou texto. Para isso nós vamos usar os métodos charAt(), length(), toUpperCase() e setCharAt(). Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos{ public static void main(String[] args){ // vamos criar uma string contendo a nossa frase String frase = "Programar em java é bom demais"; System.out.println("A frase original é: " + frase); // vamos converter a frase em letras minúsculas frase = frase.toLowerCase(); // agora criamos um StringBuffer contendo a frase anterior StringBuffer frase2 = new StringBuffer(frase); // um laço que percorra todos os caracteres da frase for(int i = 0; i < frase2.length(); i++){ Character letra = frase2.charAt(i); if(i == 0){ letra = Character.toUpperCase(letra); frase2.setCharAt(i, letra); } else if((i > 0) && (frase2.charAt(i - 1) == ' ')){ letra = Character.toUpperCase(letra); frase2.setCharAt(i, letra); } } // retornamos para a string frase = frase2.toString(); // e exibimos o resultado System.out.println("Resultado: " + frase); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: A frase original é: Programar em java é bom demais Resultado: Programar Em Java É Bom Demais |
Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como inserir uma determinada quantidade de espaços à esquerda de um valor numérico usando PythonQuantidade de visualizações: 7262 vezes |
Este trecho de código Python mostra como definir uma quantidade de caracteres de espaço à esquerda de um valor numérico. Este exemplo funciona com inteiros. Para ponto-flutuante você deve trocar "d" por "f". Veja o código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): valor = 54 # com três espaços print("O valor é %5d" % valor) # com nove espaços print("O valor é %11d" % valor) # com quatro espaços print("O valor é %6d" % valor) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- O valor é 54 O valor é 54 O valor é 54 |
PHP ::: Dicas & Truques ::: Data e Hora |
Como gerar um calendário mensal completo para um determinado mês e ano usando PHPQuantidade de visualizações: 1592 vezes |
Nesta dica eu mostro como podemos usar as principais funções de data e hora da linguagem PHP para montar um calendário PHP completo (com comentários e fácil de modificar). Basta passar um mês e ano e a função se encarrega do restante. Este código é muito útil em aplicações PHP para escolas, faculdades, sistemas financeiros, etc. Veja o resultado na imagem abaixo: E agora o código completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudando PHP</title> </head> <body> <?php // função que permite montar o calendário function montar_calendario($mes, $ano){ // um vetor para guardar os meses $meses = array(1 => 'Janeiro', 2 => 'Fevereiro', 3 => 'Março', 4 => 'Abril', 5 => 'Maio', 6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro', 12 => 'Dezembro'); // um vetor com os dias da semana $dias_semana = array('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'); // vamos obter o primeiro dia do calendário $primeiro_dia = mktime(0, 0, 0, $mes, 1, $ano); // obtém a quantidade de dias no mês $dias_mes = date('t', $primeiro_dia); // dia da semana que o calendário inicia (começa em 0) $dia_inicio = date('w', $primeiro_dia); // cria a tabela HTML para o calendário echo '<table border="1" cellspacing="0" cellpadding="4"> <tr><th colspan="7">'. $meses[$mes] . ' - ' . $ano . '</th> </tr> <tr><td align="center">'; echo implode('</td><td align="center">', $dias_semana); echo '</td></tr>'; // precisamos de células vazias até encontrarmos // o dia inicial da semana if($dia_inicio > 0){ for($i = 0; $i < $dia_inicio; $i++){ echo '<td> </td>'; } } // agora já podemos começar a preencher o // calendário for($dia = 1; $dia <= $dias_mes; $dia++ ){ if($dia_inicio == 0){ // vamos colorir o domingo de vermelho $estilo = ' style="color: red"'; } else{ $estilo = ''; } // vamos colocar a data de hoje sublinhada if(($dia == date("j")) && ($mes == date("n")) && ($ano == date("Y"))){ echo '<td ' . $estilo . ' align="center"><u>' . $dia . '</u></td>'; } else{ echo '<td ' . $estilo . ' align="center">' . $dia . '</td>'; } // vamos incrementar o dia de referência $dia_inicio++; // já precisamos adicionar uma nova linha na tabela? if($dia_inicio == 7){ $dia_inicio = 0; echo "</tr>"; if($dia < $dias_mes){ echo '<tr>'; } } } // fim do laço for // agora preenchemos as células restantes if($dia_inicio > 0){ for($i = $dia_inicio; $i < 7; $i++){ echo '<td> </td>'; } echo '</tr>'; } echo '</table>'; } // vamos montar o mês de março de 2021 montar_calendario(3, 2021); ?> </body> </html> |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |