Java ::: Tratamento de Erros ::: Erros de Tempo de Execução

Como corrigir um erro ClassCastException em Java - Como tratar a exceção ClassCastException do Java

Quantidade de visualizações: 16980 vezes
A exceção ClassCastException é um erro de tempo de execução que ocorre quando tentamos fazer um cast (coerção - conversão explícita) de uma classe para outra classe diferente desta ou que não seja uma superclasse desta. Em outras palavras, casts válidos para classes e interfaces devem seguir as regras abaixo:

1) Se NovoTipo é uma classe, a classe da expressão sendo convertida deve ser do tipo NovoTipo ou herdar de NovoTipo.
2) Se NovoTipo é uma interface, a classe da expressão sendo convertida deve implementar NovoTipo.

Considere o código a seguir:

public class Estudos{
  public static void main(String args[]){
    Object x = new Integer(0);
    System.out.println((String)x);
  }
}

Este código compila normalmente. Porém, ao ser executado, a seguinte mensagem de erro é exibida:

Exception in thread "main" 
java.lang.ClassCastException: java.lang.Integer 
cannot be cast to java.lang.String
  at Estudos.main(Estudos.java:4)


Esta mensagem nos informa que a classe Integer não pode sofrer um cast para String, uma vez que Integer não é e nem herda de String. Veja agora a nova versão:

public class Estudos{
  public static void main(String args[]){
    Object x = new Integer(0);
    System.out.println((Integer)x);
  }
}

Veja que agora nós estamos fazendo o cast de uma referência Object para Integer. Embora Object não seja e nem herde de Integer, o sistema de tempo de execução sabe que x guarda atualmente uma referência a um Integer:

Object x = new Integer(0);



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

Vetores e Matrizes em PHP - Como sortear um ou mais elementos de um vetor em PHP

Quantidade de visualizações: 14785 vezes
Nesta dica mostrarei como usar a função array_rand() da linguagem PHP para sortear elementos de um vetor (array). Coloque o código abaixo na sua página e atualize-a várias vezes para ver o resultado:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  $pessoas = array();  
  $pessoas[0] = "Carlos";
  $pessoas[1] = "Juliana";
  $pessoas[2] = "Igor";
  $pessoas[3] = "Marcelo";
 
  // sorteia um elemento
  $sorteado = array_rand($pessoas, 1);
  echo "O sorteado foi: " . $pessoas[$sorteado] . 
    "<br><br>";
 
  // sorteia dois elementos
  $sorteados = array_rand($pessoas, 2);
  echo "Os sorteados foram: <br>";
  for($i = 0; $i < count($sorteados); $i++){
    echo $pessoas[$sorteados[$i]] . "<br>";
  }
?>

</body>
</html>

Ao executar este código nós teremos um resultado parecido com:

O sorteado foi: Carlos

Os sorteados foram:
Carlos
Igor


PHP ::: Dicas & Truques ::: Formulários

Como obter o valor do item selecionado em um element HTML select (menu de lista) de seleção única usando PHP

Quantidade de visualizações: 21596 vezes
Os controles do tipo combobox ou select da linguagem HTML são úteis quando queremos fornecer uma lista de itens a partir da qual o usuário poderá selecionar apenas um ítem (ou vários itens, no caso de uma lista de seleção múltipla.

Nesta dica mostrarei como usar PHP para obter o item que o usuário selecionou. Veja o código completo abaixo.

Vamos começar com a página HTML que contém o elemento <select>:

<form name="cadastro" method="post" action="testes.php">
  <b>Escolha sua linguagem favorita:</b><br>
  <select name="linguagem">
    <option value="Java" selected>Java</option>
    <option value="C++">C++</option>
    <option value="Python">Python</option>
    <option value="Delphi">Delphi</option>
  </select>
  <input type="submit" value="Enviar!">
</form>

Agora, para obter o valor do item selecionado podemos usar o seguinte código PHP:

<?
  // Obtém o valor selecionado
  $selecionada = $_POST["linguagem"];
   
  // Exibe o resultado
  echo "Sua linguagem favorita é: " . $selecionada;
?>

Quando você abrir a página HTML, selecionar um item e clicar o botão Enviar, você verá o seguinte resultado na página PHP:

Sua linguagem favorita é: Delphi

Esta dica foi revisada no PHP 8.


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

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

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

Escreva um programa C 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 C:

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

int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português

  int numero, quant, primeiro_digito, ultimo_digito, soma;

  // vamos pedir para o usuário informar um número inteiro
  printf("Informe um número inteiro: ");
  scanf("%d", &numero);
    
  // vamos obter a quantidade (-1) de dígitos no número informado
  quant = (int)log10(numero);
  primeiro_digito = (int)(numero / pow(10, quant));
  ultimo_digito = numero % 10;
  	
  // soma o primeiro e o último dígito
  soma = primeiro_digito + ultimo_digito;
	
  // mostra o resultado
  printf("A soma do primeiro e do último dígito é: %d", soma);
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



Python ::: Fundamentos da Linguagem ::: Passos Iniciais

Como criar módulos de código reutilizável em Python

Quantidade de visualizações: 8618 vezes
Uma das características da boa programação é reutilizar ao máximo códigos bem testados e independentes. A criação de módulos de funções e definições de classes em Python pode ser feita de forma bem simples.

1) Comece criando um arquivo chamado funcoes.py com o seguinte conteúdo:

