Você está aqui: Teste de Conhecimento em Hidrostática |
|
![]() |
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: 487 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: <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> |
VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: VB.NET Básico |
Exercício Resolvido de VB.NET - Um programa VB.NET que receberá a duração de um evento expresso em segundos e exiba-o expresso em horas, minutos e segundosQuantidade de visualizações: 575 vezes |
Pergunta/Tarefa: Escreva um programa VB.NET que receberá a duração de um evento expresso em segundos e exiba-o expresso em horas, minutos e segundos. Seu programa deverá exibir uma saída parecida com: Informe a duração do evento em segundos: 3712 Duração do evento: 01:01:52 Veja a resolução comentada deste exercício usando VB.NET: Imports System Module Program ' função principal do programa VB.NET Sub Main(args As String()) ' vamos solicitar a duração do evento em segundos Console.Write("Informe a duração do evento em segundos: ") Dim duracao_segundos As Integer = Int32.Parse(Console.ReadLine()) ' vamos obter a quantidade de horas do evento Dim horas As Integer = duracao_segundos \ 3600 ' vamos obter os minutos Dim minutos As Integer = (duracao_segundos \ 60) Mod 60 ' vamos obter os segundos restantes Dim segundos As Integer = duracao_segundos Mod 60 ' vamos exibir a duração do evento em horas, minutos e segundos Console.Write("Duração do evento: {0}:{1}:{2}", horas.ToString("D2"), minutos.ToString("D2"), segundos.ToString("D2")) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module |
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: 2506 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: 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: 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: 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"); } } |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como obter a quantidade de caracteres em uma palavra ou texto usando a função Length() do DelphiQuantidade de visualizações: 21082 vezes |
Em algumas situações precisamos saber o tamanho de uma string, ou seja, quantos caracteres ela contém. Isso pode ser feito por meio da função Length(). Veja:procedure TForm1.Button1Click(Sender: TObject); var nome: string; // declara uma variável do tipo string tamanho: integer; // declara uma variável do tipo inteiro begin nome := 'Osmar'; // vamos obter a quantidade de caracteres na string tamanho := Length(nome); // mostra o resultado ShowMessage('A string contém : ' + IntToStr(tamanho) + ' caracteres'); end; Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C++ para iniciantes - Como usar a instrução switch em C++Quantidade de visualizações: 10571 vezes |
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários else if. Desta forma, cada possibilidade é testada em um bloco case. Veja um exemplo: #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int valor = 4; switch(valor){ case 0: cout << "Valor e igual a 0" << endl; break; case 1: cout << "Valor e igual a 1" << endl; break; case 2: cout << "Valor é igual a 2" << endl; break; default: cout << "Nenhuma das anteriores" << endl; } system("PAUSE"); return EXIT_SUCCESS; } Veja que, se nenhuma das condições testadas em um bloco case for satisfatória, a parte default da instrução switch será executada. A variável fornecida para uma instrução switch pode ser de qualquer tipo integral, ou de um tipo criado pelo usuário mas que pode ser convertido para um tipo integral (mesmo que seja uma conversão forçada - cast). |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
JavaScript - Como retornar uma coleção de nós filhos de um elemento HTML usando a propriedade childNodes do DOM do JavaScript JavaScript - Como exibir apenas dois dígitos após o ponto decimal em JavaScript usando a função toFixed() do objeto Number |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |