![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
GNU Octave ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em GNU Octave dados dois pontos no plano cartesianoQuantidade de visualizações: 1819 vezes |
|
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: ![]() Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem GNU Octave (script GNU Octave) que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:
# x e y do primeiro ponto
x1 = input("Coordenada x do primeiro ponto: ")
y1 = input("Coordenada y do primeiro ponto: ")
# x e y do segundo ponto
x2 = input("Coordenada x do segundo ponto: ")
y2 = input("Coordenada y do segundo ponto: ")
# agora vamos calcular o coeficiente angular
m = (y2 - y1) / (x2 - x1)
# mostramos o resultado
fprintf("O coeficiente angular é: %f\n\n", m)
Ao executar este código em linguagem GNU Octave nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 3 x1 = 3 Coordenada y do primeiro ponto: 6 y1 = 6 Coordenada x do segundo ponto: 9 x2 = 9 Coordenada y do segundo ponto: 10 y2 = 10 m = 0.6667 O coeficiente angular é: 0.666667 Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):
# x e y do primeiro ponto
x1 = input("Coordenada x do primeiro ponto: ")
y1 = input("Coordenada y do primeiro ponto: ")
# x e y do segundo ponto
x2 = input("Coordenada x do segundo ponto: ")
y2 = input("Coordenada y do segundo ponto: ")
# vamos obter o comprimento do cateto oposto
cateto_oposto = y2 - y1
# e agora o cateto adjascente
cateto_adjascente = x2 - x1
# vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
# (em radianos, não se esqueça)
tetha = atan2(cateto_oposto, cateto_adjascente)
# e finalmente usamos a tangente desse ângulo para calcular
# o coeficiente angular
tangente = tan(tetha)
# mostramos o resultado
fprintf("O coeficiente angular é: %f\n\n", tangente)
Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em Python - Como calcular Bhaskara em PythonQuantidade de visualizações: 2965 vezes |
|
Como resolver uma equação do 2º grau usando Python Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem Python. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso código Python vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código Python. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:
# importamos a bibliteca Math
import math
def main():
# vamos pedir para o usuário informar os valores dos coeficientes
a = float(input("Valor do coeficiente a: "))
b = float(input("Valor do coeficiente b: "))
c = float(input("Valor do coeficiente c: "))
# vamos calcular o discriminante
discriminante = (b * b) - (4 * a * c)
# a equação possui duas soluções reais?
if(discriminante > 0):
raiz1 = (-b + math.sqrt(discriminante)) / (2 * a)
raiz2 = (-b - math.sqrt(discriminante)) / (2 * a)
print("Existem duas raizes: x1 = {0} e x2 = {1}".format(raiz1, raiz2))
# a equação possui uma única solução real?
elif(discriminante == 0):
raiz1 = raiz2 = -b / (2 * a)
print("Existem duas raizes iguais: x1 = {0} e x2 = {1}".format(raiz1, raiz2))
# a equação não possui solução real?
elif(discriminante < 0):
raiz1 = raiz2 = -b / (2 * a)
imaginaria = math.sqrt(-discriminante) / (2 * a)
print("Existem duas raízes complexas: x1 = {0} + {1} e x2 = {2} - {3}".format(
raiz1, imaginaria, raiz2, imaginaria))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1.0 e x2 = -3.0 |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Tenha cuidado com os limites dos índices de um vetor ou matriz na linguagem CQuantidade de visualizações: 10347 vezes |
|
Um erro muito comum em programas C ocorre quando não atentamos para os limites dos índices de um vetor ou matriz. Como sabemos, os índices iniciam em 0 e vão até o tamanho do vetor menos 1. Porém, ao contrário de outras linguagens, o C (compiladores sendo usados em 2007 e 2008) não evita que este limite seja ultrapassado. O resultado disso é que o programa acaba lendo posições de memória inexistentes ou pertecentes a outros programas. Veja um trecho de código no qual acessamos uma posição inválida no vetor valores. Este código foi testado no MinGW 3.4.2 e compilou e executou sem qualquer mensagem de advertência.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// array com 5 inteiros
int valores[] = {23, 6, 45, 9, 3};
// acessa um índice além dos limites do array
// lembre-se de que os índices iniciam em 0
int valor = valores[5];
// exibe o resultado
printf("%d\n\n", valor);
system("PAUSE");
return 0;
}
Ao executar este código nós teremos o seguinte resultado (o seu vai ser diferente, é claro): -858993460 Minha recomendação é: se você quer mesmo programar na linguagem C, crie uma forma de impedir o acesso à índices inválidos. Se isso acontecer, os resultados exibidos pelos seus programas poderão ser realmente inesperados. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de C - Um método recursivo que conta de 0 até 10Quantidade de visualizações: 1102 vezes |
|
Pergunta/Tarefa: Escreva um método recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:
void contar_recursivamente(int n){
// sua implementação aqui
}
Sua saída deverá ser parecida com: 0 1 2 3 4 5 6 7 8 9 10 Veja a resolução comentada deste exercício usando C console:
#include <stdio.h>
#include <stdlib.h>
// método recursivo que conta de 0 até 10;
void contar_recursivamente(int n){
// vamos exibir o número atual
printf("%d ", n);
// devemos prosseguir com a recursividade?
if(n < 10){
// incrementa o valor de n
n++;
contar_recursivamente(n); // e faz uma nova chamada recursiva
}
}
// método principal do programa
int main(int argc, char *argv[]){
// efetua uma chamada ao método recursivo fornecendo o primeiro valor
contar_recursivamente(0);
printf("\n\n");
system("pause");
return 0;
}
|
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como retornar a representação numérica de um caractere em Java fazendo um cast de char para int GNU Octave - Como calcular a derivada de uma função usando a função diff() do GNU Octave - Regra do Tombo (ou Regra da Potência) AutoCAD Civil 3D .NET C# - Como retornar a quantidade de perfis de um alinhamento do Civil 3D usando a função GetProfileIds() da API C# do AutoCAD Civil 3D Java - Como usar null em Java |
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 |