"""
  Sou um módulo Python. A única funcionalidade que
  ofereço é uma função que soma dois números
"""

def somar(num1, num2):
  return (num1 + num2)

2) Salve este arquivo no diretório atual de sua aplicação e vamos importá-lo. Para isso escreva um novo programa. Uma sugestão é:

"""
  Sou o programa principal e vou importar
  o módulo que contém a função somar
"""

import funcoes

def main():
  print(funcoes.somar(3, 5))  
    
if __name__== "__main__":
  main()

3) Execute o programa e veja o resultado.

Para que este programa funcione corretamente, é preciso que o módulo a ser importado esteja no diretório atual ou em qualquer um dos diretórios pesquisados pelo interpretador Python, geralmente representados pelo variável de ambiente PYTHONPATH.

Porém, há situações que queremos agrupar nossos módulos em um diretório dentro do diretório principal da aplicação. O exemplo abaixo mostra como importar um módulo localizado no diretório "lib" da aplicação atual:

"""
  Sou o programa principal e vou importar
  o módulo que contém a função somar()
"""

# importa o módulo sys
import sys

# acrescenta o diretório lib na variável
# de ambiente PYTHONPATH
sys.path.append(sys.path[0] + '\\lib')

# pode importar funcoes no diretório lib
import funcoes

# pode chamar o método somar agora
def main():
  print(funcoes.somar(3, 5))

if __name__== "__main__":
  main()



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

Exercícios Resolvidos de VisuAlg - Como calcular salário líquido em VisuAlg - Calculando o salário líquido de um professor

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

Escreva um algoritmo VisuAlg 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 real), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como real). Em seguida mostre o salário líquido.

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 VisuAlg:

Algoritmo "Cálculo de Salário Bruto e Líquido em VisuAlg"

Var
  // variáveis usadas para resolver o problema
  valor_hora_aula: real
  horas_trabalhadas: inteiro
  percentual_desconto_inss: real
  salario_bruto: real
  salario_liquido: real
  total_desconto: real

Inicio
  // vamos ler o valor do hora aula
  escreva("Informe o valor da hora aula: ")
  leia(valor_hora_aula)

  // vamos ler o número de horas trabalhadas no mês
  escreva("Informe o número de horas trabalhadas no mês: ")
  leia(horas_trabalhadas)

  // vamos ler o percentual de desconto do INSS
  escreva("Informe o percentual de desconto do INSS: ")
  leia(percentual_desconto_inss)

  // vamos calcular o salário bruto
  salario_bruto <- valor_hora_aula * horas_trabalhadas

  // agora calculamos o total do desconto
  total_desconto <- (percentual_desconto_inss / 100) * salario_bruto

  // finalmente calculamos o salário líquido
  salario_liquido <- salario_bruto - total_desconto

  // mostramos o resultado
  escreval("Salário Bruto: R$ ", salario_bruto:2:2)
  escreval("Total de Descontos: R$ ", total_desconto:2:2)
  escreval("Salário Líquido: R$ ", salario_liquido:2:2)

Fimalgoritmo



CSS ::: Dicas & Truques ::: Barras de Navegação, Menus e Dropdowns

Como criar uma barra de navegação horizontal com menu dropdown em HTML e CSS - Menu suspenso usando CSS

Quantidade de visualizações: 883 vezes
Nesta dica mostrarei como podemos usar uma combinação de várias propriedades CSS para criar um menu suspenso, ou seja, uma barra de navegação contendo links normais e também links que, ao passar o mouse, exibe uma lista de sub-menus.

O código apresentado neste exemplo é muito útil para estudantes de HTML e CSS, pois apresenta várias propriedades interessantes para melhorar o visual e a usabilidade de suas páginas web.

Entre as propriedades CSS usadas na criação deste menu suspenso nós podemos citar overflow, margin, padding, list-style-type, background-color, display, float, text-align, text-decoration, position, min-width e z-index. Note que coloquei o mínimo de código para fazer a barra de menus funcional. Fique à vontade para acrescentar as formatações que você achar interessante.

Veja a página HTML e CSS para o exemplo:

<!doctype html>
<html>
<head>
  <title>Estudos CSS</title>
  
<style>
  /* estiliza o elemento <ul> */
  ul{
    background-color: #e0e0e0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    list-style-type: none;
  }

  /* aplica estilo aos elementos <li> */
  li{
    float: left;
  }
  
  /* aplica estilo aos links e <li> do sub-menu */
  li a, .dropdown_linguagens{
    display: inline-block;
    text-align: center;
    padding: 10px 15px;
    text-decoration: none;
  }
  
  /* define o display do <li> de linguagens */
  li.linguagens{
    display: inline-block;
  }
  
  /* aplica estilo ao menu de linguagens */
  .menus_linguagens{
    display: none;
    position: absolute;
    background-color: #eceff1;
    min-width: 160px;
    z-index: 1;
  }

  /* aplica estilo aos links do sub-menu */
 .menus_linguagens a {
   padding: 10px 15px;
   text-decoration: none;
   display: block;
   text-align: left;
 }

 /* exibe o sub-menu ao passar o mouse */ 
 .linguagens:hover .menus_linguagens{
   display: block;
 }
 
 /* aplica uma cor diferente aos menus ao
    passar o mouse */
 .menus_linguagens a:hover{
   background-color: #cfd8dc;
 }
</style>

</head>
  
<body>

<h1>Exemplo de Barra de Navegação com
  Menu Dropdown</h1>

<ul>
  <li><a href="index.php">Inicial</a></li>
  <li class="linguagens">
    <a href="javascript:void(0)" class="dropdown_linguagens">
      Linguagens</a>
    <div class="menus_linguagens">
      <a href="java.php">Java</a>
      <a href="python.php">Python</a>
      <a href="ruby.php">Ruby</a>
      <a href="delphi.php">Delphi</a>
    </div>
  </li>
</ul>
  
</body>
</html>



PHP ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma substring está contida em uma string usando a função strpos() do PHP

Quantidade de visualizações: 3449 vezes
Em algumas situações precisamos verificar se uma palavra (substring) está contida em uma frase (string). Isso pode ser feito com o auxílio da função strpos(). Veja um exemplo:

<?php
  $frase = "Gosto muito de PHP e Java";
  $palavra = "Java";
  
  // vamos verificar se a palavra Java está contida na frase
  if(strpos($frase, $palavra) !== false){
     echo "A palavra está contida na string";
  }
  else{
     echo "A palavra não está contida na string"; 
  }
?>

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

A palavra está contida na string

Note que a função strpos() diferencia maiúsculas de minúsculas. Se você quiser efetuar uma pesquisa de substrings desconsiderando maiúsculas e minúsculas, use a função stripos().


C# ::: Windows Forms ::: TextBox

Como contar as palavras em um TextBox de múltiplas linhas do C# Windows Forms

Quantidade de visualizações: 13982 vezes
Em algumas situações nós precisamos retornar a quantidade de palavras digitadas em um campo TextBox de múltiplas linhas do C# Windows Forms. O trecho de código abaixo mostra como isso pode ser feito.

Note como usei os métodos da classe String para alcançar o objetivo. Veja o código C# completo disparado a partir do clique de um botão Button:

/*
 Este exemplo mostra como obter a quantidade de
 palavras em um TextBox. 

 Veja que usamos a técnica de contar as palavras
 contidas em um array após retirar as quebras de
 linhas e espaços duplicados na string. 
*/
    
private void button1_Click(object sender, EventArgs e){
  // Obtém o texto da caixa de texto
  string texto = textBox1.Text.Trim();

  // Remove as quebras de linhas substituindo-as por
  // espaços
  texto = texto.Replace(Environment.NewLine, " ");

  // remove os espaços em excesso
  while(texto.IndexOf("  ") >= 0){
    texto = texto.Replace("  ", " ");
  }

  // Obtém um array de palavras
  string[] palavras = texto.Split(" ");

  // Obtém a quantidade de palavras
  int quant = palavras.Length;

  // Exibe o resultado
  MessageBox.Show("O TextBox contém " + quant + 
    " palavras.");
}



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

Como substituir uma substring em uma string JavaScript usando a função replace()

Quantidade de visualizações: 575 vezes
Nesta dica mostrarei como podemos substituir parte de uma palavra, frase ou texto em JavaScript usando a função replace() do objeto String. Esta função recebe a substring a ser substituida e a substring que ocupará o seu lugar e retorna uma nova string.

Veja a página HTML para o nosso primeiro exemplo:

<!doctype html>
<html>
<head>
  <title>Strings em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos criar uma frase
  var frase = "Gosto de Java, Java e mais Java";  
  document.write("A frase é: " + frase + "<br>");
  
  // e agora vamos substituir a substring na string
  var resultado = frase.replace("Java", "Python");

  // e mostramos o resultado
  document.write("Depois da substituição: " +
    resultado);  
</script>
  
</body>
</html>

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

A frase é: Gosto de Java, Java e mais Java
Depois da substituição: Gosto de Python, Java e mais Java

Note que apenas a primeira ocorrência da substring "Java" foi substituída por "Python". Para que todas as ocorrências sejam substituídas, temos que usar o sinalizador global. Veja:

<script type="text/javascript">
  // vamos criar uma frase
  var frase = "Gosto de Java, Java e mais Java";  
  document.write("A frase é: " + frase + "<br>");
  
  // e agora vamos substituir a substring na string
  var resultado = frase.replace(/Java/g, "Python");

  // e mostramos o resultado
  document.write("Depois da substituição: " +
    resultado);  
</script>

Agora o resultado será:

A frase é: Gosto de Java, Java e mais Java
Depois da substituição: Gosto de Python, Python e mais Python

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