Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando Java - Geometria Analítica e Álgebra Linear usando JavaQuantidade de visualizações: 2839 vezes |
|
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0). Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2: \[\vec{v} = \left(7, 6\right)\] Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D: ![]() Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9. Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6). Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras: \[a^2 = b^2 + c^2\] Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira: \[a = \sqrt{b^2 + c^2}\] Passando para os valores x e y que já temos: \[a = \sqrt{7^2 + 6^2}\] Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final: \[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\] E aqui está o código Java que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:
package arquivodecodigos;
import java.util.Scanner;
public class Estudos{
public static void main(String args[]){
Scanner entrada = new Scanner(System.in);
// vamos ler os valores x e y
System.out.print("Informe o valor de x: ");
double x = Double.parseDouble(entrada.nextLine());
System.out.print("Informe o valor de y: ");
double y = Double.parseDouble(entrada.nextLine());
// vamos calcular a norma do vetor
double norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
// mostra o resultado
System.out.println("A norma do vetor é: " + norma);
}
}
Ao executar este código nós teremos o seguinte resultado: Informe o valor de x: 7 Informe o valor de y: 6 A norma do vetor é: 9.219544457292887 Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo. |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular os esforços solicitantes majorados em pilares usando Python - Python para Engenharia CivilQuantidade de visualizações: 706 vezes |
![]() Quando estamos dimensionando pilares em concreto armado em geral, a primeira coisa que devemos fazer é calcular os esforços solicitantes, ou seja, as cargas que estão chegando ao pilar. No caso dos pilares intermediários, ou seja, pilares que residem fora dos cantos e extremidades da estrutura e que, por isso, recebem a carga em seu centro geométrico, considera-se a compressão centrada. Dessa forma, chamamos de Nk o somatório de todas as cargas verticais atuantes na estrutura e podemos desprezar as excentricidades de 1ª ordem. De acordo com a NBR 6118 (ABNT, 2014), para a situação de projeto, essa força normal Nk deve ser majorada pelos coeficientes γn e γf, resultando em uma força normal de projeto chamada Nd. O coeficiente γn deve majorar os esforços solicitantes finais de cálculo de acordo com a menor dimensão do pilar. A norma diz que a menor dimensão que um pilar pode ter é 19cm, mas, em alguns casos, podemos ter a menor dimensão de até 14cm, precisando, para isso, majorar os esforços solicitantes. Nos comentários do código Python eu mostro como esse cálculo é feito, de acordo com a NBR 6118 (ABNT, 2014), é claro. O coeficiente γf, na maioria dos casos, possui o valor 1,4 e entra no cálculo para converter a força normal Nk em força normal de projeto Nd. A fórmula para o cálculo dos esforços solicitantes majorados em pilares intermediários é: \[ Nd = \gamma n \cdot \gamma f \cdot Nk \] Onde: γn majora os esforços de acordo com a menor dimensão do pilar de acordo com a NBR 6118 (ABNT, 2014). γf em geral possui o valor 1.4 para majorar os esforços em estruturas de concreto armado. Nk é a força normal característica aplicada ao pilar, em kN. Nd é a força normal de projeto, em kN. Vamos então ao código Python, que solicitará ao usuário os valores de suas dimensões hx e hy (em centímetros) e a carga, ou seja, a força normal característica chegando no pilar em kN e vamos mostrar a força normal de projeto Nd:
# método principal
def main():
# vamos pedir as dimensões do pilar
hx = float(input("Informe a dimensão do pilar na direção x (em cm): "))
hy = float(input("Informe a dimensão do pilar na direção y (em cm): "))
# vamos pedir a carga total no pilar em kN
Nk = float(input("Informe a carga total no pilar (em kN): "))
# vamos obter o menor lado do pilar (menor dimensão da seção transversal)
if (hx < hy):
b = hx
else:
b = hy
# agora vamos calcular a área do pilar em centímetros quadrados
area = hx * hy
# a área está de acordo com a norma NBR 6118 (ABNT, 2014)
if (area < 360):
print("A área do pilar não pode ser inferior a 360cm2")
return
# vamos calcular a força normal de projeto Nd
yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1
yf = 1.4 # regra geral para concreto armado
Nd = yn * yf * Nk
# e mostramos os resultados
print("\nA área do pilar é: {0} cm2".format(round(area, 2)))
print("A menor dimensão do pilar é: {0} cm".format(round(b, 2)))
print("O valor do coeficiente yn é: {0}".format(round(yn, 2)))
print("A força normal de projeto Nd é: {0} kN".format(round(Nd, 2)))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a dimensão do pilar na direção x (em cm): 40 Informe a dimensão do pilar na direção y (em cm): 19 Informe a carga total no pilar (em kN): 841.35 A área do pilar é: 760.0 cm2 A menor dimensão do pilar é: 19.0 cm O valor do coeficiente yn é: 1.0 A força normal de projeto Nd é: 1177.89 kN |
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: 13999 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. |
GoLang ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em GoLang dados dois pontos pertencentes à retaQuantidade de visualizações: 1221 vezes |
|
Nesta dica de Go veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código GoLang completo para esta tarefa:
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
// variáveis que vamos usar na resolução do problema
var x1, y1, x2, y2, m, n float32
var sinal string
// vamos ler as coordenadas do primeiro ponto
fmt.Print("Coordenada x do primeiro ponto: ")
fmt.Scanln(&x1)
fmt.Print("Coordenada y do primeiro ponto: ")
fmt.Scanln(&y1)
// vamos ler as coordenadas do segundo ponto
fmt.Print("Coordenada x do segundo ponto: ")
fmt.Scanln(&x2)
fmt.Print("Coordenada y do segundo ponto: ")
fmt.Scanln(&y2)
sinal = "+"
// vamos calcular o coeficiente angular da reta
m = (y2 - y1) / (x2 - x1)
// vamos calcular o coeficiente linear
n = y1 - (m * x1)
// coeficiente linear menor que zero? O sinal será negativo
if n < 0 {
sinal = "-"
n = n * -1
}
// mostra a equação reduzida da reta
fmt.Printf("Equação reduzida: y = %.2fx %s %.2f",
m, sinal, n);
}
Ao executar este código GoLang nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como adicionar um método isPar() ao objeto Number do JavaScript que indicará se um número é par ou impar Delphi - Como usar o evento OnDrawCell para controlar o desenho das células em um TStringGrid do Delphi |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como calcular o seno de um número ou ângulo em JavaScript usando a função sin() do objeto Math Python - Exercícios Resolvidos de Python - Como testar se um número é potência de dois usando Python Python - Como definir o texto de um wx.Button do wxPython em tempo de execução usando a função SetLabel() JavaScript - Como retornar apenas os três primeiros elementos de um array em JavaScript usando a função slice() do objeto Array |
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 |









