Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como corrigir um erro ClassCastException em Java - Como tratar a exceção ClassCastException do JavaQuantidade 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 PHPQuantidade 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 PHPQuantidade 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 CQuantidade 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 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 PythonQuantidade 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 professorQuantidade 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 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 CSSQuantidade 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 PHPQuantidade 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 FormsQuantidade 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 |
Nossas 20 dicas & truques de programação mais populares |
VisuAlg - Exercício Resolvido de VisuAlg - Um programa que lê três números inteiros e mostra o maior JavaScript - Como retornar uma coleção de nós filhos de um elemento HTML usando a propriedade childNodes do DOM do JavaScript C - Como calcular a massa de um corpo dada sua energia cinética e sua velocidade usando a linguagem C |
Você também poderá gostar das dicas e truques de programação abaixo |
C++ - Como inicializar os valores dos elementos de um vetor C++ usando valores randômicos - Revisado C# - Como retornar a quantidade de elementos que podem ser armazenados na List do C# sem redimensioná-la |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |