Você está aqui: Cards de Hidrostática |
||
|
||
|
|
||
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como obter o nó com maior valor em uma árvore binária de busca usando JavaQuantidade de visualizações: 2639 vezes |
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como obter o nó com o maior valor em uma árvore binária. O truque aqui é descer o lado direito da árvore até o último nó. Veja:
// método que permite retornar o maior nó de uma árvore
// binária de busca
public No retornarMaiorElemento(){
// chama a versão recursiva do método
return retornarMaiorElemento(raiz);
}
public No retornarMaiorElemento(No no){
if((no == null) || (no.getDireito() == null)){
return no; // ponto de parada
}
else{ // vamos continuar descendo do lado direito
return retornarMaiorElemento(no.getDireito());
}
}
Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste:
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 obter o maior elemento na árvore binária de busca
System.out.println("\nO maior nó é: " +
arvore.retornarMaiorElemento().getValor());
System.out.println("\n");
}
}
Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 6 Informe um valor inteiro: 13 Informe um valor inteiro: 64 Informe um valor inteiro: 21 Informe um valor inteiro: 3 O maior nó é: 64 |
JavaScript ::: Dicas & Truques ::: Validação de Formulários |
Validação de formulários em JavaScript - Como validar um formulário contendo usuário e senha em JavaScriptQuantidade de visualizações: 34542 vezes |
|
A validação de formulários em JavaScript é uma das primeiras técnicas que devemos aprender, pois ela avita a perda de tempo que ocorre com a validação somente do lado do servidor (não se esqueça: as duas são necessárias). Ao validar no navegador, o usuário já vai as devidas correções sem ter que esperar o processamento de seus dados para, só então, ser comunicado de que alguma informação está incorreta. Assim, nesta dica, mostrarei como podemos validar um nome de usuário e senha em JavaScript. Deixei o exemplo bem mais, mas você pode melhorá-lo, adicionando até expressões regulares para ampliar as situações que podem ocorrer. O código abaixo vai gerar o seguinte formulário HTML: ![]() E agora o código completo para o exemplo:
<html>
<head>
<title>Estudando JavaScript</title>
<style type="text/css">
input {margin-bottom: 3px; margin-top: 3px}
</style>
<script language="JavaScript">
function validar(){
// só permitirá o envio se os dados forem fornecidos
if(document.login.nome.value == ""){
alert("Forneça o nome do usuário");
document.login.nome.focus();
return false;
}
else if(document.login.senha.value == ""){
alert("Forneça a senha do usuário");
document.login.senha.focus();
return false;
}
else{
return true;
}
}
</script>
</head>
<body>
<form name="login" action="gravar.php" method="post"
onsubmit="return validar()">
Usuário:<br>
<input type="text" id="nome" name="nome"><br>
Senha:<br>
<input type="password" id="senha" name="senha"><br>
<input type="submit" value="Entrar!">
</form>
</body>
</html>
|
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um diretório em PHP usando a função rename()Quantidade de visualizações: 11936 vezes |
|
Diretórios podem ser renomeados usando a função rename() da linguagem PHP. Esta função recebe o nome atual do diretório e o novo nome e retorna um valor boolean (true ou false) informando o sucesso ou não da operação. Antes de usar esta função verifique se você possui as permissões adequadas para renomear o diretório. Veja um trecho de código no qual renomeamos um diretório no diretório public_html:
<?php
// renomeia o diretório "recentes" para "atuais"
$diretorio_antigo = "/site/public_html/recentes";
$diretorio_novo = "/site/public_html/atuais";
if(rename($diretorio_antigo, $diretorio_novo)){
echo "Diretório renomeado com sucesso.";
}
else{
echo "Não foi possível renomear o diretório.";
}
?>
Ao executar este código nós teremos o seguinte resultado: Diretório renomeado com sucesso. Seja cuidadoso. Se você não tiver as permissões adequadas para renomear um diretório, a seguinte mensagem de erro será exibida: Warning: rename(imagens,imagens_novas) [function.rename]: Permission denied in /site/public_html/testes.php on line 9 Não foi possível renomear o diretório. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Contando de 1 até 20 e formatando a saída usando System.out.printf()Quantidade de visualizações: 11219 vezes |
|
Exercício Resolvido de Java - Contando de 1 até 20 e formatando a saída usando System.out.printf() Pergunta/Tarefa: Escreva um programa Java console que usa o laço for para contar de 1 até 20 e exibir estes valores no seguinte formato: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Dica: Use o operador de módulo % para determinar o momento da quebra de linha e o método System.out.printf() para formatar o valor a ser exibido de forma a adicionar a quantidade correta de espaços entre os valores. Resposta/Solução: Eis a solução para este exercício:
public static void main(String[] args){
// laço for que conta de 1 até 20
for(int i = 1; i <= 20; i++){
System.out.printf( "%2d ", i);
if(i % 5 == 0){
System.out.println();
}
}
}
O mais importante a considerar aqui é o uso do método System.out.printf() na linha: System.out.printf( "%2d ", i); Aqui nós estamos especificando a largura (width) do valor inteiro como dois dígitos. Desta forma, se o valor for menor que 10 (um dígito), um espaço extra será adicionado à esquerda. Se o valor for maior que 9 (dois dígitos) nada acontece. Finalmente, três espaços são adicionados à direita do valor. Veja agora a explicação sobre o uso do operador de módulo % para provocar a quebra de linha após o quinto valor de cada fileira: Aqui nós testamos se o valor atual da variável i é múltiplo de 5 (para ser múltiplo de 5, o resto da divisão inteira de valor por 5 deverá ser 0). Neste exemplo os valores que são múltiplos de 5 são: 5, 10, 15 e 20. Assim. logo após estes valores nós fazemos uma chamada à: System.out.println(); para provocar uma quebra de linha e iniciar uma nova fileira de valores. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de C - Como testar se um ano é bissexto em C - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 1238 vezes |
|
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa C que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando C console:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]){
int ano;
setlocale(LC_ALL,""); // para acentos do português
// vamos solicitar que o usuário informe um ano
printf("Informe o ano: ");
scanf("%d", &ano);
// vamos verificar se o ano informado é bissexto
if(((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){
printf("\nO ano informado é bissexto.\n");
}
else{
printf("\nO ano informado não é bissexto.\n");
}
printf("\n\n");
system("pause");
return 0;
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
|
C# - Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da estrutura DateTime JavaScript - Como testar se uma string começa com uma determinada substring em JavaScript usando a função startsWith() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






