![]() |
|||||
|
JavaScript ::: Dicas & Truques ::: Cookies |
Cookies em JavaScript - Como obter o valor de um cookie usando JavaScriptQuantidade de visualizações: 161 vezes |
Nesta dica eu mostro como podemos escrever uma função JavaScript chamada obterCookie() que recebe o nome de um cookie e retorna o seu valor. Veja que, se o cookie com o nome informado não existir, o valor null é retornado. Veja o código JavaScript completo, incluindo o código HTML: <html> <head> <title>Estudando JavaScript</title> <script type="text/javascript"> // função que permite obter um cookie function obterCookie(nome){ if(document.cookie.length > 0){ c_start = document.cookie.indexOf(nome + "="); if(c_start != -1){ c_start = c_start + nome.length + 1; c_end = document.cookie.indexOf(";", c_start); if(c_end == -1){ c_end = document.cookie.length; } return unescape(document.cookie.substring( c_start, c_end)); } } return null; } </script> </head> <body> <script type="text/javascript"> // verifica se o cookie "nome_visitante" existe // e obtém seu valor var nome_visitante = obterCookie('nome_visitante'); if(nome_visitante != null){ document.writeln("O cookie nome_visitante existe. " + "Seu valor é: " + nome_visitante); } else{ document.writeln("O cookie nome_visitante não existe"); } </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: O cookie nome_visitante existe. Seu valor é: Osmar |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: STL Vector C++ |
Exercícios Resolvidos de C++ - Escreva um programa C++ que retorna os elementos em um vector que são estritamente menores que seus vizinhos adjacentes da esquerda e da direitaQuantidade de visualizações: 160 vezes |
Pergunta/Tarefa: Escreva um programa C++ que retorna os elementos em um vector que são estritamente menores que seus vizinhos adjacentes da esquerda e da direita. Seu código deverá pedir para o usuário informar 10 valores inteiros, guardá-los em um vector e então calcular e exibir o resultado. Sua saída deverá ser parecida com: Informe o 1.o valor: 8 Informe o 2.o valor: 4 Informe o 3.o valor: 9 Informe o 4.o valor: 3 Informe o 5.o valor: 1 Informe o 6.o valor: 6 Informe o 7.o valor: 2 Informe o 8.o valor: 7 Informe o 9.o valor: 3 Informe o 10.o valor: 8 Conteúdo do vector: 8 4 9 3 1 6 2 7 3 8 Os elementos menores que seus vizinhos adjascentes são: 4 1 2 3 Veja a resolução comentada deste exercício usando C++: // vamos fazer os includes ncessários #include <algorithm> #include <iostream> #include <vector> using namespace std; // função para encontrar os elementos no vector que são menores // que seus vizinhos adjacentes vector<int> verificar(vector<int> valores) { // vamos inicializar um vector vazio para guardar os elementos // que passarem na condição vector<int> temp; // vamos percorrer o vector recebido como argumento for(int i = 1; i < valores.size() - 1; i++) { // o elemento atual é menor que o elemento anterior e posterior a ele? if(valores[i] < valores[i - 1] && valores[i] < valores[i + 1]) { // vamos adicionar no vector temporário temp.push_back(valores[i]); } } // retornamos o vector temporário return temp; } // função principal do programa int main(int argc, char *argv[]) { // vamos criar o vector que guardará os valores informados // pelo usuário vector<int> numeros; int valor; // vamos ler 10 números inteiros for (int i = 0; i < 10; i++) { cout << "Informe o " << (i + 1) << ".o valor: "; cin >> valor; numeros.push_back(valor); } // vamos mostrar o conteúdo do vector original cout << "\nConteúdo do vector: "; for (int n: numeros) { cout << n << " "; } // agora vamos testar os números que são menores que seus // vizinhos adjascentes vector<int> resultado = verificar(numeros); cout << "\n\nOs elementos menores que seus vizinhos adjascentes são:\n\n"; for (int n: resultado) { cout << n << " "; } cout << "\n\n"; return EXIT_SUCCESS; } |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como detectar alterações no conteúdo de um JTextAreaQuantidade de visualizações: 113 vezes |
Nesta dica veremos como é possível escrever uma aplicação Java Swing que detecta quando o conteúdo de um controle JTextArea é alterado. Para isso nós vamos fazer a janela JFrame implementar a interface DocumentListener e fornecer comportamento para seus método insertUpdate(), removeUpdate() e changedUpdate(). O resultado do código é refletido na imagem abaixo: ![]() E agora o código Java Swing completo para o exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import javax.swing.event.*; public class Estudos extends JFrame implements DocumentListener{ JTextArea textArea; JLabel aviso; public Estudos() { super("Detectando alterações em um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); textArea.setLineWrap(true); textArea.getDocument().addDocumentListener(this); aviso = new JLabel("Aviso de alterações"); c.add(textArea); c.add(aviso); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void insertUpdate(DocumentEvent e) { aviso.setText("Aviso de Inserção: " + e.toString()); } public void removeUpdate(DocumentEvent e) { aviso.setText("Aviso de Remoção: " + e.toString()); } public void changedUpdate(DocumentEvent e) { // pode obter os dois anteriores aqui // aviso.setText("Aviso de Alteração: " + e.toString()); } } |
Java ::: Pacote java.lang ::: StringBuffer |
Java do básico ao avançado - Como usar o método append() para adicionar mais conteúdo ao final de um StringBufferQuantidade de visualizações: 9454 vezes |
O método append() da classe StringBuffer se torna útil quando precisamos adicionar mais conteúdo ao final de um objeto desta classe. Este método possui, no Java 7, as seguintes sobrecargas: public StringBuffer append(Object obj) public StringBuffer append(String str) public StringBuffer append(StringBuffer sb) public StringBuffer append(CharSequence s) public StringBuffer append(CharSequence s, int start, int end) public StringBuffer append(char[] str) public StringBuffer append(char[] str, int offset, int len) public StringBuffer append(boolean b) public StringBuffer append(char c) public StringBuffer append(int i) public StringBuffer append(long lng) public StringBuffer append(float f) public StringBuffer append(double d) Note que em todas as sobrecargas do método, o retorno é um objeto da classe StringBuffer. Mas, não é um novo objeto StringBuffer. É uma referência ao objeto StringBuffer já existente. Veja um exemplo no qual usamos este método para adicionar mais duas palavras ao conteúdo do StringBuffer: package estudos; public class Estudos{ public static void main(String[] args) { // um StringBuffer contendo uma frase StringBuffer frase = new StringBuffer("Gosto muito de programar"); // vamos adicionar mais duas palavras ao final do StringBuffer frase.append(" em"); frase.append(" Java"); // agora mostramos o resultado System.out.println(frase); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Gosto muito de programar em Java |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercícios Resolvidos de Python - Lendo a idade de um nadador e classificando sua categoria como infantil, juvenil, adolescente, adulto ou sêniorQuantidade de visualizações: 527 vezes |
Pergunta/Tarefa: Escreva um programa Python que solicita a idade de um nadador e classifica sua categoria de acordo com as seguintes regras: a) De 5 a 7 anos - Infantil; b) De 8 a 10 anos - Juvenil; c) De 11 a 15 anos - Adolescente; d) De 16 a 30 anos - Adulto; e) Acima de 30 anos - Sênior. Sua saída deverá ser parecida com: Informe sua idade: 19 Sua categoria é Adulto Veja a resolução comentada deste exercício usando Python: # vamos solicitar a idade do nadador idade = int(input("Informe sua idade: ")) # vamos verificar a categoria do nadador if ((idade >= 5) and (idade <= 7)): print("Sua categoria é Infantil") elif ((idade >= 8) and (idade <= 10)): print("Sua categoria é Juvenil") elif ((idade >= 11) and (idade <= 15)): print("Sua categoria é Adolescente") elif ((idade >= 16) and (idade <= 30)): print("Sua categoria é Adulto") elif (idade > 30): print("Sua categoria é Sênior") else: print("Não pertence a nenhuma categoria.") |
JavaScript ::: Dicas & Truques ::: Tratamento de Erros |
Como retornar o nome ou tipo de exceção de um erro em JavaScript usando a propriedade name do objeto ErrorQuantidade de visualizações: 7146 vezes |
Em várias situações nós precisamos saber o nome do tipo de erro de tempo de execução em JavaScript. Para isso nós podemos usar a propriedade name do objeto Error. Veja um código JavaScript completo demonstrando o seu uso: <!doctype html> <html> <head> <title>Estudos JavaScript</title> </head> <body> <script language="javascript"> // o trecho de código a seguir vai provocar // um erro de tempo de execução em JavaScript try{ // y não foi definido var x = y; } catch(e){ document.write("Tipo do erro: " + e.name); } </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Tipo do erro: ReferenceError A propriedade name do objeto Error pode retornar os seguintes valores: EvalError - Um erro provocado pela função eval. RangeError - Um erro provocado por um número fora da faixa permitida. ReferenceError - Uma referência ilegal provocou o erro. SyntaxError - Um erro de sintáxe. TypeError - Um erro provocado por uma conversão de tipos. URIError - Provocado por um erro na função encodeURI(). |
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Como verificar a existência de um diretório usando a função DirectoryExists() do DelphiQuantidade de visualizações: 13140 vezes |
Em algumas situações precisamos saber se um diretório já existe, talvez para evitar que nosso código tente criar um diretório com o mesmo caminho e nome. Em Delphi isso pode ser feito com o auxílio da função DirectoryExists() da unit SysUtils. Esta função recebe uma string contendo o nome do diretório a ser pesquisado e retorna true se o diretório existir e false em caso contrário. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var diretorio: string; begin // diretório que queremos verificar a existência diretorio := 'C:\arquivo de codigos'; // vamos verificar se o diretório existe if DirectoryExists(diretorio) then ShowMessage('O diretório existe') else ShowMessage('O diretório NÃO existe'); end; Note que a unit FileCtrl também contém uma função chamada DirectoryExists(). Porém, esta função foi considerada ultrapassada. Dê preferência àquela da unit SysUtils. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: Dicas & Truques ::: Aplicativos e Outros |
Como calcular a distância entre dois pontos na terra em DelphiQuantidade de visualizações: 1513 vezes |
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado. O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes. Veja o código Delphi completo: // função que recebe dois pontos na terra e retorna a distância // entre eles em quilômetros function CalcularDistancia(lat1: double; lat2: double; lon1: double; lon2: double): double; var raio_terra, dlon, dlat, a, c: double; begin raio_terra := 6378.137; // raio da terra em quilômetros // o primeiro passo é converter as latitudes e longitudes // para radianos // não esqueça de adicionar a unit Math lon1 := DegToRad(lon1); lon2 := DegToRad(lon2); lat1 := DegToRad(lat1); lat2 := DegToRad(lat2); // agora aplicamos a Fórmula de Haversine dlon := lon2 - lon1; dlat := lat2 - lat1; a := Power(Sin(dlat / 2), 2) + Cos(lat1) * Cos(lat2) * Power(Sin(dlon / 2),2); c := 2 * ArcSin(Sqrt(a)); // e retornamos a distância Result := (c * raio_terra); end; procedure TForm5.Button1Click(Sender: TObject); var lat1, lon1, lat2, lon2, distancia: double; begin // obtém as coordenadas vindas dos campos de texto lat1 := StrToFloat(txtPrimeiraLatitude.Text); lon1 := StrToFloat(txtPrimeiraLongitude.Text); lat2 := StrToFloat(txtSegundaLatitude.Text); lon2 := StrToFloat(txtSegundaLongitude.Text); // vamos calcular a distância entre os dois pontos em Kms distancia := CalcularDistancia(lat1, lat2, lon1, lon2); // e mostramos o resultado txtDistancia.Text := FormatFloat('#.0', distancia) + ' kms'; end; Ao executar este código Delphi nós teremos o seguinte resultado: Informe a primeira latitude: -16,674551 Informe a primeira longitude: -49,303598 Informe a segunda latitude: -15,579321 Informe a segunda longitude: -56,10009 A distância entre os dois pontos é: 736,9 kms Aqui as informações sobre as latitudes e longitudes vieram de campos de texto TEdit, e o código foi disparado a partir do clique de um botão TButton. Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT. A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string do Java usando o método substring() e um laço forQuantidade de visualizações: 11 vezes |
Nesta dica mostrarei como podemos usar o método substring() da classe String, combinado com o laço for, para contar as ocorrências de uma substring em uma string da linguagem Java. Note que usamos também os métodos length() e equals() para completar a tarefa. Veja o código Java completo para o exemplo: package estudos; public class Estudos{ public static void main(String[] args){ // vamos criar uma string representando uma frase String frase = "Programar em Java só é melhor que programar em Java"; // a substring que vamos pesquisar String sub = "Java"; // ocorrências de "Java" // quantidade de ocorrências int cont = 0; // um laço for que vai de 0 até o tamanho da primeira string menos // o tamanho da segunda string - 1 for(int i = 0; i < (frase.length() - sub.length() + 1); i++){ String res = frase.substring(i, (i + sub.length())); // encontramos a substring mais uma vez? if(res.equals(sub)){ cont++; } } System.out.println("A frase contém " + cont + " ocorrências de " + sub); // fecha o programa System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: A frase contém 2 ocorrências de Java |
Django ::: Dicas de Estudo e Anotações ::: Passos Iniciais |
Como criar um novo projeto Django usando o comando django-admin startprojectQuantidade de visualizações: 668 vezes |
Quando estamos desenvolvendo aplicações web usando o framework Django do Python, é comum encontrarmos os termos projetos e aplicações. Um projeto é uma instalação do Django com algumas configurações específicas, enquanto uma aplicação (ou app) é um conjunto de models, views, templates e URLs. Nesta dica mostrarei como criar um novo projeto Django. Para isso usaremos o comando django-admin startproject. Assim, crie um diretório para o seu projeto, entre nela via janela de terminal e dispare o seguinte comando: c:\>cd c:\estudos_python c:\estudos_python>django-admin startproject estudos Note que criei um projeto chamado "estudos" dentro do diretório "c:\estudos_python". Veja agora os arquivos que a ferramenta django-admin criou para nós: estudos/ manage.py estudos/ __init__.py asgi.py wsgi.py settings.py urls.py O arquivo manage.py é um utilitário de linha comando que usamos para interagir com o nosso projeto. Este arquivo, que serve como um wrapper para a ferramenta django-admin.py, não precisa ser editado. O arquivo __init__.py, já dentro do diretório do projeto, é um arquivo vazia que informa ao Python para tratar o diretório "estudos" como um módulo Python. O arquivo settings.py serve para definirmos ajustes e configurações para o nosso projeto. Ele contém as configurações iniciais, tais como LANGUAGE_CODE, DATABASES, TEMPLATES, ALLOWED_HOSTS, DEBUG, etc. O arquivo urls.py é o local qual ficamos os padrões de URL. Cada URL deste arquivo é mapeada para uma view (página de apresentação). O arquivo wsgi.py contém as configurações para rodarmos o nosso projeto como uma aplicação Web Server Gateway Interface (WSGI). Para finalizar, o arquivo asgi.py contém as configurações para rodarmos o nosso projeto como ASGI. Este é um padrão recente para servidores web e aplicações assíncronas. Agora que o projeto já foi criado, para rodar ele no navegador, basta entrar no diretório principal e disparar o comando abaixo: c:\estudos_python>cd estudos c:\estudos_python\estudos>python manage.py runserver Se tudo correr bem, abra seu navegador na URL http://127.0.0.1:8000 e você verá seu projeto Django em execução. Em mais dicas do site você verá como criar aplicações Django dentro do seu projeto. |
Nossas 20 dicas & truques de programação mais populares |
Ruby - Como inserir uma substring em uma determinada posição de uma string em Ruby usando a função insert() |
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 |