Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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 Apenas R$ 19,90
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de C - Escreva um programa C para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array

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

Dado o seguinte vetor de inteiros:

// vamos declarar e construir um vetor de 8 inteiros
int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
Escreva um programa C para mover todos os zeros para o final do vetor, ou seja, para a direita, sem alterar a ordem dos elementos diferentes de zero já presentes no array e sem criar um vetor adicional ou temporário.

Sua saída deverá ser parecida com:

Vetor na ordem original:

0   3   0   5   7   4   0   9   

Vetor com os zeros deslocados para o final:

3   5   7   4   9   0   0   0
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
  
int main(int argc, char *argv[]){
  // vamos declarar e construir um vetor de 8 inteiros
  int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
  int i; // para o controle do laço
  int j; // variável auxiliar
  int temp; // variável temporária
  
  setlocale(LC_ALL,""); // para acentos do português
		
  // vamos mostrar o vetor na ordem original
  printf("Vetor na ordem original:\n");
  for(i = 0; i < 8; i++){
    printf("%d   ", valores[i]);
  }
    
  // vamos inicializar j como 0 para que ele aponte para
  // o primeiro elemento do vetor
  j = 0;
    
  // agora o laço for percorre todos os elementos do vetor,
  // incrementanto a variável i e deixando o j em 0
  for(i = 0; i < 8; i++){
    // encontramos um valor que não é 0
    if(valores[i] != 0){
      // fazemos a troca entre os elementos nos índices
      // i e j
      temp = valores[i];
      valores[i] = valores[j];
      valores[j] = temp;
      // e avançamos o j para o elemento seguinte
      j++;
    }
  }
    
  // agora mostramos o resultado
  printf("\n\nVetor com os zeros deslocados para o final:\n");
  for(i = 0; i < 8; i++){
    printf("%d   ", valores[i]);
  }
    
  printf("\n\n");
  system("pause");
  return 0;
}

Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes.


GNU Octave ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o comprimento da hipotenusa em GNU Octave dadas as medidas do cateto oposto e do cateto adjascente

Quantidade de visualizações: 1104 vezes
Nesta dica mostrarei como é possível usar a linguagem GNU Octave para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

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

Tudo que temos a fazer a converter esta fórmula para código GNU Octave (um script do GNU Octave). Veja:

a <- 20 # medida do cateto oposto
b <- 30 # medida do cateto adjascente
  
# agora vamos calcular o comprimento da hipotenusa
c <- sqrt(power(a, 2) + power(b, 2))
 
# e mostramos o resultado
fprintf("O comprimento da hipotenusa é: %f\n\n", c)

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

O comprimento da hipotenusa é: 36.056000

Como podemos ver, o resultado retornado com o código GNU Octave confere com os valores da imagem apresentada.


Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o comprimento da hipotenusa em Delphi dadas as medidas do cateto oposto e do cateto adjascente

Quantidade de visualizações: 1778 vezes
Nesta dica mostrarei como é possível usar a linguagem Delphi para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras), tudo que temos a fazer a converter esta fórmula para código Delphi. Veja:

procedure TForm2.Button1Click(Sender: TObject);
var
  a, b, c: Real;
begin
  a := 20; // medida do cateto oposto
  b := 30; // medida do cateto adjascente

  // agora vamos calcular o comprimento da hipotenusa
  c := sqrt(sqr(a) + sqr(b));

  // e mostramos o resultado
  Edit1.Text := 'A medida da hipotenusa é: ' +
    FloatToStr(c);
end;

Perceba que o cálculo foi efetuado a partir do evento Click de um botão Button1 e o resultado foi exibido na propriedade Text de uma caixa de texto Edit1.

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

A medida da hipotenusa é: 36,0555127546399

Como podemos ver, o resultado retornado com o código Delphi confere com os valores da imagem apresentada.


C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como pesquisar um valor em um vetor C# e retornar seu índice usando a função IndexOf() da classe Array

Quantidade de visualizações: 14073 vezes
Nesta dica mostrarei como pesquisar um valor em um array C# e retornar o índice de sua primeira ocorrência usando o método IndexOf() da classe Array. Este método recebe uma referência ao array que queremos pesquisar e o valor a ser pesquisado. Neste exemplo queremos pesquisar um valor inteiro.

Veja o código C# completo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // cria e inicializa um array de inteiros
      int[] valores = { 14, 69, 21, 30, 17, 23, 14 };

      Console.Write("Informe o valor a ser pesquisado: ");
      string valor = Console.ReadLine();

      int pos = Array.IndexOf(valores, Convert.ToInt32(valor));

      if (pos > -1) {
        Console.WriteLine("O valor pesquisado foi encontrado no índice: " + pos);
      }
      else {
        Console.WriteLine("O valor pesquisado não foi encontrado.");
      }

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

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

