Você está aqui: Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Como testar se um número é potência de três usando Python - Lista de Exercícios Resolvidos de PythonQuantidade de visualizações: 531 vezes |
Pergunta/Tarefa: Escreva um programa Python contendo um método que recebe um número inteiro e retorna um valor boolean indicando se o valor informado é potência de três. Sua saída deverá ser parecida com: Informe um valor inteiro: 9 O valor 9 é potência de três Informe um valor inteiro: 12 O valor 12 não é potência de três Informe um valor inteiro: 27 O valor 27 é potência de três Veja a resolução comentada deste exercício usando Python: |
![]() |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como alocar memória dinâmica em C usando a função malloc()Quantidade de visualizações: 28771 vezes |
A função malloc() é usada em C para alocarmos um bloco de memória. Esta função recebe a quantidade de bytes a serem alocados e retorna um ponteiro do tipo void (genérico) para o início do bloco de memória obtido. Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- void *malloc(size_t size); Se a memória não puder se alocada, um ponteiro nulo (NULL) será retornado. É importante se lembrar de alguns conceitos antes de usar esta função. Suponhamos que você queira alocar memória para um inteiro. Você poderia ter algo assim: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // aloca memória para um int ponteiro = malloc(4); Embora este código esteja correto, não é um boa idéia assumir que um inteiro terá sempre 4 bytes. Desta forma, é melhor usar o operador sizeof() para obter a quantidade de bytes em um inteiro em uma determinada arquitetura. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // aloca memória para um int ponteiro = malloc(sizeof(int)); Eis o código completo para um aplicativo C que mostra como alocar memória para um inteiro e depois atribuir e obter o valor armazenado no bloco de memória alocado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // ponteiro para uma variável do tipo inteiro int *ponteiro; // aloca memória para um int ponteiro = malloc(sizeof(int)); // testa se a memória foi alocada com sucesso if(ponteiro) printf("Memoria alocada com sucesso.\n"); else printf("Nao foi possivel alocar a memoria.\n"); // atribui valor à memória alocada *ponteiro = 45; // obtém o valor atribuído printf("Valor: %d\n\n", *ponteiro); // libera a memória free(ponteiro); system("PAUSE"); return 0; } Uma aplicação interessante da função malloc() é quando precisamos construir uma matriz dinâmica. Veja como isso é feito no código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; // quantidade de elementos na matriz int quant = 10; // ponteiro para o bloco de memória int *ponteiro; // aloca memória para uma matriz de inteiros ponteiro = malloc(quant * sizeof(int)); // testa se a memória foi alocada com sucesso if(ponteiro) printf("Memoria alocada com sucesso.\n"); else{ printf("Nao foi possivel alocar a memoria.\n"); exit(1); } // atribui valores aos elementos do array for(i = 0; i < quant; i++){ ponteiro[i] = i * 2; } // exibe os valores for(i = 0; i < quant; i++){ printf("%d ", ponteiro[i]); } // libera a memória free(ponteiro); printf("\n\n"); system("PAUSE"); return 0; } |
Java ::: Pacote java.lang ::: String |
Como comparar strings em Java usando os métodos compareTo() e compareToIgnoreCase() da classe StringQuantidade de visualizações: 8665 vezes |
Em algumas situações precisamos efetuar comparação léxica de strings, ou seja, verificar se uma palavra ou frase é "igual, ""maior" ou "menor" que outra. Isso pode ser feito por meio do uso dos métodos compareTo() e compareToIgnoreCase() da classe String (definidos originalmente na interface Comparable<String>). Veja a assinatura do método compareTo(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public int compareTo(String anotherString) O retorno do método é 0 se a duas strings são iguais. O retorno será menor que 0 se a string na qual o método está sendo chamado for menor que a string passada como argumento. O retorno será maior que 0 se a string na qual o método está sendo chamado for maior que a string passada como argumento. Veja um exemplo de comparação léxica de duas strings: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Main { public static void main(String[] args) { // vamos declarar duas strings String nome1 = "Márcio"; String nome2 = "Márcia"; // vamos comparar as duas strings lexicamente if(nome1.compareTo(nome2) == 0){ System.out.println("As strings são iguais"); } else if(nome1.compareTo(nome2) > 0){ System.out.println("A primeira string é maior que a segunda"); } else{ System.out.println("A primeira string é menor que a segunda"); } } } Ao executarmos este código teremos o seguinte resultado: A primeira string é maior que a segunda A funcionalidade fornecida pelo método compareToIgnoreCase() é semelhante à aquela do método compareTo(). A diferenção é que, quando usamos compareToIgnoreCase(), o método não diferencia letras maiúsculas de letras minúsculas. A comparação efetuada pelos métodos compareTo() e compareToIgnoreCase() é baseada no valor Unicode de cada caractere na string. A sequencia de caracteres representada pelo objeto String é comparada lexicamente com a sequencia de caracteres representada pela string fornecida como argumento. |
Dart ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Dart usando o método cos() da biblioteca Math - Calculadora de cosseno em DartQuantidade de visualizações: 657 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 Dart. Esta método, que faz parte da biblioteca 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) ---------------------------------------------------------------------- // vamos importar a biblioteca dart:math import "dart:math"; void main(){ print("Cosseno de 0 = " + cos(0).toString()); print("Cosseno de 1 = " + cos(1).toString()); print("Cosseno de 2 = " + cos(2).toString()); } Ao executar este código Dart nós teremos o seguinte resultado: Cosseno de 0 = 1.0 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: ![]() |
Ruby ::: Dicas & Truques ::: Data e Hora |
Como retornar a data e hora atual em Ruby usando os métodos new e now da classe TimeQuantidade de visualizações: 9216 vezes |
Quando precisamos obter a data e hora atual, o Ruby nos fornece dois métodos muito úteis e presentes na classe Time: new e now. Ambos retornam um objeto da classe Time representando a data e hora atual no sistema no qual o programa Ruby está sendo executado. Veja uma demonstração destes métodos no trecho de código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # obtém a data e hora atual usando o método new agora = Time.new # exibe o resultado puts "Usando new: " + agora.strftime("%d/%m/%Y - %H:%M:%S") # obtém a data e hora atual usando o método now agora = Time.now # exibe o resultado puts "Usando now: " + agora.strftime("%d/%m/%Y - %H:%M:%S") Ao executar este código Ruby nós teremos o seguinte resultado: Usando new: 21/03/2021 - 17:00:09 Usando now: 21/03/2021 - 17:00:09 |
Java ::: Coleções (Collections) ::: ArrayList |
Java ArrayList - Como remover uma faixa de elementos de uma ArrayList simulando a função removeRange() do JavaQuantidade de visualizações: 9159 vezes |
Este exemplo mostra como remover uma faixa de elementos de uma ArrayList. Note que vamos simular o comportamento do método removeRange() da classe ArrayList. Este método é marcado como protected, o que nos possibilita acesso a ele somente se escrevermos uma classe que estende (extends) ArrayList. 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 arquivodecodigos; import java.util.ArrayList; public class Estudos{ public static void main(String[] args){ // cria uma ArrayList que conterá strings ArrayList<String> nomes = new ArrayList<>(); // adiciona itens na lista nomes.add("Carlos"); nomes.add("Maria"); nomes.add("Fernanda"); nomes.add("Osmar"); nomes.add("Maria"); // exibe os elementos da ArrayList System.out.println("Todos os elementos:"); for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } // Vamos remover os elementos 2, 3 e 4 for(int i = 1; i < 4; i++){ nomes.remove(1); } // exibe os elementos da ArrayList System.out.println("\nElementos restantes:"); for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Todos os elementos: Carlos Maria Fernanda Osmar Maria Elementos restantes: Carlos Maria |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
JavaScript - Como calcular a equação reduzida da reta em JavaScript dados dois pontos pertencentes à reta |
Quem Somos |
![]() Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
![]() Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |
Códigos Fonte |
![]() 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 |
![]() 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 |