Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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 calcular salário líquido em Java - Calculando o salário líquido de um professor

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

Escreva um programa Java que calcule o salário líquido de um professor. Seu programa deverá solicitar que o usuário informe o valor da hora aula (como double), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como double). Em seguida mostre o salário líquido, formatado de acordo com a moeda brasileira em vigor (na resolução eu usei o Real).

Sua saída deverá ser parecida com:

Informe o valor da hora aula: 28
Informe o número de horas trabalhadas no mês: 12
Informe o percentual de desconto do INSS: 8
Salário Bruto: R$ 336,00
Total de Descontos: R$ 26,88
Salário Líquido: R$ 309,12
Resposta/Solução:

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

package estudos;

import java.text.NumberFormat;
import java.util.Scanner;

public class Estudos{
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
      
    // vamos ler o valor do hora aula
    System.out.print("Informe o valor da hora aula: ");
    double valorHoraAula = Double.parseDouble(entrada.nextLine());
    
    // vamos ler o número de horas trabalhadas no mês
    System.out.print("Informe o número de horas trabalhadas no mês: ");
    int horasTrabalhadas = Integer.parseInt(entrada.nextLine());
    
    // vamos ler o percentual de desconto do INSS
    System.out.print("Informe o percentual de desconto do INSS: ");
    double percentualDescontoINSS = Double.parseDouble(entrada.nextLine());
    
    // vamos calcular o salário bruto
    double salarioBruto = valorHoraAula * horasTrabalhadas;
    
    // agora calculamos o total do desconto
    double totalDesconto = (percentualDescontoINSS / 100) * salarioBruto;
    
    // finalmente calculamos o salário líquido
    double salarioLiquido = salarioBruto - totalDesconto;
    
    // mostramos o resultado
    NumberFormat formato = NumberFormat.getCurrencyInstance();
    System.out.println("Salário Bruto: " + formato.format(salarioBruto));
    System.out.println("Total de Descontos: " + formato.format(totalDesconto));
    System.out.println("Salário Líquido: " + formato.format(salarioLiquido));
  }
}



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

Programação Orientada a Objetos em PHP - Como passar um objeto de uma classe para uma função PHP

Quantidade de visualizações: 8591 vezes
Em algumas situações precisamos fornecer um objeto de uma classe para um método de outra classe ou mesmo uma simples função PHP. Nesta dica eu mostro como isso pode ser feito. Note que, ao receber o objeto da classe no método ou função, todas as alterações feitas no objeto serão refletidas no objeto original, ou seja, objetos de classe são automaticamente passados por referência em PHP. Eis o código:

<?php
  // classe Cliente com duas variáveis privadas e seus
  // correspondentes métodos mutatórios e acessórios
  class Cliente{
    private $nome;
    private $email;

    public function setNome($nome){
      $this->nome = $nome;
    }

    public function getNome(){
      return $this->nome;
    }

    public function setEmail($email){
      $this->email = $email;
    }

    public function getEmail(){
      return $this->email;
    }
  }

  // vamos criar um novo objeto da classe Cliente
  $c = new Cliente;
  $c->setNome("Osmar J. Silva");
  $c->setEmail("osmar@arquivodecodigos.com.br");

  // vamos agora passar este objeto para uma função PHP
  imprimirCliente($c);

  // e aqui está a função que recebe o objeto da classe Cliente
  // e exibe o valor de suas variáveis
  function imprimirCliente($cliente){
    echo "Nome: " . $cliente->getNome() . "<br>
      E-Mail: " . $cliente->getEmail(); 
  }
?>

Ao executar este código teremos o seguinte resultado:

Nome: Osmar J. Silva
E-Mail: osmar@arquivodecodigos.com.br


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

Exercícios Resolvidos de Java - Escreva um programa Java que usa o laço for para desenhar um padrão de diamante de estrelas

