![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar e usar métodos estáticos em suas classes Java - Programação Orientada a Objetos em Java - Java OOPQuantidade de visualizações: 13621 vezes |
Como já vimos em outras dicas desta seção, uma classe Java possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:package estudos; // declaração da classe Produto public class Produto { private String nome; private double preco; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public double getPreco() { return preco; } public void setPreco(double preco) { this.preco = preco; } } Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância. Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. O método main() presente em todas as aplicações Java é um bom exemplo deste tipo de método. Métodos estáticos em Java podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo: Código para Pessoa.java: package estudos; // classe Pessoa com duas variáveis privadas e // um método estático public class Pessoa { private String nome; private int idade; // um método estático que permite verificar a validade // de um número de CPF public static boolean isCPFValido(String cpf){ // alguns cálculos aqui return true; } } Veja agora como podemos chamar o método isCPFValido() sem a necessidade da criação de uma nova instância da classe Pessoa: Código para Main.java: package estudos; public class Main { public static void main(String[] args) { // vamos efetuar uma chamada ao método isCPFValido() sem // criar uma instância da classe Pessoa if(Pessoa.isCPFValido("12345")){ System.out.println("CPF Válido"); } else{ System.out.println("CPF Inválido"); } } } Note que o método estático isCPFValido() da classe Pessoa foi declarado assim: public static boolean isCPFValido(String cpf); Desta forma, podemos chamá-lo a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja: if(Pessoa.isCPFValido("12345")){} É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo: // um método estático que permite verificar a validade // de um número de CPF public static boolean isCPFValido(String cpf){ // alguns cálculos aqui // vamos acessar a variável não estática nome nome = "Osmar J. Silva"; return true; } vai gerar o seguinte erro de compilação: Uncompilable source code - non-static variable nome cannot be referenced from a static context. Se usarmos this.nome a mensagem de erro de compilação será: Uncompilable source code - non-static variable this cannot be referenced from a static context. Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Declarar e construir uma matriz de 10 int, pedir ao usuário para informar os valores dos elementos, mostrar a média dos valores informados e a quantidade de valores acima da médiaQuantidade de visualizações: 14023 vezes |
Pergunta/Tarefa: Escreva um programa Java console ou GUI que declara e constrói uma matriz de 10 inteiros. Em seguida peça ao usuário para informar os 10 valores e armazene-os na matriz. Finalmente obtenha a média aritmética dos valores informados e mostre quantos valores estão acima da média. Seu programa deverá exibir a seguinte saída (no caso de uma aplicação Console): Informe o 1º valor: 4 Informe o 2º valor: 12 Informe o 3º valor: 9 Informe o 4º valor: 6 Informe o 5º valor: 4 Informe o 6º valor: 3 Informe o 7º valor: 7 Informe o 8º valor: 2 Informe o 9º valor: 3 Informe o 10º valor: 1 A média dos valores é: 5.0 Quantidade de valores acima da média: 4 Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: package estudos; import java.util.Scanner; public class Main { public static void main(String[] args) { // vamos declarar e instancia um objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos declarar e construir uma matriz de 10 ints int valores[] = new int[10]; double media; // média dos valores int soma = 0; // soma dos valores lidos int quantAcimaMedia = 0; // quantidade de valores acima da média // vamos solicitar ao usuário que informe os 10 valores inteiros // e vamos armazená-los na matriz for(int i = 0; i < valores.length; i++){ System.out.print("Informe o " + (i + 1) + "º valor: "); int valor = Integer.parseInt(entrada.nextLine()); valores[i] = valor; // vamos adicionar este valor à soma soma = soma + valor; } // vamos obter a média dos valores lidos media = (soma / valores.length); // agora precisamos obter a quantidade de valores acima da média for(int i = 0; i < valores.length; i++){ if(valores[i] > media){ quantAcimaMedia++; } } // vamos exibir os resultados System.out.println("A média dos valores é: " + media); System.out.println("Quantidade de valores acima da média: " + quantAcimaMedia); } } |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Java usando o método cos() da classe Math - Calculadora de cosseno em JavaQuantidade de visualizações: 1749 vezes |
Como calcular o cosseno de um ângulo em Java usando o método cos() da classe Math - Calculadora de cosseno em Java Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Java. Esta método, que faz parte da classe Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: package arquivodecodigos; public class Estudos{ public static void main(String args[]){ System.out.println("Cosseno de 0 = " + Math.cos(0)); System.out.println("Cosseno de 1 = " + Math.cos(1)); System.out.println("Cosseno de 2 = " + Math.cos(2)); } } Ao executar este código Java nós teremos o seguinte resultado: Cosseno de 0 = 1.0 Cosseno de 1 = 0.5403023058681398 Cosseno de 2 = -0.4161468365471424 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: ![]() |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de VisuAlg - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em VisuAlgQuantidade de visualizações: 390 vezes |
Pergunta/Tarefa: Escreva um programa VisuAlg que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado: // declara um vetor de 10 inteiros valores: vetor[1..10] de inteiro Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando VisuAlg: algoritmo "Contar quantas vezes um elemento repete em um vetor" var // variáveis usadas na resolução do problema valores: vetor[1..10] de inteiro pesquisa, repeticoes, i: inteiro inicio // inicializa um vetor de 10 inteiros valores[1] <- 4 valores[2] <- 21 valores[3] <- 9 valores[4] <- 8 valores[5] <- 12 valores[6] <- 21 valores[7] <- 4 valores[8] <- 4 valores[9] <- 1 valores[10] <- 10 // vamos ler um valor inteiro escreva("Informe um valor: ") leia(pesquisa) // vamos verificar quantas vezes o valor informado está // contido no vetor repeticoes <- 0 para i de 1 ate 10 faca se valores[i] = pesquisa entao // encontrou? vamos contar esta ocorrência repeticoes <- repeticoes + 1 fimse fimpara // vamos mostrar o resultado escreva("O valor foi encontrado: ", repeticoes, " vezes") fimalgoritmo |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler e processar os dados de um arquivo CSV usando a função fgetcsv() do PHPQuantidade de visualizações: 26886 vezes |
Arquivos CSV são arquivos texto cujas linhas possuem valores separados por vírgulas (ou ponto-e-vírgula, dois pontos, etc). As informações contidas em tais arquivos podem ser lidas usando-se a função fgetcsv(). Esta função recebe um ponteiro para um arquivo, o tamanho da maior linha de texto no arquivo (forneça 0 se não quiser ter este limite em seu código) e o caractere de delimitação (no exemplo eu usei ponto-e-vírgula). Observe a estrutura do seguinte arquivo CSV: 23;OSMAR J SILVA;AV. LESTE, 54;GOIANIA;GO 19;MARCOS DE PAULA;RUA L, 523;SÃO PAULO;SP As informações deste arquivo podem ser lidas usando-se o código abaixo: <?php // nome do arquivo $arquivo = 'dados.csv'; // ponteiro para o arquivo $fp = fopen($arquivo, "r"); // processa os dados do arquivo while(($dados = fgetcsv($fp, 0, ";")) !== FALSE){ $quant_campos = count($dados); for($i = 0; $i < $quant_campos; $i++){ echo $dados[$i] . "<br>"; } echo "<br>"; } fclose($fp); ?> Ao executar este código PHP nós teremos o seguinte resultado: 23 OSMAR J SILVA AV. LESTE, 54 GOIANIA GO 19 MARCOS DE PAULA RUA L, 523 SÃO PAULO SP |
PHP ::: Dicas & Truques ::: Data e Hora |
PHP para iniciantes - Como obter o número de dias em um mês e ano usando a função cal_days_in_month() do PHPQuantidade de visualizações: 71 vezes |
Em algumas situações nós precisamos saber quantos dias um determinado mês possui, talvez para exibir um calendário. Para isso nós podemos usar a função cal_days_in_month() da linguagem PHP. Esta função pede um tipo de calendário (geralmente CAL_GREGORIAN), um número indicando o mês (1 para janeiro, 2 para fevereiro, etc) e o ano). Veja o código completo para obter a quantidade de dias para o mês de fevereiro de 2021: <?php $ano = 2021; $mes = 2; // fevereiro $quant_dias = cal_days_in_month(CAL_GREGORIAN, $mes, $ano); echo "Há $quant_dias dias no mês e ano informados"; ?> Ao executarmos este código nós teremos o seguinte resultado: Há 28 dias no mês e ano informados |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em Java - Java OOP - Como chamar o construtor de uma superclasse a partir da classe derivadaQuantidade de visualizações: 19297 vezes |
Em algumas situações, é necessário efetuar uma chamada ao construtor de uma superclasse a partir da sub-classe, ou classe derivada. Principalmente quando temos que inicializar dados privados pertencentes à superclasse. Imaginemos o seguinte cenário: uma classe Pessoa cujo construtor recebe o nome e idade da pessoa. Temos então uma classe Aluno que herda de pessoa e cujo construtor recebe nome, idade e matrícula. Desta forma, temos aqui uma boa oportunidade para efetuarmos uma chamada ao construtor da superclasse a partir da classe derivada. Comece criando a classe Pessoa (Pessoa.java): public class Pessoa{ public String nome; public int idade; // construtor da classe public Pessoa(String nome, int idade){ this.nome = nome; this.idade = idade; } } Compile Pessoa.java. Agora vamos criar um classe Aluno (Aluno.java) que herda da classe Pessoa: public class Aluno extends Pessoa{ public String matricula; // construtor public Aluno(String nome, int idade, String matricula){ // chama o construtor da superclasse super(nome, idade); this.matricula = matricula; } } Compile Aluno.java e escreva o programa abaixo, que demonstra como a chamada ao construtor da superclasse é feita a partir da subclasse, ou classe derivada: public class Estudos{ public static void main(String args[]){ // cria um objeto da classe Aluno Aluno aluno = new Aluno("Osmar J. Silva", 36, "AC434-23"); // Exibe o resultado System.out.println("Nome: " + aluno.nome + "\n" + "Idade: " + aluno.idade + "\n" + "Matrícula: " + aluno.matricula); } } Execute este código e observe alguns detalhes interessantes. O mais importante é a forma de chamar o construtor da superclasse: // chama o construtor da superclasse super(nome, idade); Veja como recebemos três variáveis no construtor da classe Aluno e passamos duas delas para o construtor da superclasse. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Declarar e construir um vetor de inteiros e usar um laço for para inicializar seus elementos com os valores de 1 até 10 em JavaQuantidade de visualizações: 17516 vezes |
Pergunta/Tarefa: Escreva um programa Java que declara e constrói um array de 10 elementos do tipo int. Em seguida use um laço for para inicializar os elementos com os valores de 1 até 10. Para finalizar exiba os valores dos elementos do vetor na vertical. Seu programa deverá exibir a seguinte saída: 1 2 3 4 5 6 7 8 9 10 A resolução desta tarefa passa pela declaração e construção do array. Aqui eu demonstro como isso pode ser feito em dois passos. Primeiro a declaração e depois a construção: // vamos declarar um vetor de 10 ints int valores[]; // vamos construir o vetor...neste momento seus elementos // terão, todos, o valor 0 valores = new int[10]; Veja a resolução completa do exercício: public static void main(String[] args){ // vamos declarar um array de 10 ints int valores[]; // vamos construir o array...neste momento seus elementos // terão, todos, o valor 0 valores = new int[10]; // vamos usar o laço for para inicializar seus elementos // com os valores de 1 até 10 for(int i = 0; i < valores.length; i++){ // aqui nós usamos o valor da variável i para acessar o // elemento do array e também para atribuir o valor de i + 1 // ao elemento sendo acessado valores[i] = (i + 1); } // só nos resta exibir os valores de todos os elementos for(int i = 0; i < valores.length; i++){ System.out.println(valores[i]); } } |
C# ::: Windows Forms ::: CheckBox |
Como testar se uma CheckBox do C# Windows Forms está marcada ou desmarcadaQuantidade de visualizações: 22333 vezes |
Em algumas situações precisamos verificar se uma CheckBox do C# Windows Forms está marcada ou desmarcada. Para isso só precisamos acessar sua propriedade Checked. Esta propriedade retorna um valor true se a CheckBox estiver marcada e false em caso contrário. Veja o trecho de código abaixo (estou assumindo que você colocou um Button e uma CheckBox no seu formulário): private void button1_Click(object sender, EventArgs e){ // vamos verificar se a CheckBox está marcada ou desmarcada if(checkBox1.Checked) MessageBox.Show("A CheckBox está marcada"); else MessageBox.Show("A CheckBox está desmarcada"); } Se você quiser inverter o teste, ou seja, verificar primeiro se a CheckBox está desmarcada, poderá fazer algo assim: private void button1_Click(object sender, EventArgs e){ // vamos verificar se a CheckBox está marcada ou desmarcada if(!checkBox1.Checked) MessageBox.Show("A CheckBox está desmarcada"); else MessageBox.Show("A CheckBox está marcada"); } |
Python ::: Dicas & Truques ::: Tupla (Tuple) |
Python para iniciantes - Como usar o tipo de dados tuple da linguagem PythonQuantidade de visualizações: 9278 vezes |
Uma tupla (tuple) é similar a uma lista (list), com a exceção de que uma tupla não pode ser modificada, ou seja, é imutável. Veja como criar uma tupla contendo cinco elementos: # Cria uma tupla valores = 4, 76, 2, 98, 4 # Exibe o valor do segundo elemento print valores[1] # Exibe todos os elementos for valor in valores: print valor, Veja agora o que acontece quando tentamos alterar o valor de um dos elementos da tupla: valores[4] = 50 Traceback (most recent call last): File "tuplas.py", line 19, in <module> valores[4] = 50 TypeError: 'tuple' object does not support item assignment Contudo, a variável do tipo tupla pode ser alterada para apontar para uma tupla diferente. Veja: # Cria duas tuplas valores = 4, 76, 2, 98, 4 letras = 'A', 'B', 'C' # Atribue os elementos de letras a valores valores = letras # Exibe o resultado print valores É comum colocar os elementos de uma tupla entre parênteses. Assim, a tupla abaixo é perfeitamente legal: valores = (4, 76, 2, 98, 4) Embora não muito provável, se precisarmos criar uma tupla de apenas um elemento, devemos inserir uma vírgula após ele. Veja: valores = (4,) Tuplas podem conter elementos de diferentes tipos de dados. Veja: # Cria uma tupla contendo tipos diferentes # de dados cliente = (3, "Osmar J. Silva", "Goiânia", "GO", 35) # Exibe o valor do 4º elemento estado = cliente[3] print estado |
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 |