Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em Ruby usando o método length da classe ArrayQuantidade de visualizações: 7586 vezes |
|
Em algumas situações nós precisamos saber a quantidade de elementos em um array da linguagem Ruby. Para isso nós podemos usar a função length da classe Array. Este método retorna um valor inteiro representando a quantidade de elementos no vetor. O trecho de código abaixo mostra como obter a quantidade de elementos em um array em Ruby:
# vamos declarar um vetor contendo 5 inteiros
valores = [3, 6, 8, 2, 3]
# Obtém a quantidade de elementos
quant = valores.length
puts "O array contém #{quant} elementos"
Ao executar este código Ruby nós teremos o seguinte resultado: O array contém 5 elementos |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um diretório em PHP usando a função rename()Quantidade de visualizações: 12059 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 ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivoQuantidade de visualizações: 1153 vezes |
|
Nesta dica mostrarei como podemos implementar o algorítmo da Busca em Profundidade (DFS, do inglês depth-first search) em Java de forma recursiva. Em outra dica desta seção que mostrei como fazer a mesma travessia de forma iterativa e usando uma pilha para backtracking (retrocesso). Antes de iniciarmos, veja a árvore binária que vamos usar no exemplo: ![]() Note que esta árvore possui seis nós. O nó 5 é o nó raiz, e possui como filhos os nós 4 e 9. O nó 4, por sua vez, possui apenas um filho, o nó 2, ou seja, o filho da esquerda. O nó 9 possui dois filhos: o nó 3 é o filho da esquerda e o nó 12 é o filho da direita. Os filhos da árvore binária que não possuem outros filhos são chamados de folhas. Com a abordagem da busca em profundidade, começamos com o nó raiz e viajamos para baixo em uma única ramificação. Se o nó desejado for encontrado naquela ramificação, ótimo. Do contrário, continuamos subindo e pesquisando por nós não visitados. Esse tipo de busca também tem uma notação big O de O(n). Vamos à implementação? Veja o código para a classe No, que representa um nó na árvore binária:
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
Veja agora o código completo para o exemplo. Note que estamos usando recursividade nesta dica. Observe também o uso de uma ArrayList para guardar os valores da árvore binária na ordem depth-first. Eis o código:
package estudos;
import java.util.ArrayList;
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar os nós da árvore
No cinco = new No(5); // será a raiz da árvore
No quatro = new No(4);
No nove = new No(9);
No dois = new No(2);
No tres = new No(3);
No doze = new No(12);
// vamos fazer a ligação entre os nós
cinco.esquerdo = quatro;
cinco.direito = nove;
quatro.esquerdo = dois;
nove.esquerdo = tres;
nove.direito = doze;
// agora já podemos efetuar o percurso depth-first
ArrayList<Integer> valores = new ArrayList<>();
percursoDepthFirst(valores, cinco);
System.out.println("Os valores na ordem Depth-First são: " + valores);
}
public static void percursoDepthFirst(ArrayList<Integer> valores, No no){
if(no != null){
// vamos adicionar o valor deste nó no ArrayList
valores.add(no.valor);
// passamos para o filho esquerdo
percursoDepthFirst(valores, no.esquerdo);
// passamos para o filho direito
percursoDepthFirst(valores, no.direito);
}
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Os valores na ordem Depth-First são: [5, 4, 2, 9, 3, 12] Compare estes valores com a imagem vista anteriormente para entender ainda melhor o percurso ou busca Depth-First. |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular juros simples e composto - Calculando juros simples e montante na linguagem JavaQuantidade de visualizações: 14717 vezes |
|
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal, ou simplesmente principal, é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos: J = P . i . n Onde: J = juros P = principal (capital) i = taxa de juros n = número de períodos Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em Java pode ser feito assim:
public class Estudos{
public static void main(String args[]){
double principal = 2000.00;
double taxa = 0.08;
int meses = 2;
double juros = principal * taxa * meses;
System.out.println("O total de juros a ser pago é: "
+ juros);
System.exit(0);
}
}
O montante da dívida pode ser obtido das seguintes formas: a) Montante = Principal + Juros b) Montante = Principal + (Principal x Taxa de juros x Número de períodos) M = P . (1 + (i . n)) Veja o código:
public class Estudos{
public static void main(String args[]){
double principal = 2000.00;
double taxa = 0.08;
int meses = 2;
double juros = principal * taxa * meses;
double montante = principal * (1 + (taxa * meses));
System.out.println("O total de juros a ser pago é: "
+ juros);
System.out.println("O montante a ser pago é: "
+ montante);
System.exit(0);
}
}
|
Java ::: Fundamentos da Linguagem ::: Modificadores |
Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações JavaQuantidade de visualizações: 19293 vezes |
|
O modificador static pode ser aplicado a métodos e variáveis. Além disso, este modificador pode ser usado para a inicialização de códigos estáticos de uma classe. Um recurso marcado com este modificador pertence à uma classe, e não às suas instâncias. Isso quer dizer que podemos acessar métodos ou variáveis estáticas sem a necessidade de criar uma cópia da classe. Veja por exemplo o método main() usado como ponto de entrada para um aplicativo Java:
public static void main(String args[]){
//
}
Como o método main é chamado antes mesmo de qualquer cópia de classes serem criadas, o modificador static se torna essencial. Veja o que acontece se o retirarmos:
public class Estudos{
public void main(String args[]){
System.out.println("Olá");
System.exit(0);
}
}
O código compila sem problemas. Porém, ao tentarmos executar teremos o seguinte erro: Exception in thread "main" java.lang.NoSuchMethodError: main
public class Estudos{
String frase = "Estou aqui!";
public static void main(String args[]){
System.out.println(frase);
System.exit(0);
}
}
Ao tentarmos compilar este código teremos o seguinte erro:
Estudos.java:5: non-static variable frase cannot be
referenced from a static context
System.out.println(frase);
^
1 error
static String frase = "Estou aqui!"; Execute o programa novamente e veja como o erro desaparece. Para demonstrar como recursos estáticos pertencem mesmo à classe e não às suas cópias, considere o seguinte exemplo:
public class Estudos{
public static void main(String args[]){
for(int i = 0; i < 5; i++){
Cliente cliente = new Cliente();
System.out.println("Sou o cliente número: " +
cliente.quant);
}
System.exit(0);
}
}
class Cliente{
public static int quant = 0;
public Cliente(){
quant++;
}
}
Ao compilar e executar este código você terá o seguinte resultado: Sou o cliente número: 1 Sou o cliente número: 2 Sou o cliente número: 3 Sou o cliente número: 4 Sou o cliente número: 5 Veremos agora o uso do modificador static na inicialização de blocos de código estáticos. Observe o código:
public class Estudos{
public static void main(String args[]){
for(int i = 0; i < 5; i++){
Cliente cliente = new Cliente();
System.out.println("Sou o cliente número: " +
cliente.quant);
}
System.exit(0);
}
}
class Cliente{
public static int quant = 0;
public Cliente(){
quant++;
}
static{
System.out.println("Bloco estático");
}
}
Compile e execute este exemplo. Você terá o seguinte resultado: Bloco estático Sou o cliente número: 1 Sou o cliente número: 2 Sou o cliente número: 3 Sou o cliente número: 4 Sou o cliente número: 5 |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
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 C# - Como testar se uma string é null ou vazia em C# usando a função IsNullOrEmpty() da classe String |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







