Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercício Resolvido de Java - Como calcular o restante de um salário após o pagamento de duas contas com juros

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

Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia.

Sua saída deverá ser parecida com:

Informe o salário: 1350
Valor da primeira conta: 140
Valor da segunda conta: 300

Total das contas sem juros: 440.0
Total dos juros: 8.8
Total das contas com juros: 448.8
Sobra do salário: 901.2
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) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);  
    
    // vamos pedir que o usuário informe o valor do salário e das duas contas
    System.out.print("Informe o salário: ");
    double salario = Double.parseDouble(entrada.nextLine());
    System.out.print("Valor da primeira conta: ");
    double conta1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Valor da segunda conta: ");
    double conta2 = Double.parseDouble(entrada.nextLine());
    
    // total a ser pago nas duas contas sem os juros
    double totalContas = conta1 + conta2;
    // calcula os juros
    double totalJuros = totalContas * 0.02;
    // total a ser pago com juros
    double totalContasComJuros = totalContas + totalJuros;
    // sobra do salário
    double sobraSalario = salario - totalContasComJuros;
    
    // mostra os resultados
    System.out.println("\nTotal das contas sem juros: " + totalContas);
    System.out.println("Total dos juros: " + totalJuros);
    System.out.println("Total das contas com juros: " + totalContasComJuros);
    System.out.println("Sobra do salário: " + sobraSalario);
    
    System.out.println("\n");
  }
}



C# ::: Windows Forms ::: DataGridView

Como ocultar ou exibir uma determinada coluna do DataGridView do C# Windows Forms

Quantidade de visualizações: 14057 vezes
Em algumas situações precisamos ocultar ou exibir determinadas colunas do DataGridView. Isso pode ser feito definindo-se os valores true ou false para a propriedade Visible da classe DataGridViewColumn. Veja um trecho de código no qual ocultamos a segunda coluna do DataGridView:

private void button3_Click(object sender, EventArgs e){
  // vamos ocultar a segunda coluna
  dataGridView1.Columns[1].Visible = false;
}

Veja que aqui nós acessamos a coleção DataGridViewColumnCollection e usamos um índice para retornar o DataGridViewColumn desejado. É possível também acessar um determinado DataGridViewColumn na coleção de colunas usando o valor definido para sua propriedade name. Veja:

private void button3_Click(object sender, EventArgs e){
  // vamos ocultar a segunda coluna
  dataGridView1.Columns["populacao"].Visible = false;
}



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

Exercício Resolvido de Java - Usando o laço while para pedir ao usuário que tente acertar um número aleatório entre 0 e 10 (incluindo) e mostrar a quantidade de tentativas feitas

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

Escreva um programa Java que gera um número aleatório (randômico) entre 0 e 10 (incluindo estes dois valores) e peça ao usuário para adivinhá-lo. Use um laço while para registrar as tentativas feitas e, a cada tentativa, dê dicas informando se o número gerado é maior ou menor que a tentativa feita. Finalmente mostre a quantidade de tentativas feitas até que o número fosse acertado.

Sua saída deverá ser parecida com a mostrada abaixo:

Informe um número de 0 a 10: 5
Errou! Tente um número menor.
Informe um número de 0 a 10: 2
Parabéns! Você acertou em 2 tentativas.
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
      
    // declaração das variáveis
    int tentativas = 0, numeroLido;
    boolean acertou = false;
    // vamos gerar um número aleatório entre 0 e 10
    int numero = (int)(Math.random() * 11);
    
    // um laço while que repetirá até que o número seja acertado
    while(!acertou){
      System.out.print("Informe um número de 0 a 10: ");
      numeroLido = Integer.parseInt(entrada.nextLine());
      tentativas++;
      
      if(numeroLido == numero){ // acertou?
        System.out.println("Parabéns! Você acertou em " + tentativas + " tentativas.");
        acertou = true;
      }
      else if(numeroLido < numero){ // o número informado é menor que o número gerado
        System.out.println("Errou! Tente um número maior.");  
      }
      else{ // o número informado é maior que o número gerado
        System.out.println("Errou! Tente um número menor.");  
      }
    }
  
    System.out.println("\n");
  }
}



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