Quantidade de visualizações: 1424 vezes
Exercício Resolvido de Java - Escreva um programa Java que usa o laço for para desenhar um padrão de diamante de estrelas

Pergunta/Tarefa:

Neste exercício para a prática da linguagem Java você deverá usar o laço for para desenhar o famoso padrão de diamante de estrelas. Você pode também usar o laço while, se assim você o desejar.

O programa deverá pedir que o usuário informe a quantidade de linhas que marcará a metade do diamante.

Seu programa deve apresentar a seguinte saída:

Informe a quantidade de linhas: 5
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
Resposta/Solução:

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

package exercicio;

import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // vamos usar um objeto Scanner para ler a entrada do usuário
    Scanner leitura = new Scanner(System.in);
    
    // vamos pedir a quantidade de linhas 
    System.out.print("Informe a quantidade de linhas: ");
    // vamos ler a entrada do usuário
    int linhas = Integer.parseInt(leitura.nextLine());
    
    int estrelas = 1; // começamos com uma estrela (no topo do diamante)
    int espacos = linhas - 1; // se linhas for igual a 5 nós começamos
    // com 4 espaços
    
    // repete duas vezes a quantidade de linhas informadas
    for(int i = 1; i < linhas * 2; i++){
      // vamos imprimir os espaços
      for(int j = 1; j <= espacos; j++){
        System.out.print(" ");
      }
        
      // agora vamos imprimir estrelas
      for(int j = 1; j < estrelas * 2; j++){
        System.out.print("*");
      }
		    
      // passamos para a próxima linha
      System.out.println();
        
      if(i < linhas){ // é a parte superior do diamante
        espacos--; // diminui os espaços
        estrelas++; // e aumenta as estrelas
      }
      else{ // é a parte inferior do diamente
        espacos++; // aumenta os espaços
        estrelas--; // e diminui as estrelas
      }
    }
  }
}



PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle

PHP para iniciantes - Como usar a usar o laço do...while em PHP - Como usar o laço do...while da linguagem PHP

Quantidade de visualizações: 14457 vezes
O laço do...while, ou loop do...while (faça...enquanto) da linguagem PHP é bem parecido com o laço while (enquanto). A diferença é que no do...while, a condição é testada no final da primeira iteração, o que garante que o laço será executado no mínimo uma vez. Veja um exemplo de seu uso:

<?
  $valor = 1;
   
  do{
    echo $valor . "<br>";
    $valor++;
  }while($valor <= 10);
?>

Este laço exibirá o seguinte resultado:

1
2
3
4
5
6
7
8
9
10

Lembre-se que o teste de continuidade do laço do...while ocorre no final da primeira iteração, enquanto no laço while(), o teste de continuidade ocorre antes da primeira iteração.

Dica revisada, atualizada e testada no PHP 8.


PHP ::: Dicas & Truques ::: PDO (PHP Data Objects)

PHP PDO - Como disparar comandos SELECT usando a função PDO->query()

Quantidade de visualizações: 14574 vezes
Nesta dica mostrarei como disparar uma query SELECT usando PDO->query(). Veja que mostramos ainda como percorrer os resultados obtidos.

Para este exemplo eu me conectei a um banco de dados MySQL e obtive dados de uma tabela chamada "produtos".

Veja o código PHP PDO MySQL completo para o exemplo (incluindo a conexão com o banco de dados):

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  // primeiro vamos obter a conexão com o banco de dados
  $server = "localhost";
  $user = "root";
  $pass = "osmar1234";
  $db = "estudos";
    
  try{
    $conn = new PDO("mysql:host=$server;dbname=$db", 
       $user, $pass);
    // echo "Conexão efetuada com sucesso.";
  } 
  catch(PDOException $e){
    die('Não foi possível conectar: ' . $e->getMessage());
  }

  // agora que já temos a conexão, vamos disparar
  // o comando DML SELECT
  $resultado = $conn->query("SELECT * FROM produtos");
   
  if($resultado){
    while($linha = $resultado->fetch(PDO::FETCH_ASSOC)){
      echo "Id: " . $linha['id'] . "<br>";
      echo "Nome: " . $linha['nome'] . "<br>";
      echo "Preço: " . $linha['preco'] . "<br>";
      echo "Quantidade: " . $linha['quantidade'] . "<br><br>"; 
    }
  } 
?>
  
</body>
</html>

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

Id: 1
Nome: ARROZ TIPO A
Preço: 13
Quantidade: 320

Id: 2
Nome: FEIJÃO CARIOCA
Preço: 9.5
Quantidade: 120

Id: 3
Nome: EXTRATO DE TOMATE AMD
Preço: 4.24
Quantidade: 50


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

Como criar um diretório em Python usando a função mkdir() do módulo os

Quantidade de visualizações: 3220 vezes
Podemos usar a função mkdir() do módulo os da linguagem Python para criarmos diretórios. Em sua versão mais simples, este método pede somente o nome e caminho do diretório a ser criado. Se o caminho for omitido, o novo diretório será criado no diretório atual, ou seja, o diretório da aplicação Python.

Veja um exemplo no qual criamos um diretório chamado "app" no diretório "C:\estudos_python":

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  # vamos criar o diretório
  os.mkdir(diretorio)

  # mostramos o resultado
  print('O diretório foi criado com sucesso.')

if __name__== "__main__":
  main()

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

c:\estudos_python>python estudos.py
O diretório foi criado com sucesso.

Note que um erro do tipo FileExistsError será exibido se o diretório já existir:

Traceback (most recent call last):
File "c:\estudos_python\estudos.py", line 16, in <module>
main()
File "c:\estudos_python\estudos.py", line 10, in main
os.mkdir(diretorio)
FileExistsError: [WinError 183] Não é possível criar um arquivo já existente: 'C:\\estudos_python\\app'

Uma forma de evitar este erro é verificar se o diretório já existe ou usar uma construção try...except. Veja:

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  try:
    # vamos criar o diretório
    os.mkdir(diretorio)
    # mostramos o resultado
    print('O diretório foi criado com sucesso.')
  except os.error as error_msg:
    print("Houve um erro: %s" % str(error_msg))

if __name__== "__main__":
  main()

Execute o código novamente e veja como o tratamento de erro ficou mais elegante.


C ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de C - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles

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

Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número.

Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer.

Sua saída deverá ser parecida com:

Informe o primeiro número inteiro: 6
Informe o segundo número inteiro: 3
O maior número é: 6
Resposta/Solução:

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

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

// protótipo da função que receberá dois números inteiros
// e retornará o maior deles
int maior_numero(int num1, int num2);

// função principal do programa
int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português 
  
  // variáveis usadas na resolução do problema
  int num1, num2, maior;
  
  // vamos pedir para o usuário informar os dois números
  printf("Informe o primeiro número inteiro: ");
  scanf("%d", &num1);
  printf("Informe o segundo número inteiro: ");
  scanf("%d", &num2);
  
  // os números são iguais?
  if(num1 == num2){
    printf("Erro. Os dois números são iguais.");
  }
  else{
    // vamos chamar a função para obter o número maior
    maior = maior_numero(num1, num2);
    printf("O maior número é: %d", maior);	
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}

// função que receberá dois números inteiros e retornará
// o maior deles
int maior_numero(int num1, int num2){
  // o primeiro número é maior que o segundo?
  if(num1 > num2){
    return num1;
  }
  else{
    return num2;
  }
}



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

Exercícios Resolvidos de Java - Declarar e construir um vetor, pedir ao usuário para informar os valores dos elementos e mostrar o maior e o menor valor armazenado no vetor

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

