![]() |
|||||
|
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como retornar a hora em JavaScript usando a função getHours() do objeto DateQuantidade de visualizações: 7366 vezes |
Em várias situações nós precisamos obter as horas a partir de um objeto Date do JavaScript. Para isso nós podemos efetuar uma chamada à sua função getHours(), que retorna um valor que vai de 0 até 23. Veja o código completo para o exemplo: <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> var data = new Date(); var hora = data.getHours(); document.write("O valor da hora é: " + hora); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: O valor da hora é: 14 |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como colorir as células de uma JTable individualmente ao passar o mouse sobre elasQuantidade de visualizações: 161 vezes |
Nesta dica eu mostro como é possível aplicar uma cor diferente às células individuais de uma JTable ao passar o mouse em cima delas. O efeito visual é muito interessante, principalmente quando temos uma JTable com muitos dados. No exemplo eu construí a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual. É um ótimo exercício para realmente entender as partes que compoem uma aplicação Java Swing. Veja o código Java completo: import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; import javax.swing.event.*; public class Estudos extends JFrame{ int linha, coluna; public Estudos(){ super("JTable"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); class CellListener extends MouseMotionAdapter{ public void mouseMoved(MouseEvent e){ JTable tb = (JTable)e.getSource(); linha = tb.rowAtPoint(e.getPoint()); coluna = tb.columnAtPoint(e.getPoint()); tb.repaint(); } } class ColorirCelula extends JLabel implements TableCellRenderer{ public ColorirCelula(){ setOpaque(true); } public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ if(row == linha && column == coluna){ this.setBackground(Color.yellow); } else{ this.setBackground(table.getBackground()); } this.setText(value.toString()); return this; } } Container c = getContentPane(); c.setLayout(new FlowLayout()); tabela.addMouseMotionListener(new CellListener()); tabela.setDefaultRenderer(Object.class, new ColorirCelula()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executarmos esta aplicação Java Swing nós teremos o seguinte resultado: ![]() |
Revit C# ::: Dicas & Truques ::: Eixos - Grids |
Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# APIQuantidade de visualizações: 386 vezes |
Os eixos, ou grids, são linhas que auxiliam na construção de um projeto, ou seja, uma espécie de malha de linhas. Eles são mais utilizados quando se trabalha com elementos estruturais, para a locação de colunas e pilares. No Revit, os eixos podem ser verticais, horizontais, inclinados e até em forma de arcos. Para criá-los, vá na aba Arquitetura, seção Dados e localize o item Eixo (ou digite GR). Via programação nós podemos criar um eixo no Revit usando a função Create() da classe Grid da Revit C# API. Neste exemplo mostrarei, em detalhes, como isso pode ser feito. O primeiro passo é obter uma referência ao documento UI atual usando this.ActiveUIDocument. Após isso acessar o documento usando uidoc.Document. As coordenadas geométricas de início e fim do eixo são criadas como objetos da classe XYZ. Então, de posse das coordenadas, nós criamos um objeto Line usando a função Line.CreateBound(). Para finalizar nós usamos a função Grid.Create() para desenhar o eixo na área de desenho do Revit. Note como passamos o objeto Line e uma referência ao documento atual para esta função. Veja ainda o uso de uma Transaction para abrir uma transação do Revit, criar o elemento e fechá-la em seguida. Este exemplo criará um eixo com o LevelId -1, ou seja, no primeiro nível do documento. Em outras dicas dessa seção eu mostro como definir o nível para o grid recém-criado. Veja o código Revit C# API completo para o exemplo: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Autodesk.Revit.DB; using Autodesk.Revit.DB.Architecture; using Autodesk.Revit.DB.Structure; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; namespace Estudos { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes. TransactionMode.Manual)] [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")] public partial class ThisApplication { private void Module_Startup(object sender, EventArgs e) { // primeiro obtemos uma referência ao documento atual UIDocument uidoc = this.ActiveUIDocument; Document doc = uidoc.Document; // criamos a linha geométrica para posicionar o eixo // não se esqueça de converter metros para pés XYZ inicio = new XYZ(0, -100, 0); XYZ final = new XYZ(0, 100, 0); // construímos a linha Line linhaGeometrica = Line.CreateBound(inicio, final); // iniciamos uma nova transação using(Transaction t= new Transaction(doc)) { t.Start("Criar um novo Grid"); // e criamos o novo eixo Grid eixo = Grid.Create(doc, linhaGeometrica); t.Commit(); // e mostramos o resultado TaskDialog.Show("Aviso", "O novo eixo foi criado com o ID: " + eixo.Id); } } private void Module_Shutdown(object sender, EventArgs e) { // para fazer alguma limpeza de memória ou algo assim } #region Revit Macros generated code private void InternalStartup() { this.Startup += new System.EventHandler(Module_Startup); this.Shutdown += new System.EventHandler(Module_Shutdown); } #endregion } } Ao executar este código Revit C# API teremos o seguinte resultado: O novo eixo foi criado com o ID: 49827 |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como repetir uma string ou caractere um número determinado de vezes em PHP usando a função str_repeat()Quantidade de visualizações: 283 vezes |
Em algumas situações nós gostaríamos de repetir uma letra, palavra, frase ou texto um determinado número de vezes. Em PHP isso pode ser feito por meio do uso da função str_repeat(). Esta função recebe a string e um valor inteiro, indicando a quantidade de vezes que a string será repetida. Veja um exemplo de seu uso: <?php $string = "*"; echo "Resultado: " . str_repeat($string, 5); ?> Ao executarmos este código PHP nós teremos o seguinte resultado: Resultado: ***** |
VisuAlg ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em VisuAlg - Como efetuar cálculos de porcentagem em VisuAlgQuantidade de visualizações: 2640 vezes |
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em VisuAlg. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em VisuAlg: algoritmo "Algoritmo que calcula porcentagem" var // variáveis usadas na resolução do problema valor, percentual, valor_final: real inicio valor <- 178.00 // valor original percentual <- 15.0 / 100.0 // 15% valor_final <- valor + (percentual * valor) // mostra o resultado escreva("O valor final do produto é: ", valor_final) // O resultado será 204,70 fimalgoritmo Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em VisuAlg: algoritmo "Algoritmo que calcula porcentagem" var // variáveis usadas na resolução do problema valor, percentual, valor_final: real inicio valor <- 250.00; // valor original percentual <- 8.0 / 100.0 // 8% valor_final <- valor - (percentual * valor) // mostra o resultado escreva("O valor final do produto é: ", valor_final) // O resultado será 230,00 fimalgoritmo Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em VisuAlg: algoritmo "Algoritmo que calcula porcentagem" var // variáveis usadas na resolução do problema perguntas, acertos: real inicio perguntas <- 90.0 acertos <- 72.0 // mostra a porcentagem de acertos escreva("Porcentagem de acertos: ") escreval(((acertos / perguntas) * 100), "%") // mostra a porcentagem de erros escreva("Porcentagem de erros: ") escreval((((perguntas - acertos) / perguntas) * 100), "%") // Os resultados serão 80% e 20% fimalgoritmo Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em VisuAlg: algoritmo "Algoritmo que calcula porcentagem" var // variáveis usadas na resolução do problema valor_anterior, novo_valor, porcentagem_lucro: real inicio valor_anterior <- 300.0 // valor anterior novo_valor <- 340.0 // valor novo // calcula a porcentagem de lucro // efetua o cálculo porcentagem_lucro <- ((novo_valor * 100) / valor_anterior) - 100 escreva("A porcentagem de lucro foi de: ", porcentagem_lucro, "%") // O resultado será 13,33 fimalgoritmo Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em VisuAlg: algoritmo "Algoritmo que calcula porcentagem" var // variáveis usadas na resolução do problema valor, percentual, comissao: real inicio valor <- 70.0 // valor do produto percentual <- 5.0 / 100.0 // 5% // calcula a comissão comissao <- percentual * valor // mostra o resultado escreva("O valor repassado ao vendedor é: ", comissao) // O resultado será 3,5 fimalgoritmo |
Delphi ::: dbExpress ::: TSQLDataSet |
Como obter a quantidade de campos nos registros retornados em um TSQLDataSet do Delphi usando a propriedade FieldCountQuantidade de visualizações: 11066 vezes |
Em algumas situações precisamos saber a quantidade de campos retornados em um objeto TSQLDataSet depois de dispararmos o comando SQL SELECT definido em sua propriedade CommandText. Para isso podemos usar a propriedade FieldCount. Veja sua assinatura: property FieldCount: Integer; Esta propriedade é definida originalmente em TDataSet e herdada pela classe TSQLDataSet. Veja um trecho de código no qual disparamos um comando SQL SELECT em uma tabela contatos e exibimos a quantidade de campos dos registros retornados: procedure TForm3.Button1Click(Sender: TObject); begin // vamos definir o comando SQL a ser executado SQLDataSet1.CommandText := 'SELECT * FROM contatos'; // vamos executar o comando SQLDataSet1.Open; // vamos obter a quantidade de registros retornados ShowMessage('Quantidade de campos retornados: ' + IntToStr(SQLDataSet1.FieldCount)); end; Ao executarmos este trecho de código teremos uma mensagem com o seguinte texto: Quantidade de campos retornados: 5. Note que a propriedade FieldCount inclui somente os campos listados na propriedade Fields. Quaisquer campos agregados listados pela propriedade AggFields não são incluídos na contagem. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Física - Mecânica - Leis de Newton |
Exercícios Resolvidos de Física usando Python - Aplica-se uma força de 20 N a um corpo de massa m. O corpo desloca-se em linha reta com velocidade que aumentaQuantidade de visualizações: 1866 vezes |
Pergunta/Tarefa: (UFRGS - 2017) Aplica-se uma força de 20 N a um corpo de massa m. O corpo desloca-se em linha reta com velocidade que aumenta 10 m/s a cada 2 s. Qual o valor, em kg, da massa m? a) 5. b) 4. c) 3. d) 2. e) 1. Resposta/Solução: Este é um clássico problema de Física envolvendo a Segunda Lei de Newton, cuja fórmula, em sua forma mais simples é: \[F = m \cdot a \] Olhando para o enunciado, vimos que nos é pedido a massa em kg. Nós já temos a força de 20 N, já convertida para sua medida no SI. No entanto, em vez da aceleração, o problema nos dá a variação da velocidade, que aumenta 10 m/s a cada 2 s. Assim, só precisamos nos lembrar que a aceleração é igual ao valor da variação da velocidade dividido pelo intervalo de tempo. Veja o código Python completo que pede para o usuário informar a força em newtons, a variação da velocidade em metros por segundo e a variação do tempo em segundos e nos retorna a massa em quilos: # função principal do programa def main(): # vamos pedir para o usuário informar a força em newtons forca = float(input("Força em newtons: ")) # vamos pedir a variação da velocidade em metros por segundo velocidade = float(input("Variação da velocidade em metros por segundo: ")) # vamos pedir a variação do tempo em segundos tempo = float(input("Variação do tempo em segundos: ")) # agora calculamos a acelaração aceleracao = velocidade / tempo # agora que já temos a aceleracao, podemos calcular a massa massa = forca / aceleracao # e mostramos o resultado print("A massa em quilos é: {0}".format(massa)) if __name__== "__main__": main() Ao executarmos o código Python para o exercício nós teremos o seguinte resultado: Força em newtons: 20 Variação da velocidade em metros por segundo: 10 Variação do tempo em segundos: 2 A massa em quilos é: 4.0 Assim, a resposta correta é a letra b (4 kg) |
PHP ::: PHP + MySQL ::: MySQL Improved Extension (mysqli) |
Como estabelecer uma conexão PHP + MySQL no modo procedimental - Como se conectar ao banco MySQL usando PHP (modo procedural) usando mysqli_connect - Revisado)Quantidade de visualizações: 7282 vezes |
Nesta dica mostrarei como usar a função mysqli_connect da extensão mysqli para efetuar uma conexão PHP + MySQL usando o modo precedimental, ou seja, nada de programação orientada aqui, mas em outras dicas dessa seção você encontrará a forma de conexão orientada a objetos. Veja um trecho de código completo no qual nos conectamos ao banco de dados MySQL e exibimos uma mensagem indicando o sucesso da operação: <? // vamos efetuar a conexão com o banco $conexao = mysqli_connect("localhost", "root", "osmar1234", "estudos"); // conexão efetuada com sucesso? if(mysqli_connect_errno()) { echo "Não foi possível efetuar a conexão com o MySQL: " . mysqli_connect_error(); // vamos sair daqui exit(); } else{ echo "Conexão efetuada com sucesso."; // fecha a conexão mysqli_close($conexao); } ?> Este trecho de código foi revisado e testado no PHP 8. |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de C# - Escreva um programa (algorítmo) C# que usa o laço do...while para ler um número indeterminado de idades. A condição de parada do laço é o valor da idade igual a 0Quantidade de visualizações: 2145 vezes |
Pergunta/Tarefa: Escreva um programa (algorítmo) C# que usa o laço do...while para ler um número indeterminado de idades de algumas pessoas. A condição de parada do laço é o valor da idade igual a 0. Calcule a escreva a idade média deste grupo de pessoas. Sua saída deverá ser parecida com: Informe a idade: 19 Informe a idade: 30 Informe a idade: 21 Informe a idade: 45 Informe a idade: 0 A idade média é: 28,75 Veja a resolução comentada deste exercício usando C# console: using System; namespace Estudos { class Program { static void Main(string[] args) { int idade; // guarda a idade lida de cada indivíduo double idade_media; // a idade média calculada int soma = 0; // a soma das idades de cada indivíduo int contador = 0; // conta as idades lidas // laço do...while que repetirá até que o valor da idade seja 0 do { Console.Write("Informe a idade: "); idade = int.Parse(Console.ReadLine()); // a idade lida é diferente de 0? if (idade != 0) { soma = soma + idade; // soma mais esta idade contador++; // aumenta a quantidade de idades lidas } } while (idade != 0); // calcula a idade média // note que forcei contador para o tipo double antes da divisão // isso faz com que o resultado seja do tipo double idade_media = soma / (contador * 1.0); // finalmente mostramos o resultado Console.WriteLine("A idade média é: " + idade_media); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
JavaScript ::: W3C DOM - (Wide Web Consortium) Document Object Model ::: Navegação e Pesquisa de Nós (Nodes) |
Como retornar uma coleção de nós filhos de um elemento HTML usando a propriedade childNodes do DOM do JavaScriptQuantidade de visualizações: 13059 vezes |
Em algumas situações temos um elemento HTML (um elemento DIV, por exemplo) e gostaríamos de retornar uma coleção contendo seus elementos filhos. Para isso podemos usar a coleção childNodes, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1. A coleção childNodes contém todos os descendentes diretos de um determinado elemento HTML, incluindo os nós textos (text nodes) e comentários (comment nodes). Além disso, a ordem dos elementos retornados é aquela definida no código-fonte do documento HTML. Veja uma página HTML contendo um elemento DIV e, dentro deste, um parágrafo, um link e um elemento SPAN. Note como usamos a propriedade childNodes no elemento DIV para retornar seus três elementos filhos diretos (note que as quebras de linhas e o elemento BR também serão retornados): <html> <head> <title>Estudos JavaScript</title> <script type="text/javascript"> function obterNosFilhos(){ // vamos obter uma referência ao elemento div com o id "container" var pai = document.getElementById("container"); // vamos obter a coleção de elementos filhos var filhos = pai.childNodes; // vamos obter a quantidade de elementos filhos deste elemento window.alert("O elemento div contém " + filhos.length + " elementos filhos."); // vamos percorrer todos os elementos for(var i = 0; i < filhos.length; i++){ var filho = filhos[i]; // este filho é um nó texto? if(filho.nodeType == 3){ window.alert("O " + (i + 1) + "º filho é um nó texto. " + "Seu conteúdo é: " + filho.data); } // este filho é um nó elemento? else if(filho.nodeType == 1){ window.alert("O " + (i + 1) + "º filho é um nó elemento. " + "Seu conteúdo é: " + filho.innerHTML); } } } </script> </head> <body> <div id="container"> <p>Sou um parágrafo</p> <a href="http://www.google.com">Sou um link</a><br> <span>E eu sou um elemento span</span> </div> <br> <button onclick="obterNosFilhos()">Obter nós filhos do elemento div</button> </body> </html> Ao executarmos este código JavaScript nós teremos o seguinte resultado: O elemento div contém 8 elementos filhos. O 1º filho é um nó texto. Seu conteúdo é: O 2º filho é um nó elemento. Seu conteúdo é: Sou um parágrafo O 3º filho é um nó texto. Seu conteúdo é: O 4º filho é um nó elemento. Seu conteúdo é: Sou um link O 5º filho é um nó elemento. Seu conteúdo é: O 6º filho é um nó texto. Seu conteúdo é: O 7º filho é um nó elemento. Seu conteúdo é: E eu sou um elemento span O 8º filho é um nó texto. Seu conteúdo é: Ao executar este exemplo você perceberá que a quantidade de elementos filhos no IE é diferente daquela relatada pelo Firefox. Isso acontece devido à forma que os dois browsers tratam quebras de linhas e espaços. Tenha a certeza de usar a propriedade nodeType para identificar o tipo de elemento filho sendo retornado. A coleção childNodes pode ser chamada a partir dos seguintes elementos: a, abbr, acronym, address, applet, b, bdo, big, blink, blockquote, body, button, caption, center, cite, code, col, colgroup, dd, del, dfn, dir, div, dl, dt, em, fieldset, font, form, frameset, h1, h2, h3, h4, h5, h6, head, html, i, img, ins, kbd, keygen, label, legend, li, listing, map, marquee, menu, nobr, noframes, noscript, object, ol, optgroup, option, p, plaintext, pre, q, rt, ruby, s, samp, select, small, span, strike, strong, sub, sup, table, tbody, td, textarea, tfoot, th, thead, tr, tt, u, ul, var, xml e xmp. Esta dica foi escrita e testada no Google Chrome 127.0.6533.122 (Versão oficial) 64 bits. |
Nossas 20 dicas & truques de programação mais populares |
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 |