![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Java ::: Pacote java.util ::: ArrayList |
Como acessar um determinado item de uma ArrayList em Java usando índices - Como usar o método get() da classe ArrayList do Java - RevisadoQuantidade de visualizações: 20771 vezes |
Em várias situações nós precisamos acessar os elementos da ArrayList de forma individual. Para isso podemos usar o seu método get() e fornecer o índice do elemento desejado. Lembre-se de que os índices em Java começam sempre em 0, ou seja, o primeiro elemento da ArrayList está no índice 0, o segundo no índice 1 e assim por diante. Veja o código para o exemplo: import java.util.ArrayList; public class Estudos{ public static void main(String[] args){ // cria uma ArrayList que conterá strings ArrayList<String> nomes = new ArrayList<String>(); // adiciona itens na lista nomes.add("Carlos"); nomes.add("Maria"); nomes.add("Fernanda"); nomes.add("Osmar"); // obtém o terceiro item na lista String nome = nomes.get(2); System.out.println("O valor obtido foi: " + nome); System.exit(0); } } Ao executar este código nós teremos o seguinte resultado: O valor obtido foi: Fernanda Esta dica foi revisada e testada no Java 8. |
Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em Ruby usando a função sizeQuantidade de visualizações: 7227 vezes |
Em algumas situações nós precisamos saber como retornar a quantidade de itens em um array Ruby. Para isso nós podemos usar a função size do objeto Array. Veja o exemplo: # vamos declarar um array com 5 elementos valores = [3, 6, 78, 32, 1] # vamos obter o seu tamanho tamanho = valores.size # e mostramos o resultado puts "O array contém #{tamanho} elementos" Ao executar este código Ruby nós teremos o seguinte resultado: O array contém 5 elementos |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em Python - Como calcular Bhaskara em PythonQuantidade de visualizações: 2643 vezes |
Como resolver uma equação do 2º grau usando Python Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem Python. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso código Python vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código Python. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação: # importamos a bibliteca Math import math def main(): # vamos pedir para o usuário informar os valores dos coeficientes a = float(input("Valor do coeficiente a: ")) b = float(input("Valor do coeficiente b: ")) c = float(input("Valor do coeficiente c: ")) # vamos calcular o discriminante discriminante = (b * b) - (4 * a * c) # a equação possui duas soluções reais? if(discriminante > 0): raiz1 = (-b + math.sqrt(discriminante)) / (2 * a) raiz2 = (-b - math.sqrt(discriminante)) / (2 * a) print("Existem duas raizes: x1 = {0} e x2 = {1}".format(raiz1, raiz2)) # a equação possui uma única solução real? elif(discriminante == 0): raiz1 = raiz2 = -b / (2 * a) print("Existem duas raizes iguais: x1 = {0} e x2 = {1}".format(raiz1, raiz2)) # a equação não possui solução real? elif(discriminante < 0): raiz1 = raiz2 = -b / (2 * a) imaginaria = math.sqrt(-discriminante) / (2 * a) print("Existem duas raízes complexas: x1 = {0} + {1} e x2 = {2} - {3}".format( raiz1, imaginaria, raiz2, imaginaria)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1.0 e x2 = -3.0 |
Ruby ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um diretório existe em Ruby usando a função File.exist()Quantidade de visualizações: 6735 vezes |
Em algumas situações nós precisamos testar a existência de um diretório na linguagem Ruby. Para isso nós podemos usar a função File.exist?(), que nos retorna um valor True se o diretório existir e False em caso contrário. Veja o código Ruby completo para o exemplo: # nome e caminho do diretório a ser testado diretorio = "C:\\estudos_ruby\\escola" if File.exist? diretorio puts "O diretório existe" else puts "O diretório não existe" end Ao executar este código Ruby nós teremos o seguinte resultado: O diretório existe |
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do WindowsQuantidade de visualizações: 11805 vezes |
Embora o Delphi já nos forneça as ferramentas necessárias para habilitar ou desabilitar um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função EnableWindow() com os valores true ou false. A função EnableWindow() possui a seguinte assinatura em C/C++: BOOL EnableWindow( HWND hWnd, BOOL bEnable ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal: // Protótipo {$EXTERNALSYM EnableWindow} function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall; // Implementação function EnableWindow; external user32 name 'EnableWindow'; Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja: procedure TForm1.Button1Click(Sender: TObject); begin // vamos desabilitar o TEdit usando a função EnableWindow() // com o valor false if EnableWindow(Edit1.Handle, False) = True then begin ShowMessage('A caixa de texto foi desabilitada com sucesso.'); end; end; Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable: procedure TForm1.Button1Click(Sender: TObject); begin // vamos habilitar o TEdit usando a função EnableWindow() // com o valor true if EnableWindow(Edit1.Handle, True) = True then begin ShowMessage('A caixa de texto foi habilitada com sucesso.'); end; end; É importante observar que o retorno da função EnableWindow será False se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada. |
PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como gerar um número aleatório (randômico) em PHP usando a função rand()Quantidade de visualizações: 30741 vezes |
Nesta dica mostrarei como gerar números randômicos dentro de uma determinada faixa usando a função rand() da linguagem PHP. Veja que esta função requer o limite inicial e final (incluso) da faixa a partir da qual o número aleatório será gerado. Veja um código PHP no qual geramos um número aleatório entre 1 e 10: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $num = rand(1, 10); echo "O número gerado foi: " . $num; ?> </body> </html> Ao executar este código nós teremos um resultado parecido com: O número gerado foi: 5 Obs: A partir da versão 4.2.0 do PHP, não é mais necessário usar srand() ou mt_srand() para inicializar a semente (seed) do gerador de números aleatórios. |
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a pesquisa ou busca linear ou sequencial nos elementos de um vetor em JavaQuantidade de visualizações: 4874 vezes |
A busca linear ou sequencial, muitas vezes chamada de pesquisa linear ou sequencial, é geralmente implementada por meio de um algorítmo que varre os elementos de um coleção sequencial, começando do primeiro elemento e indo até o último. Esta busca não é tão usada quando a pesquisa binária ou hashing, por ser considerada muito lenta quando aplicado a um conjunto de dados muito grande. A busca linear ou sequencial em um vetor Java pode ser descrito pelos seguintes passos: 1) Efetua a varredura dos elementos do vetor. 2) Compara o valor do elemento atual do vetor com o valor sendo pesquisado. 3) Se o valor for encontrado, efetue o procedimento desejado com o elemento do vetor. 4) Se a varredura alcançar o último elemento do vetor e o valor pesquisado não for encontrado, exiba uma mensagem de erro ou algum outro procedimento para alertar o usuário do programa. Veja um exemplo no qual declaramos e preenchemos um vetor de int com 5 elementos e em seguida usamos um método pesquisaLinear para verificar se um determinado valor existe no vetor: package arquivodecodigos; public class Estudos{ public static void main(String a[]){ // vamos criar um vetor de 5 elementos int int[] valores = {32, 7, 21, 4, 90}; // vamos pesquisar o valor 21 int valor = 21; // vamos verifiar se o valor está no vetor int indice = pesquisaLinear(valores, valor); if(indice > -1){ System.out.println("O valor foi encontrado no índice: " + indice); } else{ System.out.println("O valor não foi encontrado."); } } // método que permite efetuar a busca linear em um vetor public static int pesquisaLinear(int[] vetor, int valor){ // percorre os elementos do vetor for(int i = 0; i < vetor.length; i++){ // o valor foi encontrado? if(vetor[i] == valor){ return i; } } // não foi encontrado? vamos retornar -1 return -1; } } Ao executarmos este código nós teremos o seguinte resultado: O valor foi encontrado no índice: 2 Veja o mesmo código sem usar um método adicional, ou seja, a busca linear é feito dentro do método main() da classe Java: package arquivodecodigos; public class Estudos{ public static void main(String a[]){ // vamos criar um vetor de 5 elementos int int[] valores = {32, 7, 21, 4, 90}; // vamos pesquisar o valor 21 int valor = 21; // vamos verifiar se o valor está no vetor int indice = -1; // não foi encontrado // percorre os elementos do vetor for(int i = 0; i < valores.length; i++){ // o valor foi encontrado? if(valores[i] == valor){ indice = i; break; } } if(indice > -1){ System.out.println("O valor foi encontrado no índice: " + indice); } else{ System.out.println("O valor não foi encontrado."); } } } |
Java ::: Pacote java.awt ::: Graphics |
Como desenhar linhas em determinados ângulos usando o método drawLine() da classe Graphics - Computação Gráfica em JavaQuantidade de visualizações: 13852 vezes |
É possível usar o método drawLine() da classe Graphics para desenhar linhas em determinados ângulos. Observe atentamente a assinatura deste método:public abstract void drawLine(int x1, int y1, int x2, int y2) Aqui x1 e x2 representam as coordenadas iniciais da linha e x2 e y2 representam as coordenadas finais. Assim, vamos analisar a fórmula matemática que permite definir o ângulo de desenho. Comece definindo os valores para as coordenadas iniciais x1 e y1, o ângulo desejado e o comprimento da linha: int x1 = 30; int y1 = 50; int ang = 0; int comp = 100; Vamos começar obtendo a coordenada x final, que chamaremos de x2. Já sabemos que o ângulo é 0, então obteremos uma linha horizontal para a direita. Vamos ao cálculo: int x2 = (int)(x1 + Math.cos(ang / 180.0 * Math.PI) * comp); Já sabemos que o valor de x2 é igual a 0 pois (pode testar na barra de endereços de seu browser): javascript:alert(0 / 180.0 * Math.PI) resulta em 0 e: javascript:alert(Math.cos(0)) resulta em 1. Assim: x1 + (1 * 100) = 130. Para que nosso código esteja correto, o valor de y2 deverá ser igual a y1. Vejamos: int y2 = (int)(y1 - Math.sin(ang / 180.0 * Math.PI) * comp); Já sabemos que (ang / 180.0 * Math.PI) resulta em 0 e que o seno de 0 é 0. Assim: y1 - (0 * 100) = 50. Veja o código completo: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JLabel label; public Estudos() { super("Desenhando em um JLabel"); Container c = getContentPane(); c.setLayout(new BorderLayout()); // Cria um JLabel label = new JLabel(); c.add(label, BorderLayout.CENTER); // Cria um botão JButton btn = new JButton("Desenhar uma linha (ângulo)"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ // Desenha uma string no JLabel int x1 = 30; // coordenada inicial x int y1 = 50; // coordenada inicial y int ang = 0; // ângulo int comp = 100; // comprimento // coordenada x final int x2 = (int)(x1 + Math.cos(ang / 180.0 * Math.PI) * comp); // coordenada y final int y2 = (int)(y1 - Math.sin(ang / 180.0 * Math.PI) * comp); Graphics graphics = label.getGraphics(); graphics.drawLine(x1, y1, x2, y2); } } ); // Adiciona o botão à janela c.add(btn, BorderLayout.SOUTH); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Experimente agora fornecer ângulos diferentes, por exemplo, 45 (uma linha diagonal para a direita e para cima), 90 (uma linha vertical para cima), 135 (uma linha diagonal para a esquerda e para cima), 180 (uma linha horizontal para a esquerda), 225 (uma linha diagonal para a esquerda e para baixo), 270 (uma linha vertical para baixo), 315 (uma linha diagonal para a direita e para baixo) e 360 (uma linha horizontal para a direita). Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso. |
C++ ::: STL (Standard Template Library) ::: unordered_map |
Como contar as frequências de palavras em uma frase ou texto em C++ usando um unordered_mapQuantidade de visualizações: 850 vezes |
Nesta dica mostrarei como podemos usar o mapa não ordenado (unordered_map) da linguagem C++ para contar as frequências das palavras individuais de uma palavra ou texto. O exemplo mostrado aqui serve como base para a criação de aplicações muito interessantes. Veja o código C++ completo: #include <string> #include <iostream> #include <unordered_map> #include <bits/stdc++.h> using namespace std; // protótipo da função que exibe a frequência de palavras em uma // frase ou texto void exibir_frequencias(const string &frase); int main(int argc, char *argv[]){ // vamos declarar uma frase // retirei acentos e pontuações de propósito string frase = "Gosto de Java e Python pois quero aprender Java"; // mostramos a frase cout << "A frase é: " << frase << endl; // chamamos a função que exibe as frequencias cout << "\nA frequência das palavras é:\n" << endl; exibir_frequencias(frase); cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } // função que exibe a frequência de palavras em uma // frase ou texto void exibir_frequencias(const string &frase){ // vamos declarar um mapa que terá como chave uma string // e como valor um int unordered_map<string, int> frequencias; // agora convertemos a frase recebido como argumento // em um objeto stringstream stringstream ss(frase); // e percorremos as palavras individualmente string palavra; while (ss >> palavra){ // essa palavra já existe no mapa? if (frequencias.find(palavra) == frequencias.end()){ // adiciona esta palavra ao mapa frequencias[palavra] = 1; } else{ // já existe. Vamos incrementar esta frequência frequencias[palavra] = frequencias[palavra] + 1; } } // agora percorremos o mapa não ordenado, acessando // cada chave e mostrando a frequencia de cada palavra unordered_map<string, int>:: iterator p; for (p = frequencias.begin(); p != frequencias.end(); p++){ cout << "(" << p->first << ", " << p->second << ")\n"; } } Ao executar este código C++ nós teremos o seguinte resultado: A frase é: Gosto de Java e Python pois quero aprender Java A frequência das palavras é: (aprender, 1) (quero, 1) (pois, 1) (Gosto, 1) (Java, 2) (e, 1) (de, 1) (Python, 1) |
Java ::: Fundamentos da Linguagem ::: Variáveis e Constantes |
Java para iniciantes - Como usar os diferentes tipos de variáveis em JavaQuantidade de visualizações: 17495 vezes |
Na linguagem de programação Java podemos encontrar diferentes tipos de variáveis. Veja a lista e uma descrição detalhada de cada um destes tipos: Variáveis de instância (Instance Variables) - Estas variáveis são não-estáticas, ou seja, declaradas sem o modificador static. Variáveis de instância são assim chamadas porque seus valores são únicos para cada instância da classe. Assim, a variável nomeCliente pode armazenar valores diferentes para cada cópia da classe Cliente. Variáveis de classes - Estas variáveis são declaradas com o modificador static. Isso informa ao compilador que há exatamente uma única cópia desta variável, independente do número de instâncias da classe. Um bom exemplo de tal variável é quantCliente, que pode ser incrementada cada vez que uma nova cópia da classe é criada. Variáveis locais - São usadas para armazenar o estado temporário de um método. Variáveis locais são acessíveis somente dentro do método em que são declaradas, e automaticamente abandonadas na saída deste. Parâmetros - São os parâmetros de métodos. Tais variáveis são acessíveis somente ao código no corpo do método. Geralmente quando falamos de "campos em geral" (excluindo variáveis locais e parâmetros), podemos simplesmente dizer "campos". Se a discussão se aplica a todas as variáveis acima, usamos "variáveis". Se o contexto pede uma distinção, usamos termos específicos (campo estático, variável local, etc) como apropriado. Podemos ainda usar o termo "membro". Os campos, métodos e tipos aninhados de um tipo podem ser chamados de seus membros. |
Nossas 20 dicas & truques de programação mais populares |
Java - Como converter de octal para decimal usando o método parseInt() da classe Integer da linguagem Java Python - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Python |
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 |
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 |