Como declarar variáveis em Go usando var e sem definir o tipo da variável

Quantidade de visualizações: 513 vezes
Em algumas situações nós queremos declarar variáveis na linguagem Go mas não queremos definir de antemão o tipo, ou seja, se ela será do tipo int, float, boolean, string, etc. Essa situação é muito comum quando a variável receberá o retorno de uma função.

Quando não definimos o tipo da variável, a própria linguagem se encarrega de fazer isso para nós, por meio da inferência de tipos. Assim, dependendo do valor que a variável recebe, o seu tipo será definido automaticamente.

Veja um exemplo:

// pacote principal
package main

// vamos importar os módulos necessários
import (
  "fmt"
)
  
// esta é a função principal do programa
func main() {
  // vamos declarar uma variável do tipo real
  // Como não definimos o tipo, ele será
  // automaticamente float64
  var salario = 1250.94
  
  // vamos mostrar o tipo da variável
  fmt.Printf("O tipo da variável é: %T", salario)
}

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

O tipo da variável é: float64


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

Como ler o conteúdo de um arquivo uma linha de cada vez usando a função fgets() da linguagem C

Quantidade de visualizações: 29022 vezes
A função fgets(), disponível no header cstdio ou stdio.h, é usada para ler caracteres de um arquivo e armazená-los em um vetor de caracteres. Esta função recebe três argumentos. Veja:

char *fgets(char *buffer, int num, FILE *file);
buffer é um ponteiro para o vetor que receberá o conteúdo lido. num é o número de caracteres que será lido (veja que o conteúdo será lido até alcançar este número, ou um caractere de quebra de linha for encontrado, ou o marcador de fim de arquivo EOF for encontrado, o que vier primeiro). file é um ponteiro para o arquivo que foi aberto.

No exemplo abaixo usamos um laço while() para ler o conteúdo até que o final de arquivo EOF seja encontrado. Desta forma, como sabemos que cada linha no arquivo termina com um marcador de fim de linha, fica fácil ler cada linha. É claro que se a linha sendo lida for maior que o tamanho do buffer, o efeito não será conseguido. Observe ainda que cada linha lida contém o caractere de fim de linha anexado a ela:

#include <stdio.h>
#include <stdlib.h>
 
const int TAM_BUFFER = 255; // quantidade de caracteres 
  // a serem lidos no buffer de cada vez
 
int main(int argc, char *argv[])
{
  FILE *arquivo = fopen("c:\\testes.txt", "r");
  char buffer[TAM_BUFFER];
 
  // testa se o arquivo foi aberto com sucesso
  if(arquivo != NULL){
    // vamos usar um laço para ler o conteúdo do arquivo
    // e armazenar no buffer
    while(fgets(buffer, TAM_BUFFER, arquivo)){
      printf("%s\n", buffer);
    }
 
    fclose(arquivo); // libera o ponteiro para o arquivo
  }
  else{
    printf("Nao foi possivel abrir o arquivo.");
  } 

  printf("\n\n");
  system("PAUSE");
  return 0;
}



JavaScript ::: Fundamentos da Linguagem ::: Estruturas de Controle

JavaScript para leigos - Como usar o laço while da linguagem JavaScript

Quantidade de visualizações: 7314 vezes
O laço while (também chamado de loop ou laço enquanto) da linguagem JavaScript é usado quando queremos repetir uma instrução ou um grupo de instruções ENQUANTO uma condição for satisfeita. Veja sua sintáxe:

while(condição){
  // uma instrução ou grupo de instruções
}

A condição pode ser qualquer expressão que resulte em um valor boolean (true ou false). Note também que o teste condicional é feito antes de cada iteração (repetição) do laço. Isso faz com que este laço, dependendo da condição inicial, possa nunca ser executado.

Veja um trecho de código no qual usamos o laço while para contar de 0 até 10:

<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var i = 0;
  while(i <= 10){
    document.write(i + "<br>");
    i++;
  }  
</script>

</body>
</html>

