![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
HTML5 ::: HTML5 + JavaScript ::: Geolocation API |
Como retornar a localização do usuário usando o método getCurrentPosition() da API Geolocation do HTML5Quantidade de visualizações: 2688 vezes |
O método getCurrentPosition() da API Geolocation do HTML5 nos permite obter tanto a latitude quanto a longitude do usuário que está acessando nossas páginas web. A forma mais simples deste método requer apenas uma função JavaScript que receberá o objeto de coordenadas. Veja o trecho de código a seguir: <html> <head> <title>Obtendo a latitude e longitude usando a API Geolocation</title> </head> <body> <script type="text/javascript"> function mostrarPosicao(posicao) { document.writeln("<h1>Latitude: " + posicao.coords.latitude + "; Longitude: " + posicao.coords.longitude + "</h1>"); } // não se esqueça de testar se o navegador web suporta a API // Geolocation do HTML5 if(window.navigator.geolocation) { // chamamos o método getCurrentPosition() fornecendo a função // JavaScript que receberá o objeto de coordenadas navigator.geolocation.getCurrentPosition(mostrarPosicao); } else{ document.writeln("A API Geolocation foi encontrada."); } </script> </body> </html> Ao executar este trecho de código, a primeira coisa que você verá é uma mensagem do navegador avisando que o site a partir do qual o código está sendo executado quer saber sua localização. A mensagem exibirá os botões Permitir ou Bloquear. Se você clicar no botão Permitir, a latitude e longitude serão escritas no navegador: Latitude: -16.7143838; Longitude: -49.2327622 É claro que, se você estiver executando o código em um laptop ou desktop, o resultado será muito diferente daquele mostrado no seu celular. O motivo é que, em geral, um GPS não está disponível nos laptops e desktops. Por essa razão, o navegador vai obter sua localização usando posicionamento de WI-FI e também por meio do seu endereço IP (Internet Protocol). |
Java ::: Pacote java.lang ::: Integer |
Java para iniciantes - Como usar o método parseInt() da classe Integer para converter uma String em um valor do tipo intQuantidade de visualizações: 95725 vezes |
Em algumas situações, principalmente quando estamos lidando com valores informados pelo usuário, nós precisamos converter uma String em um valor inteiro. Para isso podemos usar o método parseInt() da classe Integer. Veja sua assinatura: public static int parseInt(String s) throws NumberFormatException A String fornecida como argumento deve conter apenas digitos decimais, exceto que o primeiro caractere pode ser o caractere ASCII sinal de menos "-" ('\u002D') para indicar um valor negativo ou o caractere ASCII sinal de mais "+" ('\u002B') para indicar um valor positivo. Veja um exemplo no qual usamos o método parseInt() para converter uma String informada pelo usuário em um valor do tipo int: import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos usar um objeto da classe Scanner para ler a idade do usuário Scanner entrada = new Scanner(System.in); // solicita a idade System.out.print("Informe sua idade: "); int idade = Integer.parseInt(entrada.nextLine()); // mostra o valor lido System.out.println("A idade informada foi: " + idade); } } Ao executarmos este código teremos o seguinte resultado: Informe sua idade: 28 A idade informada foi: 28 Há, porém, situações nas quais o usuário pode não seguir as recomendações de não inserir caracteres inválidos, o que inviabiliza a conversão para inteiro. Veja: Informe sua idade: osmar Exception in thread "main" java.lang.NumberFormatException: For input string: "osmar" at java.lang.NumberFormatException.forInputString(NumberFormatException. java:48) at java.lang.Integer.parseInt(Integer.java:447) at java.lang.Integer.parseInt(Integer.java:497) at Estudos.main(Estudos.java:10) Para contornar esta situação nós precisamos fornecer um bloco try...catch para tratar a exceção NumberFormatException. Veja: import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos usar um objeto da classe Scanner para ler a idade do usuário Scanner entrada = new Scanner(System.in); // solicita a idade System.out.print("Informe sua idade: "); try{ int idade = Integer.parseInt(entrada.nextLine()); // mostra o valor lido System.out.println("A idade informada foi: " + idade); } catch(NumberFormatException nfe){ System.out.println("Valor inválido: " + nfe.getMessage()); } } } Agora o programa exibirá uma mensagem de erro caso o usuário forneça uma String que não pode ser convertida para inteiro. |
Java ::: Pacote java.lang ::: String |
Como quebrar uma string Java em suas partes usando o método split() da classe StringQuantidade de visualizações: 4002 vezes |
O método split() da classe String é usado quando queremos quebrar uma string em suas partes e obter, como retorno, um vetor (matriz ou array) de objetos da classe String. Veja sua assinatura:public String[] split(String regex) Veja que o argumento regex é uma expressão regular que será usada para separar as partes da string. Veja um trecho de código no qual separamos todas as palavras de uma frase usando o caractere de espaço como delimitador: package estudos; public class Estudos{ public static void main(String[] args) { String frase = "Gosto muito de programar em Java e PHP"; // vamos obter as partes da string usando o espaço como delimitador String partes[] = frase.split("\\s+"); // vamos percorrer as partes obtidas for(int i = 0; i < partes.length; i++){ System.out.println(partes[i]); } } } Ao executarmos este código nós teremos o seguinte resultado: Gosto muito de programar em Java e PHP Tenha cuidado. Se uma expressão regular inválida for fornecida para o método split(), uma exceção do tipo PatternSyntaxException será atirada. Há uma sobrecarga do método split() com a seguinte assinatura: public String[] split(String regex, int limit) Esta sobrecarga nos permite definir a quantidade de vezes que o padrão da expressão regular será aplicado e afeta a quantidade de partes da string que serão retornados. Veja: package estudos; public class Estudos{ public static void main(String[] args) { String frase = "Gosto muito de programar em Java e PHP"; // vamos obter as partes da string usando o espaço como delimitador String partes[] = frase.split("\\s+", 3); // vamos percorrer as partes obtidas for(int i = 0; i < partes.length; i++){ System.out.println(partes[i]); } } } Ao executarmos este código o resultado será: Gosto muito de programar em Java e PHP |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para escrita em Ruby sem a necessidade de métodos mutatórios usando a função attr_accessorQuantidade de visualizações: 7363 vezes |
Por padrão, variáveis de instância em Ruby só podem ser acessadas para escrita usando métodos mutatórios, ou seja, uma variável de instância @nome deve ser modificada usando um método definir_nome. É possível dispensar o uso de métodos mutatórios empregando o método attr_accessor nos nomes das variáveis que poderão ser acessadas e modificadas. Lembre-se que, ao contrário de attr_reader, o método attr_accessor possibilita o acesso à variável de instância tanto para leitura quanto para escrita. Veja um exemplo: # Definição da classe Cliente class Cliente attr_accessor :nome, :idade def initialize(nome, idade) @nome = nome @idade = idade end end # Cria uma instância da classe Cliente e inicializa as # variáveis de instância @nome e @idade cliente = Cliente.new("Osmar J. Silva", 35) # Acessa as variáveis de instância sem a necessidade # de métodos acessórios puts cliente.nome puts cliente.idade # Modifica as variáveis de instância sem a necessidade # de métodos mutatórios cliente.nome = "Carlos da Silva" cliente.idade = 56 # Obtém os resultados puts cliente.nome puts cliente.idade Se tentarmos acessar e modificar as variáveis nome e idade diretamente, sem os métodos mutatórios e a função attr_accessor nós teremos um erro do tipo: Traceback (most recent call last): estudos.arb:15:in `<main>': undefined method `nome' for #<Cliente:0x0000029a7211f080 @nome="Osmar J. Silva", @idade=35> (NoMethodError) |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de VisuAlg - Como testar se um ano é bissexto em VisuAlg - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 970 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa VisuAlg que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando VisuAlg: algoritmo "Como testar se um ano é bissexto em VisuAlg" var // variáveis usadas na resolução do problema ano: inteiro inicio // vamos solicitar que o usuário informe um ano escreva("Informe o ano: ") leia(ano) // vamos verificar se o ano informado é bissexto se (((ano mod 4 = 0) e (ano mod 100 <> 0)) ou (ano mod 400 = 0)) entao escreva("O ano informado é bissexto.") senao escreva("O ano informado não é bissexto.") fimse fimalgoritmo |
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cppQuantidade de visualizações: 28188 vezes |
Esta dica o guiará passo-a-passo na criação de uma classe C++, incluindo os arquivos .h e .cpp. Para isso vamos usar o Dev-C++ (acreditamos que o procedimento é parecido com outros compiladores). Vamos começar com o arquivo de definição. Com um projeto já iniciado no Dev-C++, vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o arquivo com o nome de "pessoa.h" e inclua nele o seguinte código: /* Código de definição: pessoa.h */ #ifndef PESSOA_H #define PESSOA_H #include <string> using std::string; class Pessoa{ public: void setNome(string nome); void setIdade(int idade); string getNome(); int getIdade(); private: string nome; int idade; }; #endif Salve este código como pessoa.h no diretório de sua aplicação C++. Este é o arquivo de definição da classe. É nele que declaramos os membros públicos e privados, incluindo as assinaturas dos métodos da classe. Passemos agora ao arquivo de implementação. Novamente vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o novo arquivo como "pessoa.cpp" e inclua nele o seguinte conteúdo: /* Código de implementação: pessoa.cpp */ #include "pessoa.h" void Pessoa::setNome(string nome){ this->nome = nome; } void Pessoa::setIdade(int idade){ this->idade = idade; } string Pessoa::getNome(){ return this->nome; } int Pessoa::getIdade(){ return this->idade; } Salve este código como pessoa.cpp no diretório de sua aplicação C++. Este é o arquivo de implementação dos métodos da classe Pessoa. Veja o uso da palavra-chave this quando queremos referenciar o objeto atual da classe e, é claro, evitar ambiguidade entre o nome das variáveis da classe e os nomes dos parâmetros dos métodos. Hora de testar. Crie o arquivo principal da aplicação (aquele que contém o método main()): #include <iostream> #include "pessoa.h" using namespace std; int main(int argc, char *argv[]) { // declara um objeto da classe Pessoa Pessoa p; // informa o nome e idade da pessoa p.setNome("Osmar J. Silva"); p.setIdade(27); // obtém o nome e idade da pessoa cout << "Nome: " << p.getNome() << endl; cout << "Idade: " << p.getIdade() << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Funcionou tudo como planejado? Se funcionou, parabéns! Já fizemos um bom progresso na criação e uso de classes em C++. |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como adicionar um JPopupMenu a um JTextAreaQuantidade de visualizações: 118 vezes |
Neste exemplo mostrarei como é possível associar um JPopupMenu a um JTextArea. Dessa forma, quando clicarmos com o botão auxiliar na área de texto, nós teremos algumas opções de menu, tais como copiar, colar, selecionar tudo, etc. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para o exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ JTextArea textArea; JPopupMenu popup; JMenuItem selecionar; public Estudos() { super("Uso de JPopupMenu em um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); JScrollPane scrollPane = new JScrollPane(textArea); textArea.addMouseListener( new MouseAdapter(){ @Override public void mouseReleased(MouseEvent e){ if(e.isPopupTrigger()) popup.show(e.getComponent(), e.getX(), e.getY()); } } ); // cria o JPopupMenu popup = new JPopupMenu(); selecionar = new JMenuItem("Selecionar Tudo"); selecionar.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent ev){ textArea.requestFocus(); textArea.selectAll(); } } ); popup.add(selecionar); // fim menu c.add(scrollPane); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular raiz quadrada usando PHP - Como efetuar cálculos de raiz quadrada em PHP usando a função sqrt()Quantidade de visualizações: 14978 vezes |
Em algumas situações precisamos obter a raiz quadrada de um determinado valor. Em PHP isso pode ser feito com o auxílio da função sqrt(). Veja um exemplo de seu uso:<? // valor cuja raiz quadrada será obtida $valor = 25; // vamos obter a raiz quadrada do valor acima $raiz_quadrada = sqrt($valor); // vamos exibir o resultado echo "A raiz quadrada de " . $valor . " é: " . $raiz_quadrada; ?> Ao executarmos este código teremos o seguinte resultado: A raiz quadrada de 25 é: 5. Note, porém, que se tentarmos obter a raiz quadrada de um número negativo o valor será NAN. Veja: <? // valor cuja raiz quadrada será obtida $valor = -25; // vamos obter a raiz quadrada do valor acima $raiz_quadrada = sqrt($valor); // vamos exibir o resultado echo "A raiz quadrada de " . $valor . " é: " . $raiz_quadrada; ?> Ao executarmos este código teremos o seguinte resultado: A raiz quadrada de -25 é: NAN. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de C - Como testar se um ano é bissexto em C - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 1137 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa C que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando C console: #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]){ int ano; setlocale(LC_ALL,""); // para acentos do português // vamos solicitar que o usuário informe um ano printf("Informe o ano: "); scanf("%d", &ano); // vamos verificar se o ano informado é bissexto if(((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){ printf("\nO ano informado é bissexto.\n"); } else{ printf("\nO ano informado não é bissexto.\n"); } printf("\n\n"); system("pause"); return 0; } |
Python ::: Python para Engenharia ::: Cálculo Diferencial e Integral |
Como calcular o limite de uma função usando Python e a biblioteca Sympy - Python para EngenhariaQuantidade de visualizações: 4514 vezes |
Como calcular o limite de uma função usando Python e a biblioteca Sympy Citando a Wikipédia: Na matemática, o limite de uma função é um conceito fundamental em cálculo e análise sobre o comportamento desta função quando próxima a um valor particular de sua variável independente. Informalmente, diz-se que __$\text{L}__$ é o limite da função __$\text{f(x)}__$ quando __$\text{x}__$ tende a __$\text{p}__$, escreve-se \[ \lim_{x \to p} f(x) = L \] quando __$\text{f(x)}__$ está arbitrariamente próximo de __$\text{L}__$ para todo __$\text{x}__$ suficientemente próximo de __$\text{p}__$. O conceito de limite pode ser estendido para funções de varias variáveis. A biblioteca SymPy da linguagem Python facilita muito o trabalho de se calcular limites. É claro que é sempre uma boa idéia saber calcular o limite de uma função "na mão" mesmo, até para sabermos se nosso código Python está correto. No entanto, em algumas situações, lançar mão da função limit() da SymPy nos poupará um tempo incrível. Dessa forma, a sintáxe para o cálculo do limite na SymPy segue o padrão limit(função, variável, ponto). Então, se quisermos calcular o limite de f(x) com x tendendo a 0, só precisamos fazer limit(f, x, 0). Vamos colocar esse conhecimento em prática então? Veja o seguinte limite: \[ \lim_{x \to 1} 5x^2 + 2x \] Agora observe o código Python completo que calcula e retorna o limite desta função: # vamos importar a biblioteca SymPy from sympy import * def main(): # vamos definir o símbolo x x = symbols("x") # definimos a função f = (5 * x ** 2) + (2 * x) # finalmente calculamos o limite limite = limit(f, x, 1) # e mostramos o resultado print("O limite da função é: %f." % limite) if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: O limite da função é: 7.000000. Logo, o limite da função no ponto __$\text{x}__$ = 1 vale 7, em outras palavras, 7 é o valor que __$f(5x^2 + 2x)__$ deveria ter em 1 para ser contínua nesse ponto. Vamos ver mais um exemplo? Observe o seguinte limite: \[ \lim_{x \to 1} \left(\frac{x^2 - 1}{x - 1}\right) \] Aqui temos um situação interessante. Note que temos que fazer uma manipulação algébrica na expressão, fatorando os termos. Porém, mesmo em situações assim o método limit() da Sympy consegue interpretar a expressão simbólica corretamente e nos devolver o limite esperado. Veja o código Python completo: # vamos importar a biblioteca SymPy from sympy import * def main(): # vamos definir o símbolo x x = symbols("x") # definimos a função f = (x ** 2 - 1) / (x - 1) # finalmente calculamos o limite limite = limit(f, x, 1) # e mostramos o resultado print("O limite da função é: %f." % limite) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O limite da função é: 2.000000. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como retornar apenas os três primeiros elementos de um array em JavaScript usando a função slice() do objeto Array |
Você também poderá gostar das dicas e truques de programação abaixo |
Excel - Como gerar números aleatórios inteiros entre 1 e 10 no Excel usando as funções ALEATÓRIO() e INT() C++ - Como obter o diretório atual usando a função GetCurrentDirectory() da API do Windows - C++ e WinAPI Java - Como retornar a quantidade de mapeamentos (chave-valor) em um HashMap do Java usando o método size() Python - Como gerar permutações de uma string em Python usando o objeto permutations do módulo Itertools |
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 |