![]() |
|||||
|
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: 1864 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. |
C# ::: Windows Forms ::: ListBox |
Como adicionar itens a uma ListBox do C# Windows Forms via código usando o método Add()Quantidade de visualizações: 26395 vezes |
Nesta dica eu mostrarei como podemos adicionar novos itens a um controle ListBox do C# Windows Forms em tempo de execução, ou seja, quando a aplicação já estiver sendo executada. Para isso nós podemos usar o método Add() do objeto ObjectCollection da classe ListBox. Veja um trecho de código no qual inserimos quatro nomes de cidades em uma ListBox. Os itens são adicionamos no evento Click de um botão: private void button1_Click(object sender, EventArgs e) { listBox1.Items.Add("Goiânia"); listBox1.Items.Add("São Paulo"); listBox1.Items.Add("Rio de Janeiro"); listBox1.Items.Add("Curitiba"); } |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se todos os elementos de um array satisfazem uma condição em JavaScript usando a função every()Quantidade de visualizações: 1567 vezes |
Em algumas situações nós gostaríamos de testar todos os elementos de um vetor e verificar se todos eles passam em um determinado teste. Para isso podemos usar a função every(), adicionada à linguagem JavaScript por meio do ECMAScript 5 (JavaScript 5, ECMAScript 2009, ES5). Este método nos permite fornecer uma função de callback que será chamada para cada um dos elementos do vetor. E o retorno do método every() é um valor true se todos os elementos passarem no teste e false em caso contrário. Veja um exemplo no qual testamos se TODOS os elementos de um vetor são maiores que 10: <script type="text/javascript"> function testarTodos(valor, indice, vetor){ if(valor > 10){ return true; } } var valores = new Array(21, 50, 30, 70, 12, 3); // vamos verificar se TODOS os valores são // maiores que 10 var res = valores.every(testarTodos); window.alert("Todos passaram no teste: " + res); </script> Aqui o resultado será false, pois o valor 3 não passou no teste. É importante observar que, assim que a função de callback retorna false pela primeira vez, o método every() já abandona sua execução. Uma função passada para o método every() pode conter os seguintes argumentos (nessa mesma ordem): a) O valor do item; b) O índice do item (opcional); c) O vetor a partir do qual o método every() está sendo chamado (opcional). Como última observação, o método every() não modifica o array original. |
C# ::: Windows Forms ::: ComboBox |
Como retornar o item selecionado em um ComboBox do C# Windows Forms usando a propriedade SelectedItemQuantidade de visualizações: 22907 vezes |
Muitas vezes precisamos obter o elemento selecionado em um ComboBox. Para isso podemos usar a propriedade SelectedItem. Esta propriedade retorna o item selecionado como um Object, o que nos permite efetuar um cast para o tipo que foi inserido. Veja um exemplo do uso deste método em um ComboBox que possui elementos do tipo String:private void button1_Click(object sender, EventArgs e){ // vamos obter o item selecionado no ComboBox // chamado "cidades" object sel = cidades.SelectedItem; // vamos exibir o resultado MessageBox.Show("Valor do elemento: " + sel.ToString()); } Aqui nós usamos o método ToString() da classe Object para obter uma representação textual do objeto sendo retornado. É claro que no caso de um objeto da classe String isso não é necessário. Incluímos apenas para fins didáticos. Neste trecho de código não convertemos o tipo retornado para um outro determinado tipo. Veja esta nova versão: private void button1_Click(object sender, EventArgs e){ // vamos obter o item selecionado no ComboBox // chamado "cidades" string sel = (string)cidades.SelectedItem; // vamos exibir o resultado MessageBox.Show("Valor do elemento: " + sel.ToString()); } Veja que agora nós fizemos uma conversão forçada (cast) de object para string. Se isso não fosse feito, a seguinte mensagem de erro de compilação seria exibida: Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?) |
Python ::: Flask Micro Framework ::: Rotas e Roteamento |
Como criar rotas em suas aplicações Flask usando o decorador @app.route() - Tutorial Flask para iniciantesQuantidade de visualizações: 1811 vezes |
Aplicações web modernas usam uma técnica chamada roteamento nomeado, ou, na linguagem do pessoal do SEO, URLs amigáveis. Isso quer dizer que, em vez de termos URLS do tipo /livro.php?id_livro=39 nós temos /livro/39. Neste modelo de roteamento, livro é o nome de uma função Python que será chamada quando o usuário acessar este endereço, e 39 será o argumento passado para o método. Em Flask, as URLs são associadas às funções Python por meio do decorador @app.route(). Veja uma aplicação Flask completa que possui um método index() que é chamado quando o usuário acessa a raiz da aplicação: # vamos importar a biblioteca Flask from flask import Flask # função principal do programa def main(): # vamos criar a aplicação Flask app = Flask(__name__) # definimos a rota para a função index() @app.route("/") def index(): return "Este é o método index()" # e iniciamos a aplicação web na porta 5000 app.run(port=5000, debug=True) if __name__== "__main__": main() Note que a nossa aplicação Flask estará disponível na porta 5000. Assim, ao acessar o endereço http://127.0.0.1:5000 nós teremos o seguinte resultado: Este é o método index() Veja agora como criar uma URL /listar_usuarios e associá-la a uma função listar_usuarios(): # vamos importar a biblioteca Flask from flask import Flask # função principal do programa def main(): # vamos criar a aplicação Flask app = Flask(__name__) # definimos a rota para a função index() @app.route("/") def index(): return "Este é o método index()" # definimos a rota para a função listar_usuarios() @app.route("/listar_usuarios") def listar_usuarios(): return "Este é o método para listar os usuários" # e iniciamos a aplicação web na porta 5000 app.run(port=5000, debug=True) if __name__== "__main__": main() Agora, experimente acessar o endereço http://127.0.0.1:5000/listar_usuarios e veja o resultado. Se tudo estiver correto, você verá o seguinte resultado: Este é o método para listar os usuários Em mais dicas desta seção você verá como criar URLs com parâmetros e passá-los para suas funções Python. |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - RevisadoQuantidade de visualizações: 18464 vezes |
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos. A Reflection permite o que é normalmente chamada de programação dinâmica em Java. A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect. Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object: package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe Object try{ Class c = Class.forName("java.lang.Object"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); // exibe o nome de cada método for(int i = 0; i < metodos.length; i++){ System.out.println(metodos[i].getName()); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: wait wait wait equals toString hashCode getClass notify notifyAll Eis uma lista das coisas que podemos fazer com a Java Reflection API: 1) Determinar a classe de um objeto; 2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe; 3) Descobrir quais constantes e declarações de métodos pertencem a uma interface; 4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução; 5) Obter e definir o valor do campo de um objeto; 6) Invocar um método em um objeto; 7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução. A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens. Esta dica foi revisada e testada no Java 8. |
Python ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Como usar os argumentos padrões das funções e métodos em PythonQuantidade de visualizações: 7721 vezes |
Geralmente quando efetuamos chamadas às funções, nosso código fica responsável por fornecer os valores para os argumentos da função. Em Python é possível termos argumentos padrões, e tais argumentos já podem ter um valor pré-definido. Desta forma, a passagem dos parâmetros se torna opcional. Veja um exemplo:# função com argumento padrão def erro(msg = "Houve um erro."): print(msg) def main(): # chamada à função fornecendo o argumento erro("Erro desconhecido.") # chamada à função sem fornecer o argumento erro() if __name__== "__main__": main() Ao executarmos este exemplo nós teremos o seguinte resultado: Erro desconhecido. Houve um erro. Veja mais um exemplo: # função com argumentos padrões def volume(comprimento = 1, largura = 1, altura = 1): return (comprimento * largura * altura) def main(): # chamada à função fornecendo um argumento print(volume(3)) # chamada à função fornecendo dois argumentos print(volume(4, 5)) # chamada à função fornecendo três argumentos print(volume(4, 5, 7)) # chamada à função fornecendo nenhum argumento print(volume()) if __name__== "__main__": main() Ao executarmos este exemplo nós teremos o seguinte resultado: 3 20 140 1 É importante observar que os argumentos padrões devem estar sempre à direita dos demais argumentos. Falhar em cumprir esta exigência pode causar um erro do tipo: SyntaxError: non-default argument follows default argument |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como obter o caractere da tecla pressionada usando o método getKeyChar() da classe KeyEvent do JavaQuantidade de visualizações: 3184 vezes |
Em algumas situações nós precisamos obter o caractere da tecla pressionada em nossas aplicações Java Swing. Para isso podemos usar o método getKeyChar() da classe KeyEvent. Veja sua assinatura:public char getKeyChar() O retorno do método é um char representando o caractere associado à tecla "digitada" (pressionada e liberada). Veja um trecho de código no qual temos uma janela JFrame que implementa a interface KeyListener e reage ao evento keyTyped() mostrando a letra digitada: package estudos; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Janela extends JFrame implements KeyListener{ public Janela(){ super("Eventos do Teclado"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); // vamos adicionar o objeto listener addKeyListener(this); setSize(350, 250); setVisible(true); } @Override public void keyPressed(KeyEvent e){ // sem implementação } @Override public void keyReleased(KeyEvent e){ // sem implementação } @Override public void keyTyped(KeyEvent e){ // vamos obter o caractere que foi digitado char letra = e.getKeyChar(); // mostra o caractere digitado JOptionPane.showMessageDialog(null, "O caractere pressionado foi: " + letra); } public static void main(String args[]){ Janela j = new Janela(); j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } É importante observar que o valor retornado pelo método getKeyChar() só possui sentido quando usado com eventos KEY_TYPED, uma vez que o caractere não é exibido quando o método é usado com os eventos KEY_PRESSED e KEY_RELEASED. Note ainda que a tecla Shift pode ser usada durante este evento. Assim, se combinarmos Shift + "s", o retorno será "S". Este método retorna o valor da constante KeyEvent.CHAR_UNDEFINED se um caractere Unicode válido não existir para o evento de "digitação" da tecla. |
C# ::: Dicas & Truques ::: Arquivos e Diretórios |
Como excluir um diretório em C# usando a função Delete() da classe DirectoryInfoQuantidade de visualizações: 251 vezes |
O método Delete() da classe DirectoryInfo do C# é muito útil quando precisamos excluir um diretório. Esta função é do tipo void, ou seja, não retorna nada. Veja um código completo demonstrando o seu uso: using System; using System.IO; namespace Estudos { class Principal { static void Main(string[] args) { // vamos criar uma nova instância da classe DirectoryInfo DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\imagens"); // vamos tentar excluir o diretório try { dir.Delete(); Console.WriteLine("Diretório excluído com sucesso."); } catch (Exception e) { Console.WriteLine("Não foi possível excluir o diretório: {0}", e.ToString()); } Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Diretório excluído com sucesso. Se o diretório a ser excluido não estiver vazio, a chamada ao método System.IO.DirectoryInfo.Delete() poderá gerar o seguinte erro: Não foi possível excluir o diretório: System.IO.IOException: A pasta não está vazia. : 'C:\estudos_csharp\imagens' at System.IO.FileSystem.RemoveDirectoryInternal(String fullPath, Boolean topLevel, Boolean allowDirectoryNotEmpty) at System.IO.FileSystem.RemoveDirectory(String fullPath, Boolean recursive) at System.IO.DirectoryInfo.Delete() at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 12 |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Manipulação de arquivos em Java - Como obter o tamanho de um arquivo em bytes usando o método length() da classe File do JavaQuantidade de visualizações: 173 vezes |
A classe File, do pacote java.io da linguagem Java, nos fornece o método length(), que retorna o tamanho de um arquivo em byes. O retorno é do tipo long. Veja como podemos usá-lo no código abaixo: package arquivodecodigos; import java.io.*; public class Estudos{ public static void main(String[] args){ File arquivo = new File("c:\\estudos_java\\lago.jpg"); // Obtém o tamanho do arquivo em bytes long tam = arquivo.length(); System.out.println("Tamanho do arquivo em bytes: " + tam); } } Ao executar este código nós teremos o seguinte resultado: Tamanho do arquivo em bytes: 143060 |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - JavaScript para iniciantes - Como converter uma string em um valor numérico usando o método Number() do JavaScript C# - Como ordenar alfabeticamente os itens de uma ListBox do C# Windows Forms usando a propriedade Sorted Android Java - Como detectar um clique em um botão do Android usando o evento onClick no XML de layout Python - Como calcular o coeficiente angular de uma reta em Python 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 |