Você está aqui: Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como retornar a quantidade de nós em uma árvore binária usando JavaQuantidade de visualizações: 2552 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 contar os nós da árvore usando um método recursivo. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // método que permite obter a quantidade de nós na árvore int quantNosArvore(){ // chama a versão recursiva return quantNosArvore(raiz); } int quantNosArvore(No no){ if(no == null){ // condição de parada return 0; } else{ return (quantNosArvore(no.getEsquerdo()) + quantNosArvore(no.getDireito()) + 1); } } 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: ---------------------------------------------------------------------- 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 exibir a quantidade de nós na árvore System.out.println("\nA árvore possui: " + arvore.quantNosArvore() + " nós.\n"); System.out.println("\n"); } } Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 5 Informe um valor inteiro: 2 Informe um valor inteiro: 8 Informe um valor inteiro: 7 Informe um valor inteiro: 31 A árvore possui: 5 nós. |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço for do Python - Apostila Python para iniciantes - O laço forQuantidade de visualizações: 12498 vezes |
O laço for (laço para) em Python é um pouco diferente daquele encontrado em Java, C ou C++. Na verdade, o laço for da Python está mais para o laço foreach do C# e o novo laço for do Java 1.5. Em Python, o laço for funciona com sequencias (range), ou seja, a cada iteração do laço, um elemento da sequencia é retornado. Vamos ver isso mais de perto. Veja o exemplo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- def main(): for i in range(1, 11): print(i) if __name__== "__main__": main() Este trecho de código exibirá os números de 1 até 10. Veja que o último limite não é incluído na contagem. Este exemplo pode também ser escrito assim: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- def main(): for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: print(i) if __name__== "__main__": main() |
JavaScript ::: ECMAScript 5 - JavaScript 5 - ES5 - ECMAScript 2009 ::: Passos Iniciais |
Como usar a diretiva "use strict" do ECMAScript 5 em seus códigos JavaScriptQuantidade de visualizações: 918 vezes |
À medida que a linguagem JavaScript foi ganhando popularidade, as pessoas responsáveis por sua manutenção perceberam a necessidade de torná-la um pouco mais restritiva em relação a erros de programação que até então não eram vistos pelos navegadores como erros. Vamos ver um exemplo? Considere o código JavaScript a seguir:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos PHP</title> </head> <body> <script type="text/javascript"> total_cliente = 100; document.writeln("Total: " + total_cliente); </script> </body> </html> Ao executarmos este código nós teremos o seguinte resultado: Total: 100 Note que, embora o código tenha funcionado como esperado, nós não usamos a palavra-chave "var" (ou "let" ou "const") na declaração da variável total_cliente. Quando não fazemos isso, o interpretador realiza esta tarefa por conta própria, declarando e colocando a variável como global. Até aqui nenhum problema. A questão surge quando queremos que esta variável seja usada localmente, ou ainda, quando queremos indicar, para quem estiver lendo o nosso código, o ponto exato onde uma determinada variável foi declarada. A partir do ECMAScript 5 (JavaScript 5 - ES5 - ECMAScript 2009) nós podemos usar o modo "use strict" para exibir erros sempre que uma variável não declarada (com "var", "let" ou "const" sofra atribuição ou leitura. Dessa forma nossos códigos serão mais seguros, pois o interpretador não mais colocará variáveis no escopo global sem nosso consentimento explícito. Veja agora o mesmo trecho de código anterior, dessa vez usando "use strict": ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos PHP</title> </head> <body> <script type="text/javascript"> "use strict" total_cliente = 100; document.writeln("Total: " + total_cliente); </script> </body> </html> Agora o código não mais executa, e temos a seguinte mensagem de erro no console do Google Chrome ou Firefox: Uncaught ReferenceError: total_cliente is not defined at index.html:10 Neste exemplo eu usei "use strict" de forma a refletir em todos os códigos JavaScript a partir daquele ponto. No entanto, é possível colocar essa diretiva em locais expecíficos, tais como dentro do corpo de uma função. |
C++ ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo em C++ usando a função sin()Quantidade de visualizações: 2642 vezes |
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno 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 seno. 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 seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem C++. Esta função, disponível no header math.h, 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) ---------------------------------------------------------------------- #include <iostream> #include <math.h> #include <cstdlib> using namespace std; int main(int argc, char *argv[]){ cout << "Seno de 0 = " << sin(0) << "\n"; cout << "Seno de 0 = " << sin(1) << "\n"; cout << "Seno de 0 = " << sin(2) << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Seno de 0 = 0 Seno de 0 = 0.841471 Seno de 0 = 0.909297 Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como acessar os caracteres de uma string individualmente em PHP usando índicesQuantidade de visualizações: 8796 vezes |
Em algumas situações nós gostaríamos de acessar os caracteres individuais de uma palavra, frase ou texto em PHP. Isso pode ser feito por meio da notação de índices, ou seja, usando []. Veja um exemplo abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php $nome = "Carlos de Jesus"; echo "O primeiro caractere é " . $nome[0]; ?> Ao executar este código PHP nós teremos o seguinte resultado: O primeiro caractere é C |
C# ::: Windows Forms ::: ComboBox |
Como retornar o item selecionado em um ComboBox do C# Windows Forms usando a propriedade SelectedItemQuantidade de visualizações: 22343 vezes |
Muitas vezes precisamos obter o elemento selecionado em um ComboBox. Para isso podemos usar a propriedade SelectedItem. Esta propriedade retorna o item selecionado como um Object, o que nos permite efetuar um cast para o tipo que foi inserido. Veja um exemplo do uso deste método em um ComboBox que possui elementos do tipo String:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o item selecionado no ComboBox // chamado "cidades" object sel = cidades.SelectedItem; // vamos exibir o resultado MessageBox.Show("Valor do elemento: " + sel.ToString()); } Aqui nós usamos o método ToString() da classe Object para obter uma representação textual do objeto sendo retornado. É claro que no caso de um objeto da classe String isso não é necessário. Incluímos apenas para fins didáticos. Neste trecho de código não convertemos o tipo retornado para um outro determinado tipo. Veja esta nova versão: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o item selecionado no ComboBox // chamado "cidades" string sel = (string)cidades.SelectedItem; // vamos exibir o resultado MessageBox.Show("Valor do elemento: " + sel.ToString()); } Veja que agora nós fizemos uma conversão forçada (cast) de object para string. Se isso não fosse feito, a seguinte mensagem de erro de compilação seria exibida: Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?) |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
Java - Como usar null em Java |
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 |