Ao executarmos este código teremos o seguinte resultado:

0
1
2
3
4
5
6
7
8
9
10

Veja que declaramos uma variável de controle i e a inicializamos com o valor 0. Na entrada do laço nós verificamos se seu valor é menor ou igual a 10. Como esta condição é satisfeita, o laço é executado pela primeira vez. No corpo do laço nós exibimos o valor da variável de controle e a incrementamos em 1. Agora o ciclo se repete. A condição é testada novamente. Se esta for satisfeita, o código entra no corpo do laço novamente e assim por diante.

Veja agora como modificar o laço while anterior para exibir os números de 10 até 0:

<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var i = 10;
  while(i >= 0){
    document.write(i + "<br>");
    i--;
  }  
</script>

</body>
</html>

Agora o resultado do código será:

10
9
8
7
6
5
4
3
2
1
0

Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6.


Python ::: Dicas & Truques ::: Formatação de datas, strings e números

Como formatar inteiros com uma determinada quantidade de zeros à esquerda usando Python

Quantidade de visualizações: 11384 vezes
Nesta dica eu mostro como formatar um valor inteiro com uma determinada quantidade de zeros à sua esquerda. Note que aqui eu estou combinando a função print() com o operador de módulo (%) para indicar os valores que serão formatados.

Esta técnica foi muito usada na época do Python 2.5 e ainda está disponível no Python 3.0 (e creio que deverá continuar por muito tempo ainda).

Veja o trecho de código completo:

# função principal do programa
def main():
  valor1 = 343
  valor2 = 3
 
  # exibirá 000342
  print("O valor é %06d" % (valor1))
 
  # exibirá 0342 e 00000003
  print("Os valor sao %04d e %08d" % (valor1, valor2))
  
if __name__== "__main__":
  main()

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

O valor é 000343
Os valor são 0343 e 00000003


JavaScript ::: Dicas & Truques ::: Data e Hora

Como somar dias a uma data em JavaScript usando uma função personalizada adicionar_dias() que retorna um objeto Date

Quantidade de visualizações: 13636 vezes
Nesta dica mostrarei como podemos escrever uma função JavaScript que permite adicionar dias a uma data recebida como argumento e retorna um novo objeto Date. Como pequenas modificações esta função pode ser usada também para subtrair dias da data.

Veja a página HTML completa para o exemplo:

<!doctype html>
<html>
<head>
  <title>Data e hora em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // função que recebe um objeto Date e uma quantidade
  // de dias e soma esses dias ao Date recebido e
  // e retorna um novo objeto Date
  function adicionar_dias(data, dias){
    return new Date(data.getTime() + (dias * 24 * 60 
      * 60 * 1000));
  }

  // testa a função
  var hoje = new Date();
  document.write("Hoje é " + hoje.toLocaleDateString() + "<br>");
  
  // vamos adicionar 5 dias ao objeto Date
  var data_futura = adicionar_dias(hoje, 5);
  document.write("Daqui 5 dias será: " + 
    data_futura.toLocaleDateString());
</script>
  
</body>
</html>

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

Hoje é 06/02/2023
Daqui 5 dias será: 11/02/2023


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Árvores Binárias e Árvores Binárias de Busca

Exercícios Resolvidos de Java - Travessia de uma árvore binária de busca usando o percurso em-ordem (in-order, In-ordem ou ordem simétrica)

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

O percurso em ordem (em-ordem, in-order, In-ordem ou ordem simétrica) é usado quando queremos exibir os valores dos nós da árvore binária de busca em ordem ascendente.

Neste tipo de percurso nós visitamos primeiramente a sub-árvore da esquerda, então o nó atual e finalmente a sub-árvore à direita do nó atual. É importante notar que esta travessia é feita por meio de uma função recursiva.

Escreva um programa Java que contenha uma árvore binária de busca cujos nós guardarão, além das referências para o filho esquerdo e o filho direito, apenas um valor inteiro. Forneça uma função inserir() que permitirá inserir os valores na árvore. Em seguida forneça uma função recursiva que permitirá fazer a travessia in-order da árvore.