Informe o valor a ser pesquisado: 17
O valor pesquisado foi encontrado no índice: 4


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Exercício Resolvido de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash table

Quantidade de visualizações: 2613 vezes
Exercícios Resolvidos de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash table

Pergunta/Tarefa:

Dadas duas palavras p1 e p2, escreva um código Python que informa se uma palavra é anagrama da outra. Um anagrama é uma espécie de jogo de palavras criado com a reorganização das letras de uma palavra ou expressão para produzir outras palavras ou expressões, utilizando todas as letras originais exatamente uma vez.

Para esta solução você deverá, obrigatoriamente, usar um dicionário Python, ou seja, um objeto dict. O objetivo é construir duas tabelas de frequências dos caracteres de cada palavra. Dicionários em Python são similares às tabelas hash (hash tables) em outras linguagens de programação.

Seu programa deverá exibir a seguinte saída:



Resposta/Solução:

Veja a resolução com código comentado em Python:

# método que recebe duas palavras e retorna
# verdadeiro se uma palavra for anagrama da
# outra
def anagramas(palavra1, palavra2):
  # o primeiro passo é verificar se os comprimentos das duas
  # palavras são iguais
  if(len(palavra1) != len(palavra2)):
    return False 

  # agora criamos dois dictionaries para as frequencias de
  # cada uma das palavras
  freq_p1 = {}
  freq_p2 = {}

  # agora registramos as frequências de letras na primeira
  # palavra
  for letra in palavra1:
    # a letra já está no dicionário?
    if letra in freq_p1:
      freq_p1[letra] += 1 # aumenta a frequêcia desta letra
    else:
      freq_p1[letra] = 1 # ainda não estava no dicionário

  # agora registramos as frequências de letras na segunda
  # palavra
  for letra in palavra2:
    # a letra já está no dicionário?
    if letra in freq_p2:
      freq_p2[letra] += 1 # aumenta a frequêcia desta letra
    else:
      freq_p2[letra] = 1 # ainda não estava no dicionário 

  # registradas as frequências de letras das duas palavras,
  # chegou a hora de compararmos os dois dicionários
  for chave in freq_p1:
    # esta chave não está no segundo dicionário ou
    # possui valores diferentes?
    if chave not in freq_p2  or freq_p1[chave] != freq_p2[chave]:
      return False 
  
  # se chegou até aqui então uma palavra é anagrama da outra
  return True 

def main():
  # vamos ler duas palavras e verificar se uma é anagrama da outra
  palavra1 = input("Informe a primeira palavra: ")
  palavra2 = input("Informe a segunda palavra: ")

  # vamos chamar o método que faz a verificação
  if(anagramas(palavra1, palavra2)):
    print("As duas palavras são anagramas")
  else:
    print("As duas palavras não são anagramas")

if __name__== "__main__":
  main()



Java ::: Pacote java.awt ::: Graphics

Como desenhar texto na superfície de uma JLabel do Java Swing usando o método drawString() da classe Graphics

Quantidade de visualizações: 11838 vezes
A classe Graphics possui um método chamado drawString() que é usado para desenhar uma string na superfície de um componente. Veja a assinatura deste método:

public abstract void drawString(String str,
  int x,int y)


Como podemos ver, só precisamos fornecer a string a ser desenhada, a coordenada x e a coordenada y. Estas coordenadas são obtidas a partir do canto superior esquerdo do componente no qual desenharemos.

O trecho de código abaixo mostra como desenhar a string "Arquivo de Códigos" em um JLabel:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JLabel label;  

  public Estudos() {
    super("Desenhando em um JLabel");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    // Cria um JLabel
    label = new JLabel();
    c.add(label, BorderLayout.CENTER);

    // Cria um botão
    JButton btn = new 
      JButton("Desenhar uma string");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          
          // Desenha uma string no JLabel
          Graphics graphics = label.getGraphics();
          graphics.drawString("Arquivo de Códigos", 
            20, 50);     

        }
      }
    );
    
    // Adiciona o botão à janela
    c.add(btn, BorderLayout.SOUTH);

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Um programa que calcule e mostre a tabuada de multiplicação de um número digitado pelo usuário (entre 1 e 10)

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