Escreva um programa Java GUI ou console que declara e constrói um vetor de 10 inteiros. Em seguida peça ao usuário para informar os valores para os elementos do vetor e, uma vez preenchida, percorra o vetor e mostre os valores armazenados. Para finalizar varra o vetor novamente e mostre os valores do maior e do menor elemento.

Sua saída deverá ser parecida com:

Informe o 1º valor: 8
Informe o 2º valor: 3
Informe o 3º valor: 4
Informe o 4º valor: 1
Informe o 5º valor: 6
Informe o 6º valor: 5
Informe o 7º valor: 7
Informe o 8º valor: 2
Informe o 9º valor: 3
Informe o 10º valor: 8

Os valores informados foram: 
8  3  4  1  6  5  7  2  3  8  

O maior valor é: 8
O menor valor é: 1
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);
      
    // declara e constrói um vetor de 10 inteiros
    int valores[] = new int[10];
        
    // vamos pedir ao usuário para informar os 10 valores
    for(int i = 0; i < valores.length; i++){
      System.out.print("Informe o " + (i + 1) + "º valor: ");
      valores[i] = Integer.parseInt(entrada.nextLine());
    }
    
    // vamos exibir os valores informados
    System.out.println("\nOs valores informados foram: ");
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "  ");
    }
    
    // agora vamos encontrar o maior e o menor valor no vetor
    // vamos assumir que o primeiro elemento
    // possui o maior e o menor valor
    int maior = valores[0], menor = valores[0]; 
    for(int i = 0; i < valores.length; i++){
      // encontra o maior valor
      if(valores[i] > maior){
        maior = valores[i];  
      }
      
      // encontra o menor valor
      if(valores[i] < menor){
        menor = valores[i];  
      }
    }
    
    System.out.println("\n\nO maior valor é: " + maior);
    System.out.println("O menor valor é: " + menor);
  }
}

Uma idéia na resolução deste exercício é assumir que o primeiro elemento do vetor possui tanto o maior quanto o menor valor.


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

Exercícios Resolvidos de Python - Como testar se um número é potência de dois usando Python

Quantidade de visualizações: 762 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 dois.

Sua saída deverá ser parecida com:

Informe um valor inteiro: 8
O valor 8 é potência de dois
Informe um valor inteiro: 34
O valor 34 não é potência de dois
Informe um valor inteiro: 64
O valor 64 é potência de dois
Resposta/Solução:

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

# método que recebe um número inteiro e informe se ele é
# potência de dois
def is_potencia_dois(n):
  # usamos o operador AND de bits para verificar se n AND n-1
  # é igual a 0
  return (n > 0) and (n & (n - 1)) == 0

# método principal
def main():
  # vamos pedir para o usuário informar um valor inteiro
  valor = int(input("Informe um valor inteiro: "))
    
  # vamos testar se o número informado é potência de dois
  if is_potencia_dois(valor):
    print("O valor {0} é potência de dois".format(valor))
  else:
    print("O valor {0} não é potência de dois".format(valor))
 
if __name__== "__main__":
  main()



VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercício Resolvido de VisuAlg - Como testar se um ano é bissexto em VisuAlg - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou não

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

Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele 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. O último ano bissexto foi 2012 e o próximo será 2016.

Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400.

Escreva um programa VisuAlg que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não.

Sua saída deverá ser parecida com:

Informe o ano: 2024
O ano informado é bissexto.
Resposta/Solução:

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

algoritmo "Como testar se um ano é bissexto em VisuAlg"

var
  // variáveis usadas na resolução do problema
  ano: inteiro

inicio
  // vamos solicitar que o usuário informe um ano
  escreva("Informe o ano: ")
  leia(ano)

  // vamos verificar se o ano informado é bissexto
  se (((ano mod 4 = 0) e (ano mod 100 <> 0)) ou (ano mod 400 = 0)) entao
    escreva("O ano informado é bissexto.")
  senao
    escreva("O ano informado não é bissexto.")
  fimse

fimalgoritmo


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