![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Java ::: Fundamentos da Linguagem ::: Modificadores |
Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações JavaQuantidade de visualizações: 19077 vezes |
O modificador static pode ser aplicado a métodos e variáveis. Além disso, este modificador pode ser usado para a inicialização de códigos estáticos de uma classe. Um recurso marcado com este modificador pertence à uma classe, e não às suas instâncias. Isso quer dizer que podemos acessar métodos ou variáveis estáticas sem a necessidade de criar uma cópia da classe. Veja por exemplo o método main() usado como ponto de entrada para um aplicativo Java: public static void main(String args[]){ // } Como o método main é chamado antes mesmo de qualquer cópia de classes serem criadas, o modificador static se torna essencial. Veja o que acontece se o retirarmos: public class Estudos{ public void main(String args[]){ System.out.println("Olá"); System.exit(0); } } O código compila sem problemas. Porém, ao tentarmos executar teremos o seguinte erro: Exception in thread "main" java.lang.NoSuchMethodError: main public class Estudos{ String frase = "Estou aqui!"; public static void main(String args[]){ System.out.println(frase); System.exit(0); } } Ao tentarmos compilar este código teremos o seguinte erro: Estudos.java:5: non-static variable frase cannot be referenced from a static context System.out.println(frase); ^ 1 error static String frase = "Estou aqui!"; Execute o programa novamente e veja como o erro desaparece. Para demonstrar como recursos estáticos pertencem mesmo à classe e não às suas cópias, considere o seguinte exemplo: public class Estudos{ public static void main(String args[]){ for(int i = 0; i < 5; i++){ Cliente cliente = new Cliente(); System.out.println("Sou o cliente número: " + cliente.quant); } System.exit(0); } } class Cliente{ public static int quant = 0; public Cliente(){ quant++; } } Ao compilar e executar este código você terá o seguinte resultado: Sou o cliente número: 1 Sou o cliente número: 2 Sou o cliente número: 3 Sou o cliente número: 4 Sou o cliente número: 5 Veremos agora o uso do modificador static na inicialização de blocos de código estáticos. Observe o código: public class Estudos{ public static void main(String args[]){ for(int i = 0; i < 5; i++){ Cliente cliente = new Cliente(); System.out.println("Sou o cliente número: " + cliente.quant); } System.exit(0); } } class Cliente{ public static int quant = 0; public Cliente(){ quant++; } static{ System.out.println("Bloco estático"); } } Compile e execute este exemplo. Você terá o seguinte resultado: Bloco estático Sou o cliente número: 1 Sou o cliente número: 2 Sou o cliente número: 3 Sou o cliente número: 4 Sou o cliente número: 5 |
Java ::: Coleções (Collections) ::: Queue |
Como criar uma fila em Java usando a interface QueueQuantidade de visualizações: 1181 vezes |
Uma fila é uma estrutura de dados do tipo FIFO (First-in, First-out), ou seja, o primeiro elemento a entrar é o primeiro a sair. Podemos pensar em uma estrutura de dados do tipo fila como uma fila real de um banco ou supermercado. A linguagem Java não fornece uma classe pronta chamada Queue. Em vez disse nós temos uma interface Queue e suas implementações concretas, a saber, as classes java.util.LinkedList e java.util.PriorityQueue. É claro que existem outras implementações, mas estas duas são as que usamos com mais frequencia. Como nesta dica a nossa intenção é representar uma fila comum, nós vamos descartar a classe PriorityQueue (fila de prioridade) e nos ater à implementação de Queue fornecida pela classe LinkedList. Vamos começar com um exemplo bem simples. Veja um trecho de código no qual enfileiramos 5 valores inteiros em uma fila e os desenfileiramos em seguida: package estudos; import java.util.LinkedList; import java.util.Queue; public class Estudos{ public static void main(String[] args){ // vamos criar uma fila de inteiros e adicionar 5 inteiros Queue<Integer> fila = new LinkedList<>(); fila.add(76); fila.add(80); fila.add(11); fila.add(32); fila.add(45); // agora vamos desenfileirar todos os elementos System.out.println("Ordem de remoção dos elementos da fila:"); while(!fila.isEmpty()){ System.out.print(fila.poll() + " "); } } } Ao executar este código Java nós teremos o seguinte resultado: Ordem de remoção dos elementos da fila: 76 80 11 32 45 |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é primo em PythonQuantidade de visualizações: 4024 vezes |
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos. É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par. Veja agora um código Python completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não: def main(): primo = True # vamos assumir que o número é primo # vamos solicitar um número inteiro positivo numero = int(input("Informe um número inteiro positivo: ")) # o número é negativo? if numero < 0: print("Número inválido.") # é 0 ou 1? elif (numero == 0) or (numero == 1): print("Número válido, mas não é primo.") # passou até aqui. Vamos testar se o número é primo else: for i in range(2, int((numero / 2))): # se passar no teste, não é primo if numero % i == 0: primo = False # recebe false break if primo: print("O número informado é primo") else: print("O número informado não é primo") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe um número inteiro positivo: 9 O número informado não é primo |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de Python - Um método recursivo que conta de 0 até 10Quantidade de visualizações: 1348 vezes |
Exercícios Resolvidos de Python - Um método recursivo que conta de 0 até 10 Pergunta/Tarefa: Escreva um método recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura: def contar_recursivamente(n): # sua implementação aqui Sua saída deverá ser parecida com: 0 1 2 3 4 5 6 7 8 9 10 Veja a resolução comentada deste exercício usando Python: # método recursivo que conta de 0 até 10 def contar_recursivamente(n): # vamos exibir o número atual print(n, " ", end =" ") # devemos prosseguir com a recursividade? if n < 10: # incrementa o valor de n n = n + 1 contar_recursivamente(n) # e faz uma nova chamada recursiva # método principal def main(): # efetua uma chamada ao método recursivo fornecendo o primeiro valor contar_recursivamente(0) if __name__== "__main__": main() |
Java ::: Dicas & Truques ::: Entrada e Saída em Arquivos (File Input/Output - IO) |
Como ler o conteúdo de um arquivo uma linha de cada vez usando o método readLine() da classe RandomAccessFile da linguagem JavaQuantidade de visualizações: 13315 vezes |
Uma das operações mais frequentes em um programa é a leitura do conteúdo de arquivos. A classe RandomAccessFile nos fornece o método readLine() que é muito útil quando precisamos ler as linhas de conteúdo em um arquivo. O método readLine() lê bytes consecutivos do arquivo, começando na posição atual do ponteiro de arquivos até alcançar um caractere marcador de final de linha ou o fim do arquivo. Cada byte é convertido em um caractere tomando-se o valor do byte para os oito bits de menor ordem do caractere e definindo os oito bits de ordem alta do caractere como zero. Desta forma, este método não suporta Unicode completamente. Uma linha de texto é finalizada por um caractere de retorno de carro ("\r"), um caractere de nova linha ("\n"), um caractere de retorno de carro seguido por um caractere de nova linha, ou o final do arquivo. Caracteres de final de linha não são incluídos na string retornada pelo método. É importante observar que, a cada chamada ao método readLine(), o ponteiro de arquivo é avançado e posicionado para a leitura subsequente. Veja o exemplo: import java.io.*; public class Estudos{ public static void main(String[] args){ // uma instância de RandomAccessFile para leitura e escrita try{ RandomAccessFile arquivo = new RandomAccessFile("C:\\java\\conteudo.txt", "rw"); // vamos ler o conteúdo do arquivo uma linha de cada vez String linha; while((linha = arquivo.readLine()) != null){ System.out.println("Posição do ponteiro: " + arquivo.getFilePointer()); System.out.println(linha); } arquivo.close(); } catch(FileNotFoundException fnfe){ System.out.println(fnfe.getMessage()); } catch(IOException ioe){ System.out.println(ioe.getMessage()); } System.exit(0); } } Ao executar este exemplo nós teremos o seguinte resultado: Posição do ponteiro: 27 Primeira linha do arquivo Posição do ponteiro: 53 Segunda linha do arquivo Posição do ponteiro: 78 Terceira linha do arquivo |
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como inverter um array em C# usando a função Reverse() - Vetores e matrizes em C#Quantidade de visualizações: 17227 vezes |
Nesta dica mostrarei como podemos usar o método estático Reverse() da classe Array do C# para inverter a ordem dos elementos de um array (vetor). Note que este método, por ser estático, modifica o vetor passado como argumento. Veja o código completo para o exemplo: using System; namespace Estudos{ class Program{ static void Main(string[] args) { // cria e inicializa um array de strings string[] cidades = {"Goiânia", "São Paulo", "Rio de Janeiro", "Curitiba"}; Console.WriteLine("Ordem original:"); for (int i = 0; i < cidades.Length; i++) Console.WriteLine(cidades[i]); // inverte a ordem dos elementos Array.Reverse(cidades); // exibe os elementos na ordem inversa Console.WriteLine(); Console.WriteLine("Ordem inversa:"); for (int i = 0; i < cidades.Length; i++) Console.WriteLine(cidades[i]); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código nós teremos o seguinte resultado: Ordem original: Goiânia São Paulo Rio de Janeiro Curitiba Ordem inversa: Curitiba Rio de Janeiro São Paulo Goiânia |
C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em C dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 1866 vezes |
Nesta dica mostrarei como é possível usar a linguagem C para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos a fazer a converter esta fórmula para código C. Veja: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]){ float a = 20; // medida do cateto oposto float b = 30; // medida do cateto adjascente // agora vamos calcular o comprimento da hipotenusa float c = sqrt(pow(a, 2) + pow(b, 2)); // e mostramos o resultado printf("O comprimento da hipotenusa é: %f", c); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: O comprimento da hipotenusa é: 36.055511 Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada. |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Java para Geometria Analítica e Álgebra Linear - Como efetuar a soma de matrizes usando JavaQuantidade de visualizações: 1858 vezes |
A soma de matrizes (assim como a subtração e multiplicação) é parte integrante da disciplina de Álgebra Linear e seu cálculo é muito simples. Assumindo duas matrizes A e B, ambas com a mesma quantidade de linhas e colunas, a matriz soma pode ser obtida da seguinte forma: \[A + B = \left[\begin{matrix} 3 & 4 & -1 \\ 8 & 2 & 1 \\ 7 & 5 & -3 \end{matrix}\right] + \left[\begin{matrix} -2 & 6 & 4 \\ 1 & 8 & 9 \\ -4 & 10 & 3 \end{matrix}\right] = \left[\begin{matrix} 1 & 10 & 3 \\ 9 & 10 & 10 \\ 3 & 15 & 0 \end{matrix}\right] \] Um elemento da matriz é representando por sua posição linha e coluna. Usamos a letra i para a linha e j para a coluna, ou seja, aij. Dessa forma, o elemento na primeira linha e primeira coluna da matriz é a11, o elemento na primeira linha e segunda coluna é a12 e assim por diante. Então, a soma das duas matrizes é feita da seguinte forma: Cij = Aij + Bij. E agora veja o código Java que declara duas matrizes matrizA e matrizB e obtém uma terceira (matrizC) contendo a soma das duas anteriores. Novamente, note o requisito de que as matrizes deverão ter o mesmo número de linhas e colunas: package arquivodecodigos; public class Estudos{ public static void main(String args[]){ // declarar, construir e inicializar as matrizes int matrizA[][] = {{3, 4, -1}, {8, 2, 1}, {7, 5, -3}}; int matrizB[][] = {{-2, 6, 4}, {1, 8, 9}, {-4, 10, 3}}; // esta é a matriz soma int matrizSoma[][] = new int[3][3]; // e agora vamos prosseguir com a soma for(int i = 0; i < matrizA.length; i++){ for(int j = 0; j < matrizA[0].length; j++){ matrizSoma[i][j] = matrizA[i][j] + matrizB[i][j]; } } // vamos exibir os valores da primeira matriz System.out.println("Elementos da matriz A:"); for(int i = 0; i < matrizA.length; i++){ for(int j = 0; j < matrizA[0].length; j++){ System.out.printf("%5d ", matrizA[i][j]); } System.out.println(); } // vamos exibir os valores da primeira matriz System.out.println("\nElementos da matriz B:"); for(int i = 0; i < matrizB.length; i++){ for(int j = 0; j < matrizB[0].length; j++){ System.out.printf("%5d ", matrizB[i][j]); } System.out.println(); } // vamos exibir os valores da matriz soma System.out.println("\nElementos da matriz soma:"); for(int i = 0; i < matrizSoma.length; i++){ for(int j = 0; j < matrizSoma[0].length; j++){ System.out.printf("%5d ", matrizSoma[i][j]); } System.out.println(); } } } Ao executar este código Java nós teremos o seguinte resultado: Elementos da matriz A: 3 4 -1 8 2 1 7 5 -3 Elementos da matriz B: -2 6 4 1 8 9 -4 10 3 Elementos da matriz soma: 1 10 3 9 10 10 3 15 0 |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se uma variável é do tipo array em PHP usando a função is_array()Quantidade de visualizações: 12115 vezes |
Em algumas situações nós precisamos verificar se uma determinada variável é do tipo array (vetor ou matriz). Em PHP esse procedimento pode ser feito com o auxílio da função is_array(), que recebe uma variável e retorna verdadeiro se ela é do tipo array e falso em caso contrário. Veja o código PHP completo para o exemplo: <?php // vamos criar um array de inteiros $valores = Array(5, 2, 7, 1); // vamos testar se a variável é do tipo array if(is_array($valores)){ echo 'A variável $valores é do tipo array.'; } else{ echo 'A variável $valores NÃO é do tipo array.'; } ?> Ao executar este código PHP nós teremos o seguinte resultado: A variável $valores é do tipo array. |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como obter apenas os elementos duplicados em um vetor usando as funções array_unique() e array_diff_assoc() do PHPQuantidade de visualizações: 15331 vezes |
Em algumas situações precisamos obter apenas os elementos que se repetem em um vetor (array). Isso pode ser feito combinando-se as funções array_unique() e array_diff_assoc(). Veja:<? // vamos declarar e inicializar um array de inteiros $valores = array(9, 2, 6, 11, 6, 9, 3, 6); // vamos listar os valores dos elementos no array echo "Elementos no array:<br>"; for($i = 0; $i < count($valores); $i++){ echo $valores[$i] . " - "; } // vamos exibir apenas os valores duplicados // Aviso: não use o laço for para percorrer o array // resultante. Em vez disso use foreach $valores = array_unique(array_diff_assoc( $valores, array_unique($valores))); echo "<br><br>Elementos repetidos:<br>"; foreach($valores as $valor){ echo $valor . " - "; } ?> A execução deste código produz o seguinte resultado: Elementos no array: 9 - 2 - 6 - 11 - 6 - 9 - 3 - 6 - Elementos repetidos: 6 - 9 - |
Nossas 20 dicas & truques de programação mais populares |
VB.NET - Como contar as ocorrências de um caractere em uma string em VB.NET usando o método IndexOf() |
Você também poderá gostar das dicas e truques de programação abaixo |
C# - Como retornar a quantidade de itens em uma ListBox do C# Windows Forms usando a propriedade Count TypeScript - Como calcular o coeficiente angular de uma reta em TypeScript dados dois pontos no plano cartesiano |
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 |