Escreva um programa Java que usa o laço for para calcular a tabuada de multiplicação para um número digitado pelo usuário. Este número deve estar entre 1 e 10 (inclusive).

Sua saída deve ser parecida com:

Informe um valor entre 1 e 10: 8

A tabuada do número 8 é:

8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72
8 X 10 = 80
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
    
    // vamos solicitar que o usuário informe um inteiro entre 1 e 10
    System.out.print("Informe um valor entre 1 e 10: ");
    int numero = Integer.parseInt(entrada.nextLine());
    
    // vamos verificar se o valor está na faixa desejada
    if((numero < 1) || (numero > 10)){
      System.out.println("O número deve ser entre 1 e 10");
    }
    else{
      // o número é válido....vamos exibir a tabuada
      System.out.println("\nA tabuada do número " + numero + " é:\n");
      
      for(int i = 1; i <= 10; i++){
        System.out.println(numero + " X " + i + " = " + (numero * i));  
      }  
    }
    
    System.out.println("\n");
  }
}



C# ::: Dicas & Truques ::: Strings e Caracteres

Como substituir todos os espaços em uma string pelo caractere de underline em C# usando o método Replace() da classe String

Quantidade de visualizações: 8316 vezes
Nesta dica de C# eu trago um trecho de código que mostra como substituir todos os espaços em uma string pelo caractere de sublinhado (underline). Para a realização desta tarefa nós vamos usar o método Replace() da classe String da linguagem C#.

Veja o código completo para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto muito de C#";
      Console.WriteLine("Frase original: " + frase);

      // substitui os espaços por underline
      frase = frase.Replace(" ", "_");
      Console.WriteLine("Depois da substituição: " + frase);

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

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

Frase original: Gosto muito de C#
Depois da substituição: Gosto_muito_de_C#


Python ::: Dicas & Truques ::: Data e Hora

Como construir uma data em Python usando o construtor da classe datetime

Quantidade de visualizações: 6979 vezes
Nesta dica mostrarei como podemos usar o construtor da classe datetime do Python para construir e retornar uma nova data. Note que estou fornecendo a data para construtor da classe datetime usando o ano, o mês e o dia.

Veja o código Python completo para o exemplo:

from datetime import datetime

# função principal do programa
def main():
  # vamos definir o dia, mês e ano
  dia = 20
  mes = 4
  ano = 1980

  # Constrói um datetime (ano, mês, dia)
  data = datetime(ano, mes, dia)

  # Exibe o conteúdo do datetime
  print("A data construída foi {0}".format(data))
 
  # Obtém o ano da data recém-criada
  print("O ano da data construída foi: {0}".format(data.year))

if __name__== "__main__":
  main()

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

A data construída foi 1980-04-20 00:00:00
O ano da data construída foi: 1980


JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como remover elementos duplicados de um array em JavaScript usando as funções filter() e indexOf() do objeto Array

Quantidade de visualizações: 5041 vezes
Em várias ocasições temos códigos JavaScript envolvendo arrays (vetores, matrizes) e gostaríamos de eliminar os valores duplicados, ou seja, retornar um novo vetor sem elementos repetidos. Para isso podemos usar os métodos filter() e indexOf().

Como pode ser visto em dicas nesta mesma seção, o método filter() é usado para retornar apenas os elementos do vetor que se encaixem em uma determinada condição. O método indexOf(), por sua vez, retorna o índice da primeira ocorrência do elemento no vetor. Assim, a combinação desses dois métodos é perfeita para esta situação, ainda que você consiga fazer de outras formas.

Veja o trecho de código a seguir:

<script type="text/javascript">
  function removerDuplicados(valor, indice, vetor){
    // o índice desse elemento é o primeiro encontrado
    // no vetor?
    if(indice == vetor.indexOf(valor)){
      return true;
    }

    return false;
  }  

  var valores = new Array(6, 6, 1, 7, 3, 7, 1, 7, 4, 3, 5);
  // vamos obter um vetor sem repetições
  var novoVetor = valores.filter(removerDuplicados);
  // vamos mostrar o resultado
  window.alert(novoVetor);
</script>

Execute este código e veja que apenas os valores únicos serão retornados. Note agora como o mesmo código pode ser escrito de forma mais reduzida:

<script type="text/javascript">
  var valores = new Array(8, 8, 1, 7, 3, 7, 1, 7, 8, 3, 5);
  // vamos obter um vetor sem repetições
  var novoVetor = valores.filter(function(val, ind, vet){
    return vet.indexOf(val) == ind;
  });
  // vamos mostrar o resultado
  window.alert(novoVetor);
</script>


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