E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90
Java ::: Dicas & Truques ::: Strings e Caracteres

Como retornar o tamanho de uma string em Java usando o método length() da classe String

Quantidade de visualizações: 513 vezes
O método length() da classe String do Java é muito útil quando queremos o tamanho, ou seja, o comprimento de uma string. Uma string é um conjunto de caracteres que compôem uma palavra, frase ou texto em Java.

Este método é chamado diretamente na instância da classe String e retorna um int contendo o tamanho da string. Veja um exemplo de seu uso:

package arquivodecodigos;
 
// Este exemplo mostra como obter o tamanho de uma string
public class Estudos{
  public static void main(String[] args){
    String frase = "Java é muito interessante";
    
    // vamos obter o tamanho da string
    int tam = frase.length();
    
    // e mostramos o resultado
    System.out.println("Esta string contem " + 
      tam + " caracteres");
    
    System.exit(0);
  }
} 

Ao executar este código Java nós teremos o seguinte resultado:

Esta string contem 25 caracteres.


C ::: Dicas & Truques ::: Recursão (Recursividade)

Como calcular o fatorial de um número em C usando recursividade

Quantidade de visualizações: 16017 vezes
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma:

4 x 3 x 2 x 1 = 24


Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplificação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em C que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// cabeçalho da função fatorial recursiva
int fatorial(int n);

// função principal do programa
int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português 
    
  // vamos calcular o fatorial de 5
  int res = fatorial(5);

  // exibe o resultado
  printf("O fatorial de 5 é: %d", res);
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}

// função recursiva para calcular o fatorial
// de um determinado número
int fatorial(int n){
  if(n == 0){
    return 1;
  }
  else{
    return n * fatorial(n - 1);
  }
}

Ao executar este código C nós teremos o seguinte resultado:

O fatorial de 5 é: 120


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Um método recursivo que recebe uma String e retorna a quantidade de letras maiúsculas encontradas

Quantidade de visualizações: 5969 vezes
Pergunta/Tarefa:

Escreva um método recursivo que recebe uma palavra ou frase e retorna a quantidade de caracteres (letras) maiúsculos. Seu método deverá possuir a seguinte assinatura:

public static int contarMaiusculas(String frase){
  // sua implementação aqui
}
Veja que o método deverá funcionar para qualquer tamanho de string. Teste também com strings que contenham somente letras maiúsculas ou somente letras minúsculas.

Sua saída deverá ser parecida com:

Digite uma palavra ou frase: Arquivo de Códigos
A palavra ou frase contém 2 letras maiúsculas
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

Observação importante: Este código criará uma cadeia de chamadas recursivas. Cada chamada ao método contarMaiusculas() receberá uma cópia menor da palavra ou frase fornecida. Quando a última chamada recursiva do método receber uma string vazia, a cadeia começa a retornar. Note que os valores acumulados nas várias chamadas ao método vão sendo acumulados na variável quantidade.

package exercicio;

import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // solicita uma palavra ou frase ao usuário
    System.out.print("Digite uma palavra ou frase: ");
    // lê a palavra ou frase
    String frase = entrada.nextLine();
    
    int quantMaiusculas = contarMaiusculas(frase);
    System.out.println("A palavra ou frase contém " + quantMaiusculas +
      " letras maiúsculas");
  }
  
  // método recursivo que recebe uma palavra ou frase e retorna
  // a quantidade de letras maiúsculas
  public static int contarMaiusculas(String frase){
    /* Este código criará uma cadeia de chamadas recursivas. Cada
     * chamada ao método contarMaiusculas() receberá uma cópia menor
     * da palavra ou frase fornecida. Quando a última chamada recursiva do
     * método receber uma string vazia, a cadeia começa a retornar. Note
     * que os valores acumulados nas várias chamadas ao método vão sendo
     * acumulados na variável quantidade
    */ 
    int quantidade = 0;
    
    // o tamanho da string é maior que 0?
    if(frase.length() > 0){
      if(Character.isUpperCase(frase.charAt(0))){
        quantidade = 1 + contarMaiusculas(frase.substring(1));      
      }
      else{
        quantidade = contarMaiusculas(frase.substring(1));    
      }
    }
   
    return quantidade;
  }
}



HTML5 ::: Canvas Element ::: Linhas

Computação gráfica usando HTML 5 - Como usar o método lineTo() do objeto Canvas do HTML5 para desenhar retas

Quantidade de visualizações: 2940 vezes
O método lineTo() do objeto Canvas do HTML5 nos permite desenhar linhas retas entre um ponto x e um ponto y. Para isso, usamos o método moveTo() para mover a caneta (ou pena) de desenho para um coordenada x, y e a partir deste ponto nós especificamos as coordenadas x, y para a outra extremidade da linha.

O trecho de código a seguir desenha uma linha saindo das coordenadas x = 20, y = 20 e chegando até x = 300, y = 150. Veja:

contexto.moveTo(20, 20); // move a caneta para x, y
contexto.lineTo(300, 150); // coordenadas x, y

E aqui estão os códigos HTML e JavaScript para o exemplo completo:

<!doctype html>
<html>
<head>
  <title>O objeto Canvas do HTML5</title>
</head>
 
<body>
 
<Canvas id="canvas1" width="500" height="350"></Canvas>
 
<script type="text/javascript">
  // obtemos uma referência ao elemento Canvas  
  var canvas = document.getElementById("canvas1");
  // obtemos o contexto de desenho
  var contexto = canvas.getContext("2d");
     
  contexto.beginPath(); // inicia ou reseta o caminho anterior
  contexto.moveTo(20, 20); // move a caneta para x, y
  contexto.lineTo(300, 150); // coordenadas x, y
  contexto.stroke(); // finaliza o desenho
</script>
 
</body>
</html>

Ao abrir esta página HTML nós teremos o seguinte resultado:




Java ::: Fundamentos da Linguagem ::: Comentários

Java para iniciantes - Como inserir comentários em seus códigos Java

Quantidade de visualizações: 13454 vezes
Comentários em Java, assim como em outras linguagens, são ignorados pelo compilador. Em Java, podemos usar dois estilos de comentários:

1) Comentário de uma única linha:

// obtém o resultado do cálculo
int res = 4 + 5; // aqui também pode

2) Comentários de múltiplas linhas:

/*
 Este exemplo mostra como verificar se
 um número é par ou ímpar.  
*/



AngularJS ::: Angular / AngularJS + JavaScript ::: Diretivas AngularJS

Tutorial AngularJS - Como usar a diretiva ng-init do AngularJS

Quantidade de visualizações: 2356 vezes
A diretiva ng-init do AngularJS é usada quando queremos criar uma varíável no escopo atual e inicializá-la com algum valor. Veja um exemplo de seu uso:

<div ng-app="" ng-init="codigo=350">
  <h1>O próximo código é: {{codigo + 1}}</h1>
</div>

Quando você executar este exemplo, verá escrita a saída:

O próximo código é: 351

Isso aconteceu porque usamos a diretiva ng-init para criar uma variável chamada "codigo" e definimos o seu valor inicial como 350. Então, dentro do elemento <h1>, nós acessamos a variável e aumentamos o seu valor em 1 antes de exibí-la.

É importante observar que esta diretiva só é usada em situações nas quais queremos apenas fazer protótipos, exemplos ou testar alguma funcionalidade. Na prática, variáveis do escopo são inicializadas usando-se Components ou Controllers.

Um outro uso da diretiva ng-init é para declarar e inicializar variáveis dentro do escopo de um ng-repeat. Veja:

<script type="text/javascript">
  // vamos criar uma nova aplicação AngularJS
  var app = angular.module('MinhaApp', []);
     
  // vamos criar um novo controller	 
  app.controller('MeuController', function($scope){
     $scope.Livros = [
       {titulo: "Java para a web", autor: "Osmar J. Silva"},
       {titulo: "Aprenda AngularJS", autor: "José de Angelis"}
     ];
  });
</script>

<div ng-app="MinhaApp" ng-controller="MeuController">
   <div ng-repeat="livro in Livros" ng-init="ordem = ($index + 1)">
      <h1>Ordem: {{ordem}} - Título: {{livro.titulo}} - Autor: {{livro.autor}}</h1>
   </div>
</div>

Quando você abrir esta página, verá a seguinte saída:

Ordem: 1 - Título: Java para a web - Autor: Osmar J. Silva
Ordem: 2 - Título: Aprenda AngularJS - Autor: José de Angelis



JavaScript ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators)

JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScript

Quantidade de visualizações: 1293 vezes
O operador de bits & (E/AND sobre bits) da linguagem JavaScript é usado quando queremos comparar os bits individuais de dois valores integrais (inteiros) e produzir um terceiro resultado. Os bits no resultado serão configurados como 1 se os bits correspondentes nos dois outros valores foram 1. Em caso contrário os bits são configurados como 0.

Para quem gosta de Lógica Matemática, ou a Tabela Verdade da Lógica de Boole, vai se lembrar do conectivo "^", que diz que a proposição resultante da conjunção só será verdadeira quando as proposições simples individuais forem verdadeiras. O operador de bits & do JavaScript é similar ao conectivo "^" da Lógica Proposicional.

Vamos analisar os seguintes valores binários:

a) 0101 (5 decimal)
b) 0100 (4 decimal)

Quando aplicamos o operador & nestes dois valores teremos o seguinte resultado:

0101
0100
----
0100

Veja que o resultado é 0100, uma vez que apenas o segundo bit de cada valor está configurado como 1. Vamos ver isso em JavaScript agora. Observe o seguinte trecho de código:

<html>
<head>
  <title>Manipulação de Bits em JavaScript</title>
</head>
 
<body>

<script type="text/javascript">
  var a = 5;
  var b = 4;
  var c = a & b;
  
  // exibe o resultado (em binário e em decimal)
  document.writeln("a = " + obterBits(a) + " (" + a + ")");
  document.writeln("<br>b = " + obterBits(b) + " (" + b + ")");
  document.writeln("<br>a & b = " + obterBits(c) + " (" + c + ")");
  
  // função auxiliar que converte um decimal em sua representação em bits
  function obterBits(valor){
    var mascara = 1 << 31; // 10000000 00000000 00000000 00000000
    var buffer = ""; // um buffer para guardar os bits dos bytes
    
    for(var i = 1; i <= 32; i++){
      // compara os bits individuais dos dois valores inteiros
      if((valor & mascara) == 0){
    	buffer = buffer + "0";
      }
      else{
    	buffer = buffer + "1";
      }
      
      valor = valor << 1; // desloca uma posição para a esquerda
      // Cada troca à esquerda corresponde à multiplicação do
      // valor por 2
      
      if(i % 8 == 0){ // completou um byte?
        buffer = buffer + " ";
      }
    }
    
    return buffer;
  }
</script>

</body>
</html>


Ao executar este código teremos o seguinte resultado:

    a = 00000000 00000000 00000000 00000101 (5) 
    b = 00000000 00000000 00000000 00000100 (4)
a & b = 00000000 00000000 00000000 00000100 (4)



JavaScript ::: Dicas & Truques ::: Strings e Caracteres

Como adicionar zeros (ou outro caractere) no início de uma string usando o método padStart() da linguagem JavaScript

Quantidade de visualizações: 3026 vezes
Como adicionar zeros (ou outro caractere) no início de uma string usando o método padStart() da linguagem JavaScript

O método padStart(), adicionado ao objeto String no ES2017 (ECMAScript 8) é usado quando queremos preencher o início de uma string com zeros ou qualquer outro caractere até alcançarmos um comprimento determinado.

Veja, por exemplo, como adicionar zeros na frente de uma string para alcançar o tamanho de cinco caracteres:

<script type="text/javascript">
  var valor = 17;
  // vamos mostrar o valor com o tamanho de cinco caracteres
  document.write("O valor é: " + valor.toString().padStart(5, "0"));
</script>

Ao executar o exemplo você verá o valor "00017" ser exibido. Porém, como o método padStart() foi adicionado no ES2017, pode ser que você encontre navegadores que ainda não o suportem. Assim, é sempre uma idéia testar a sua existência. Veja:

<script type="text/javascript">
  if(String.prototype.padStart){
    window.alert("Seu browser já suporta a função padStart().");  
  }
  else{
    window.alert("Seu browser NÃO suporta a função padStart().");  
  }
</script>

Se o navegador não oferecer suporte a este método, você poderá usar um Polyfill, de terceiros ou uma solução que você mesmo poderá desenvolver.


Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a área de um Triângulo Equilátero em Java - Java para Geometria, Trigonometria e Álgebra Linear

Quantidade de visualizações: 1906 vezes
Um Triângulo Equilátero é o triângulo que possui os três lados iguais, e cujos ângulos internos são todos 60 graus (somando 180).

Veja na figura abaixo as características de um Triângulo Equilátero:



Nesta dica de Java eu mostrarei como calcular a área do triângulo equilátero. Para isso, vamos revisar a fórmula para o cálculo da área do triângulo equilátero:

\[\text{Área K} = \dfrac{1}{4} \times \sqrt{3} \times L^2 \]

E veja o código Java para o cálculo:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para efetuar a leitura do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar o valor do lado do triângulo
    System.out.print("Informe o lado do triângulo: ");
    double lado = Double.parseDouble(entrada.nextLine());
    
    // agora vamos calcular a área do triângulo equilátero
    double area = (1.0 / 4.0) * Math.sqrt(3) * Math.pow(lado, 2);
    
    // e finalmente mostramos o resultado
    System.out.println("A área do triângulo equilátero é: " + area);
  }
}

Ao executarmos este código nós teremos o seguinte resultado:

Informe o lado do triângulo: 5
A área do triângulo equilátero é: 10.825317547305483


C# ::: Namespace System.Drawing ::: Graphics

C# Windows Forms - Como passar um objeto da classe Graphics como argumento para um método e usá-lo para desenhar na superfície do formulário

Quantidade de visualizações: 6214 vezes
Em algumas situações gostaríamos de escrever um método que recebe um objeto da classe Graphics como argumento e usar este objeto para alguma tarefa, por exemplo, desenhar na superfície do formulário. Nesta dica eu mostro como isso é possível. Comece escrevendo o seguinte método:

// um método que recebe um objeto da classe Graphics
private void desenhar(ref Graphics g){
  // vamos desenhar uma linha horizontal de 300 pixels na
  // cor preta e espessura de 1 pixel
  g.DrawLine(new Pen(Color.Black, 1), new Point(20, 80),
    new Point(320, 80));

  // vamos liberar o objeto Graphics
  g.Dispose();
}

Note que, na definição do parâmetro do método nós usamos a palavra-chave ref. Isso foi necessário porque queremos que o objeto Graphics seja passado por referência, uma vez que o estamos liberando dentro do corpo do método com uma chamada ao método Dispose().

Veja agora como obter o objeto Graphics relacionado ao formulário atual e passá-lo ao método desenhar():

private void button1_Click_1(object sender, EventArgs e){
  // vamos obter o objeto Graphics relacionado ao formulário atual
  Graphics graphics = this.CreateGraphics();

  // vamos passar o objeto Graphics para o método desenhar
  desenhar(ref graphics);
}


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 42 usuários muito felizes estudando em nosso site.