Sua saída deverá ser parecida com:

Informe um valor inteiro: 7
Informe um valor inteiro: 3
Informe um valor inteiro: 18
Informe um valor inteiro: 4
Informe um valor inteiro: 9

Percurso em ordem:
3 4 7 9 18
Resposta/Solução:

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

Código para NoArvore.java:

package estudos;

public class NoArvore {
  int valor; // valor armazenado no nó
  NoArvore esquerdo; // filho esquerdo
  NoArvore direito; // filho direito

  // construtor do nó
  public NoArvore(int valor){
    this.valor = valor;
  }
}

Código para ArvoreBinariaBusca.java:

package estudos;

public class ArvoreBinariaBusca {
  private NoArvore raiz; // referência para a raiz da árvore
  
  // método usado para inserir um novo nó na árvore
  // retorna true se o nó for inserido com sucesso e false
  // se o elemento não puder ser inserido (no caso de já
  // existir um elemento igual)
  public boolean inserir(int valor){
    // a árvore ainda está vazia?
    if(raiz == null){
      // vamos criar o primeiro nó e definí-lo como a raiz da árvore
      raiz = new NoArvore(valor); // cria um novo nó
    }
    else{
      // localiza o nó pai
      NoArvore pai = null;
      NoArvore noAtual = raiz; // começa a busca pela raiz
 
      // enquanto o nó atual for diferente de null
      while(noAtual != null){
        if(valor < noAtual.valor) {
          pai = noAtual;
          noAtual = noAtual.esquerdo;
        }
        else if(valor > noAtual.valor){
          pai = noAtual;
          noAtual = noAtual.direito;
        }
        else{
          return false; // um nó com este valor foi encontrado
        }
      }
       
      // cria o novo nó e o adiciona ao nó pai
      if(valor < pai.valor){
         pai.esquerdo = new NoArvore(valor);
      }
      else{
        pai.direito = new NoArvore(valor);
      }
    }

    return true; // retorna true para indicar que o novo nó 
    // foi inserido
  }
  
  // método que permite disparar a travessia em-ordem
  public void emOrdem(){
    emOrdem(raiz);
  }

  // sobrecarga do método emOrdem com uma parâmetro (esta é a
  // versão recursiva do método)
  private void emOrdem(NoArvore raiz){
    if(raiz == null){ // condição de parada
      return;
    }
    
    // visita a sub-árvore da esquerda
    emOrdem(raiz.esquerdo);
    // visita o nó atual
    System.out.print(raiz.valor + " ");
    // visita a sub-árvore da direita
    emOrdem(raiz.direito);
  }
}

E aqui está o código para a classe que permite testar a árvore:

package estudos;

import java.util.Scanner;

public class Estudos {
  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("Erro. Um elemento já contém este valor.");  
      }
    }
    
    // vamos exibir os nós da árvore usando o percurso em ordem
    System.out.println("\nPercurso em ordem:");
    arvore.emOrdem();
    
    System.out.println("\n");
  }
}



PHP ::: Dicas & Truques ::: Data e Hora

Como verificar se um ano é bissexto usando PHP

Quantidade de visualizações: 125 vezes
Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da terra e com os eventos sazonais relacionados às estações do ano.

Na linguagem PHP podemos verificar se um ano é bissexto checando o valor retornado por date("L"). Se o valor retornado for "1", então o ano é bissexto. Observe que, em PHP, o valor 1 é considerado true (verdadeiro).

Veja um trecho de código completo no qual testamos se um determinado ano é bissexto ou não:

<html>
<head>
  <title>Estudos PHP</title>
</head>
 
<body>

<?php  
  // função que verifica se o ano é bissexto
  function ano_bissexto($ano){  
    return (date('L', mktime(0, 0, 0, 1, 1, $ano)) == 1);  
  }  

  // agora vamos testar a função
  $ano = 2020;
  if(ano_bissexto($ano)){
    echo "O ano $ano é bissexto";
  }
  else{
    echo "O ano $ano não é bissexto";
  }
?>  

</body>
</html>

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

O ano 2020 é bissexto

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


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


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