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 ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em Java

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

Escreva um programa Java que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10().

Sua saída deverá ser parecida com:

Informe um número inteiro: 48763
A soma do primeiro e do último dígito é: 7
Resposta/Solução:

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

package estudos;
 
import java.util.Scanner;
 
public class Estudos{ 
  public static void main(String args[]){ 
    // vamos usar a classe Scanner para a leitura dos dados
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar um número inteiro
    System.out.print("Informe um número inteiro: ");
    int numero = Integer.parseInt(entrada.nextLine());
    
    // vamos obter a quantidade (-1) de dígitos no número informado
    int quant = (int)Math.log10(numero);
    int primeiro_digito = (int)(numero / Math.pow(10, quant));
    int ultimo_digito = numero % 10;
  	
    // soma o primeiro e o último dígito
    int soma = primeiro_digito + ultimo_digito;
	
    // mostra o resultado
    System.out.println("A soma do primeiro e do último dígito é: " + soma);
  }
}



Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como usar objetos da classe TColumn para representar as colunas individuais de um controle TDBGrid do Delphi

Quantidade de visualizações: 10017 vezes
Objetos da classe TColumn representam as colunas individuais em um data grid (TDBGrid). Cada controle DBGrid usa um objeto da classe TDBGridColumns para manter uma coleção de objetos TColumn, e, cada objeto TColumn representa as características visuais e ligação de dados de uma determinada coluna na grid. Um objeto TDBGridColumns é representado no controle TDBGrid pela propriedade Columns.

Veja a posição da classe TColumn na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TCollectionItem
      DBGrids.TColumn
Entre as propriedades mais usadas de um objeto TColumn podemos listar Title (título da coluna), Color (cor de fundo) e Alignment (alinhamento do texto da coluna).

Veja um trecho de código no qual obtemos um objeto da classe TColumn representando a primeira coluna de um DBGrid e em seguida exibimos seu título:

procedure TForm3.Button3Click(Sender: TObject);
var
  coluna: TColumn;
begin
  // vamos obter a primeira coluna do DBGrid
  coluna := DBGrid1.Columns[0];

  // vamos mostrar o título da coluna obtida
  ShowMessage('O título da coluna é: ' + coluna.Title.Caption);
end;

Ao executar este código teremos uma mensagem parecida com:

"O título da coluna é: Autor".

Esta dica foi escrita e testada no Delphi 2009.


React.js ::: Dicas & Truques ::: Passos Iniciais

Aprenda a desenvolver aplicações React diretamente no HTML, sem usar a ferramenta create-react-app

Quantidade de visualizações: 1502 vezes
Embora seja recomendável usar a ferramenta create-react-app para criar suas aplicações React, às vezes gostaríamos de testar algumas idéias diretamente no código HTML, ou seja, sem precisar passar pelo processo "npx create-react-app" -> "npm start" -> "npm run build".

Tudo que temos que fazer é incluir três scripts, a saber, react.production.min.js, react-dom.production.min.js e babel.min.js. Estes scripts estão disponíveis para inclusão via CDN (o mais recomendado) ou você pode baixá-los para uso local, o que, com certeza, vai deixar o processo de desenvolvimento ainda mais rápido. Para obter os CDS ou fazer o download individual dos mesmos, basta pesquisá-los no Google por seus nomes.

Nesta dica eu optei por baixar os scripts e rodá-los a partir da minha máquina de desenvolvimento. Os dois primeiros scripts nos permitem escrever código React em nossos códigos JavaScript, e o terceiro, babel.min.js, nos permite usar a síntáxe JSX (JavaScript XML) e também dar suporte ao JavaScript ES6 para os navegadores mais antigos.

Então, vamos escrever código? Veja a listagem a seguir:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
<title>Estudos React</title>
  
<script src="js/react.production.min.js"></script>
<script src="js/react-dom.production.min.js"></script>
<script src="js/babel.min.js"></script> 
 
</head>
<body>

<h1>Primeira aplicação React direto no HTML</h1>
  
<div id="minha_app"></div>

<script type="text/babel">
  // vmaos criar um novo compomente React
  class Mensagem extends React.Component{
    render() {
      return <h1>Olá, bem-vindo(a) ao React!</h1>
    }
  };
 
  // vamos exibir o componente Mensagem na div minha_app
  ReactDOM.render(<Mensagem />, document.getElementById('minha_app'));
</script>

</body>
</html>

Ao abrir esta página no navegador teremos o seguinte resultado:

Primeira aplicação React direto no HTML
Olá, bem-vindo(a) ao React!

Pronto! Agora você pode testar idéias no React de forma bem rápida e fácil. Mas, lembre-se, em aplicações mais complexas, o uso da ferramenta create-react-app continua sendo o mais recomendado.


JavaScript ::: JavaScript para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando JavaScript - Geometria Analítica e Álgebra Linear usando JavaScript

Quantidade de visualizações: 2528 vezes
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0).

Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2:

\[\vec{v} = \left(7, 6\right)\]

Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D:



Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9.

Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6).

Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras:

\[a^2 = b^2 + c^2\]

Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira:

\[a = \sqrt{b^2 + c^2}\]

Passando para os valores x e y que já temos:

\[a = \sqrt{7^2 + 6^2}\]

Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final:

\[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\]

E aqui está o código JavaScript que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:

<html>
<head>
  <title>Estudos JavaScript</title>
</head>
 
<body>
 
<script type="text/javascript">
  // vamos declarar os valores x e y
  var x = 7;
  var y = 6;
  
  // vamos calcular a norma do vetor
  var norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
    
  // mostra o resultado
  document.writeln("A norma do vetor é: " + norma);
</script>
 
</body>
</html>

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

A norma do vetor é: 9.219544457292887

Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo.


Delphi ::: Fundamentos da Linguagem ::: Estruturas de Controle

Delphi para iniciantes: Como usar o laço de repetição for do Delphi

Quantidade de visualizações: 22444 vezes
O laço for do Delphi (linguagem Object Pascal) é usado quando queremos que um determinado bloco de instruções seja executado um determinado número de vezes. Na maioria das vezes a execução deste laço é controlada por uma variável de controle, que deve ser declarada antes de seu uso.

Veja um laço for que contará de 0 até 10 (incluído):

procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer; // variável de controle
begin
  for i := 0 to 10 do
    begin
      ShowMessage(IntToStr(i)); // mostra a mensagem 10 vezes
    end;
end;

Veja que o valor da variável de controle i começa em 0 e é incrementado a cada iteração até que seu valor seja igual a 10, o que faz com que a execução do laço seja interrompida. A variável de controle de um laço for deve ser do tipo ordinal (inteiro, caractere, Boolean, enumerações ou sub-faixas) e não pode ser alterada dentro do laço. Veja:

procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer; // variável de controle
begin
  // este laço for pretende exibir os números pares de 0 a 10
  for i := 0 to 10 do
    begin
      ShowMessage(IntToStr(i));
      i := i + 2;  // vamos ter problemas aqui
    end;
end;

Ao tentarmos compilar este código teremos o seguinte erro:

[DCC Error] Unit1.pas(107): E2081 Assignment to FOR-Loop variable 'i'

Este erro nos informa que não é possível atribuir valor a uma variável de controle dentro do laço for. Se quisermos que o laço "conte" de trás para frente, podemos substituir a palavra-chave to por downto. Veja:

procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer; // variável de controle
begin
  // este laço for conta de 10 até 0
  for i := 10 downto 0 do
    begin
      ShowMessage(IntToStr(i));
    end;
end;


Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Java - Como percorrer todos os elementos de um vetor de inteiros e exibir a soma de seus valores

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

Considere o seguinte vetor de inteiros:

// um vetor de inteiros contendo sete elementos
int valores[] = {4, 5, 1, 8, 2, 2, 10};
Escreva um programa Java console ou GUI que usa um laço for para percorrer todos os elementos deste vetor e exibir a soma de seus valores. Seu programa deverá exibir uma saída com a mensagem:

A soma dos valores do vetor é: 32

Resposta/Solução:

public static void main(String[] args){
  // um vetor de inteiros contendo sete elementos
  int valores[] = {4, 5, 1, 8, 2, 2, 10};
    
  // o primeiro passo é criar uma variável que vai receber a soma
  // dos valores dos elementos
  int soma = 0;

  // agora vamos usar uma laço for para percorrer todos os elementos
  // do vetor, obter o valor do elemento atual e adicionar ao valor atual
  // da variável soma
  for(int i = 0; i < valores.length; i++){
    soma = soma + valores[i];
    // poderia também ser escrito assim:
    // soma += valores[i];
  }

  // vamos exibir a soma dos valores do vetor
  System.out.println("A soma dos valores do vetor é: " + soma);
}



Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar classes abstratas em Java - Programação Orientada a Objetos - Java POO

Quantidade de visualizações: 21926 vezes
Classes abstratas (abstract classes) não diferem muito das classes que normalmente criamos, ou seja, elas também podem possuir propriedades e métodos. Porém, não é possível criar instâncias de uma classe abstrata usando o operador new. Veja:

abstract class Pessoa{
  public String nome;
  public int idade;
}

public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da classe Pessoa
    Pessoa p = new Pessoa();
  } 
}

Ao tentarmos compilar este exemplo teremos a seguinte mensagem:

Estudos.java:9: Pessoa is abstract; cannot be 
instantiated
    Pessoa p = new Pessoa();
               ^
1 error


Classes abstratas geralmente contém métodos abstratos (ainda que métodos não abstratos sejam também permitidos). Um método abstrato é um método que possui apenas a assinatura. Não há implementação. Esta implementação deverá ser fornecida pela subclasse ou classe derivada. Uma classe que contém métodos abstratos deverá, obrigatoriamente, ser declarada abstrata. Veja um exemplo de um método abstrato:

public abstract class Pessoa{ 
  public abstract String getNome();
}

Se a classe não fosse declarada com o modificador abstract, teríamos a seguinte mensagem de erro de compilação:

Pessoa.java:1: Pessoa is not abstract and does 
not override abstract method getNome() in 
Pessoa
public class Pessoa{
       ^
1 error


Classes abstratas são um dos tópicos mais complicados da linguagem Java e uma dor de cabeça enorme para aqueles que estão estudando para a certificação Java. Mostramos abaixo algumas dicas resultantes de nossas pesquisas sobre o assunto.

1)Uma classe não abstrata não pode conter métodos abstratos. Se uma classe concreta (não abstrata) herda de uma classe abstrata e não implementa todos os métodos abstratos, a classe derivada deve ser declarada abstract. Além disso, métodos abstratos não podem ser marcados como static. Insistir nisso pode gerar a seguinte mensagem de erro de compilação:

Pessoa.java:2: illegal combination of 
modifiers: abstract and static
  public static abstract String getNome();
                                ^


2) Embora uma classe abstrata não possa ser instanciada usando o operador new, ela pode conter construtores. Tais construtores serão invocados nos construtores das classes derivadas.

3) Uma subclasse pode ser abstrata até mesmo se sua superclasse for concreta. E isso é fácil de notar, uma vez que todas as classes Java herdam de Object, que é concreta.

4) Uma classe derivada pode sobrescrever um método de sua superclasse e declará-lo abstract. Isso faz sentido quando a classe derivada for abstract e quiser tornar o método herdado inválido.

5) Embora uma classe abstrata não possa ser instanciada usando o operador new, ela pode ser usada como um tipo de dados. Esta técnica é útil quando parte do time de desenvolvedores precisa adiantar códigos que dependem de classes que ainda não foram implementadas (e, portanto, herdarão das classes abstratas usadas como tipos de dados) por outra parte do mesmo time.


Java ::: Classes e Componentes ::: JTextArea

Java Swing - Como detectar alterações no conteúdo de um JTextArea

Quantidade de visualizações: 111 vezes
Nesta dica veremos como é possível escrever uma aplicação Java Swing que detecta quando o conteúdo de um controle JTextArea é alterado. Para isso nós vamos fazer a janela JFrame implementar a interface DocumentListener e fornecer comportamento para seus método insertUpdate(), removeUpdate() e changedUpdate().

O resultado do código é refletido na imagem abaixo:



E agora o código Java Swing completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
 
public class Estudos extends JFrame implements DocumentListener{
  JTextArea textArea;
  JLabel aviso;
 
  public Estudos() {
    super("Detectando alterações em um JTextArea");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
     
    textArea = new JTextArea(10, 20);
    textArea.setLineWrap(true);
    textArea.getDocument().addDocumentListener(this);
     
    aviso = new JLabel("Aviso de alterações");   
        
    c.add(textArea);
    c.add(aviso);
     
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
   
  public void insertUpdate(DocumentEvent e) {
    aviso.setText("Aviso de Inserção: " + e.toString());
  }
 
  public void removeUpdate(DocumentEvent e) {
    aviso.setText("Aviso de Remoção: " + e.toString());
  }
 
  public void changedUpdate(DocumentEvent e) {
    // pode obter os dois anteriores aqui
    // aviso.setText("Aviso de Alteração: " + e.toString());
  }
}



C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como testar se um diretório existe em C# usando a propriedade Exists da classe DirectoryInfo

Quantidade de visualizações: 5 vezes
Em algumas situações nós precisamos verificar se um diretório existe em C#, talvez para ler ou gravar dados neste arquivo. Isso pode ser feito por meio da propriedade Exists da classe DirectoryInfo.

Esta propriedade retorna um valor true se o diretório existir e false em caso contrário.

Veja o código completo para o exemplo:

using System;
using System.IO;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos criar uma nova instância da classe DirectoryInfo
      DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\imagens");

      // vamos testar se o diretório existe
      if (dir.Exists) {
        Console.Write("Diretório existe");
      }
      else {
        Console.Write("Diretório não existe");
      }

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

O diretório existe.


Python ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Como usar a função type() da linguagem Python para descobrir o tipo de dados de uma variável

Quantidade de visualizações: 14006 vezes
Em algumas situações nós gostaríamos de verificar o tipo de uma variável, ou seja, o tipo do valor que ele contém no momento, antes de efetuar algum cálculo ou procedimento.

Em Python isso pode ser feito por meio da função type(), que nos retorna uma string indicando o tipo de dados sendo armazenado no momento. Note que, em Python, uma mesma variável pode assumir tipos diferentes durante a execução do programa.

Veja o código completo para o exemplo:

def main():
  var = "Osmar J. Silva"
  print("O tipo da variavel var é:", type(var)) 
 
  var = 45
  print("Agora o tipo da variavel var é:", type(var))
 
  var = 45.30
  print("E agora o tipo da variavel var é:", type(var))   
 
if __name__== "__main__":
  main()

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

O tipo da variavel var é: <class 'str'>
Agora o tipo da variavel var é: <class 'int'>
E agora o tipo da variavel var é: <class 'float'>

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á 35 usuários muito felizes estudando em nosso site.