![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Você está aqui: Teste de Conhecimento em Engenharia Civil - Estruturas de Aço e Madeira |
|
![]() |
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como centralizar os títulos das colunas (ou o conteúdo de qualquer célula) de um TStringGrid do DelphiQuantidade de visualizações: 13806 vezes |
Em algumas situações nós precisamos centralizar os títulos das colunas de um TStringGrid. Em geral os títulos das colunas são exibidos nas células da primeira linha fixa do TStringGrid. Nesta dica eu mostrarei a forma mais comum de alcançar este efeito. Note que a técnica pode ser usada para centraliar o conteúdo de qualquer célula da grid: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var conteudo: String; alinhamento_anterior: Word; begin // vamos centralizar os títulos das colunas, ou seja, o conteúdo // das células na primeira linha if ARow = 0 then begin // vamos obter o conteúdo da célula conteudo := (Sender as TStringGrid).Cells[ACol, ARow]; // vamos obter o alinhamento atual alinhamento_anterior := SetTextAlign((Sender as TStringGrid).Canvas.Handle, TA_CENTER); // vamos colocar o conteúdo de volta na célula (Sender as TStringGrid).Canvas.TextRect(Rect, Rect.Left + (Rect.Right - Rect.Left) div 2, Rect.Top + 5, conteudo); // vamos voltar o alinhamento anterior para as demais células SetTextAlign((Sender as TStringGrid).Canvas.Handle, alinhamento_anterior); end; end; Aqui nós temos duas chamadas à função SetTextAlign() da API do Windows. Na primeira vez nós obtemos o alinhamento atual e definimos o novo alinhamento como TA_CENTER. Na segunda chamada nós voltamos o alinhamento anterior. Se não fizermos este procedimento, todas as demais células da grid terão seus conteúdos também alinhados ao centro. |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se uma matriz é simétrica em JavaQuantidade de visualizações: 1127 vezes |
Uma matriz simétrica é uma matriz que é igual à sua transposta. Para que esta definição faça sentido, apenas podemos considerar matrizes que são quadradas, ou seja, mesma quantidade de linhas e colunas. De forma mais precisa, se A=[aij] é uma matriz de ordem n x n, nós dizemos que A é simétrica quando A=At. Veja um código Java completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz simétrica: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ int n = 3; // ordem da matriz quadrada int matriz[][] = new int[n][n]; // matriz quadrada // para efetuar a leitura do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar os elementos da matriz for (int i = 0; i < n; i++){ for (int j = 0; j < n; j++) { System.out.print("Elemento na linha " + (i + 1) + " e coluna " + (j + 1) + ": "); matriz[i][j] = Integer.parseInt(entrada.nextLine()); } } // agora verificamos se a matriz é simétrica boolean simetrica = true; for (int i = 0; (i < n) && (simetrica); i++) { for (int j = 0; (j < i) && (simetrica); j++) { // os elementos em posicoes simetricas sao iguais? if (matriz[i][j] != matriz[j][i]){ simetrica = false; } } } // agora mostramos a matriz lida System.out.printf("\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%d ", matriz[i][j]); } System.out.printf("\n"); } if (simetrica){ System.out.printf("\nA matriz informada é uma matriz simétrica.\n"); } else{ System.out.printf("\nA matriz informada não é uma matriz simétrica.\n"); } } } Ao executar este código Java nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 5 Elemento na linha 1 e coluna 2: 1 Elemento na linha 1 e coluna 3: 2 Elemento na linha 2 e coluna 1: 1 Elemento na linha 2 e coluna 2: 6 Elemento na linha 2 e coluna 3: 3 Elemento na linha 3 e coluna 1: 2 Elemento na linha 3 e coluna 2: 3 Elemento na linha 3 e coluna 3: 8 5 1 2 1 6 3 2 3 8 A matriz informada é uma matriz simétrica. |
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular o determinante de uma matriz 3x3 usando a Método de Sarrus em Python - Python para Álgebra LinearQuantidade de visualizações: 5650 vezes |
Os estudos da Geometria Analítica e Álgebra Linear envolvem, em boa parte de seus cálculos, a magnitude de vetores, ou seja, o módulo, tamanho, comprimento ou intensidade dos vetores. E isso não é diferente em relação às matrizes. Quando uma matriz é envolvida nos cálculos, com muita frequência precisamos obter o seu determinante, que nada mais é que um número real associado à todas as matrizes quadradas. Nesta dica mostrarei como obter o determinante de uma matriz quadrada de ordem 3, ou seja, três linhas e três colunas, usando o Método de Sarrus (somente matrizes 3x3). Note que é possível obter o mesmo resultado com o Teorema de Laplace, que não está restrito às matrizes quadradas de ordem 3. Veja também que não considerei as propriedades do determinante, o que, em alguns casos, simplifica muito os cálculos. Então, vamos supor a seguinte matriz 3x3: ![]() O primeiro passo é copiarmos a primeira e a segunda colunas para o lado direito da matriz. Assim: ![]() Agora dividimos a matriz em dois conjuntos: três linhas diagonais descendentes e três linhas diagonais ascendentes: ![]() Agora é só efetuar cálculos. Multiplicamos e somamos os elementos de cada conjunto, subtraindo o segundo conjunto do primeiro. Veja: (1 x 5 x 9 + 2 x 6 x 7 + 3 x 4 x 8) - (7 x 5 x 3 + 8 x 6 x 1 + 9 x 4 x 2) = 0 Como podemos ver, o determinante dessa matriz é 0. E agora veja o código Python no qual declaramos e instanciamos uma matriz 3x3, em seguida, calculamos o seu determinante: # importamos a bibliteca NumPy import numpy as np # função principal do programa def main(): # vamos criar uma matriz 3x3 m = np.array([(1, 2, 3), (2, 5, 2), (1, 3, 1)]) # calcula o determinante usando a Regra de Sarrus det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1] * m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1])) - ((m[2][0] * m[1][1] * m[0][2]) + (m[2][1] * m[1][2] * m[0][0]) + (m[2][2] * m[1][0] * m[0][1])) # mostramos o resultado print("O determinante da matriz é: %f" % det) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O determinante da matriz é: 2.0 É possível também obter o determinante de uma matriz (não restrita à dimensão 3x3) usando o método linalg.det() da biblioteca NumPy do Python. Veja o código a seguir: # importamos a bibliteca NumPy import numpy as np # função principal do programa def main(): # vamos criar uma matriz 3x3 m = np.array([(1, 2, 3), (2, 5, 2), (1, 3, 1)]) # calcula o determinante usando apenas NumPy det = np.linalg.det(m) # mostramos o resultado print("O determinante da matriz é: %f" % det) if __name__== "__main__": main() Veja que usei a mesma matriz e, usando apenas o método linalg.det() nós obtemos o mesmo resultado. |
JavaScript ::: Dicas & Truques ::: Formulários |
Formulários HTML - Como marcar ou desmarcar todas as checkboxes de um formulário HTML de uma só vez usando JavaScriptQuantidade de visualizações: 18665 vezes |
Nesta dica mostrarei como é possível clicar em um botão (pode ser um link também) e chamar uma função JavaScript que marca ou desmarca todos os elementos HTML checkbox de uma só vez. Para isso usaremos o método getElementsByName() para retornar todas as checkbox e em seguida manipular sua propriedade checked. Veja a imagem abaixo: ![]() E agora o código HTML e JavaScript completo: <html> <head> <title>Estudando JavaScript</title> </head> <body> <form name="teste"> <input type="checkbox" name="linguagem">Java <input type="checkbox" name="linguagem">Delphi <input type="checkbox" name="linguagem">C++ </form> <a href="javascript:marcar()">Marcar Todas</a> | <a href="javascript:desmarcar()">Desmarcar Todas</a> <script language="JavaScript"> function marcar(){ var boxes = document.getElementsByName("linguagem"); for(var i = 0; i < boxes.length; i++) boxes[i].checked = true; } function desmarcar(){ var boxes = document.getElementsByName("linguagem"); for(var i = 0; i < boxes.length; i++) boxes[i].checked = false; } </script> </body> </html> |
Java ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Como usar o operador de bits & (E/AND sobre bits) em Java - Java Avançado - Manipulação de bits em JavaQuantidade de visualizações: 6763 vezes |
Esta dica de Java é muito útil para quem está se preparando para entrevistas de código ou desafios de programação. A manipulação de bits é fator importante para testar as habilidades de candidatos a vagas de programador, pois ela demonstra um conhecimento muito aprofundado de lógica de programação e também de rotinas de baixo nível. O operador de bits & (E/AND sobre bits) da linguagem Java é usado quando queremos comparar os bits individuais de dois valores integrais (inteiros) e produzir um terceiro resultado. Os bits no resultado serão configurados como 1 se os bits correspondentes nos dois outros valores foram 1. Em caso contrário os bits são configurados como 0. Vamos analisar os seguintes valores binários: a) 0101 (5 decimal) b) 0100 (4 decimal) Quando aplicamos o operador & nestes dois valores teremos o seguinte resultado: 0101 0100 ---- 0100 Veja que o resultado é 0100, uma vez que apenas o segundo bit de cada valor está configurado como 1. Vamos ver isso em Java agora. Observe o seguinte trecho de código: public class Main { public static void main(String[] args) { int a = 5; int b = 4; int c = a & b; // exibe o resultado (em inteiro e em bytes) System.out.println("a = " + obterBits(a) + " (" + a + ")"); System.out.println("b = " + obterBits(b) + " (" + b + ")"); System.out.println("a & b = " + obterBits(c) + " (" + c + ")"); } // método auxiliar que converte um inteiro em sua representação em bits public static String obterBits(int valor){ int mascara = 1 << 31; StringBuffer buffer = new StringBuffer(35); for(int i = 1; i <= 32; i++){ if((valor & mascara) == 0){ buffer.append('0'); } else{ buffer.append('1'); } valor <<= 1; if(i % 8 == 0){ buffer.append(' '); } } return buffer.toString(); } } Ao executar este código teremos o seguinte resultado: a = 00000000 00000000 00000000 00000101 (5) b = 00000000 00000000 00000000 00000100 (4) a & b = 00000000 00000000 00000000 00000100 (4) |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Java - Como definir a cor para o contexto de desenho usando o método setColor() da classe Graphics do Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |