Você está aqui: Cards de Engenharia Civil - Fundações |
||
|
||
|
|
||
Python ::: Dicas & Truques ::: Aplicativos e Outros |
Como calcular a distância entre dois pontos na terra em PythonQuantidade de visualizações: 1604 vezes |
|
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado. O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes. Veja o código Python completo:
# vamos importar o módulo Math
import math
# função que recebe dois pontos na terra e retorna a distância
# entre eles em quilômetros
def calcularDistancia(lat1, lat2, lon1, lon2):
raio_terra = 6378.137 # raio da terra em quilômetros
# o primeiro passo é converter as latitudes e longitudes
# para radianos
lon1 = math.radians(lon1)
lon2 = math.radians(lon2)
lat1 = math.radians(lat1)
lat2 = math.radians(lat2)
# agora aplicamos a Fórmula de Haversine
dlon = lon2 - lon1
dlat = lat2 - lat1
a = math.pow(math.sin(dlat / 2), 2) + math.cos(lat1) * math.cos(lat2) \
* math.pow(math.sin(dlon / 2),2)
c = 2 * math.asin(math.sqrt(a))
# e retornamos a distância
return(c * raio_terra)
# método principal
def main():
# vamos solicitar a latitude e longitude das duas localizações
lat1 = float(input("Informe a primeira latitude: "))
lon1 = float(input("Informe a primeira longitude: "))
lat2 = float(input("Informe a segunda latitude: "))
lon2 = float(input("Informe a segunda longitude: "))
# vamos calcular a distância entre os dois pontos em Kms
distancia = calcularDistancia(lat1, lat2, lon1, lon2)
# mostramos o resultado
print("A distância entre os dois pontos é: {0} kms".format(distancia))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a primeira latitude: -16.674551 Informe a primeira longitude: -49.303598 Informe a segunda latitude: -15.579321 Informe a segunda longitude: -56.10009 A distância entre os dois pontos é: 736.9183827638687kms Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuibá-MT. A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador. |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Regressão linear - Como calcular o coeficiente de correlação linear de Pearson em Java - Java para Machine LearningQuantidade de visualizações: 568 vezes |
![]() No estudo de Machine Learning, uma das primeiras ferramentas que aprendemos é Regressão Linear. E, para o bom entendimento da regressão linear, temos que aprender sobre o coeficiente de correlação linear, mais especificamente o coeficiente de correlação linear de Pearson. A fórmula do coeficiente de correlação linear de Pearson é: \[r_\text{xy} = \frac{n \sum x_i y_i - \sum x_i \sum y_i}{\sqrt{n \sum {x_i}^2 - \left(\sum {x_i}\right)^2} \cdot \sqrt{n \sum {y_i}^2 - \left(\sum {y_i}\right)^2}} \] Onde: x e y são os conjuntos de valores cuja correlação queremos testar. É claro que encontraremos algumas variações desta fórmula na internet e também em livros de estatística, mas o resultado é sempre o mesmo. A correlação de Pearson é uma técnica estatística para medir se duas variáveis estão linearmente relacionadas. Essa técnica também pode ser chamada de r de Pearson, correlação produto-momento de Pearson ou, mais coloquialmente, de correlação de Pearson. O r de Pearson é uma métrica que expressa a relação linear entre variáveis por meio de um número que vai de -1 a +1. Isto é, quanto mais próximo dos extremos (-1 ou +1), maior é a força da correlação. Por outro lado, valores próximos de zero indicam que a correlação é fraca. O sinal da correlação, por sua vez, indica a direção da relação entre variáveis. Se a correlação é positiva, então o aumento em uma variável implica o aumento na outra variável. Por outro lado, se a correlação é negativa, então o aumento em uma variável implica o decréscimo na outra variável. Veja agora o código Java completo no qual calculamps o coeficiente de correlação linear de Pearson a partir de valores x e y, dispostos em dois vetores, ou seja, dois arrays unidimensionais:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar os vetores com os valores x e y
double x[] = {13, 32, 47, 54, 69, 73};
double y[] = {208, 184, 145, 14, 65, 32};
// as variáveis para os somatórios
double soma_x = 0, soma_y = 0, soma_x_quadrado = 0;
double soma_y_quadrado = 0, soma_x_vezes_y = 0;
// vamos percorrer os vetores e efetuar as somas
for (int i = 0; i < x.length; i++) {
// primeiro o somatório de x
soma_x = soma_x + x[i];
// agora o somatório de y
soma_y = soma_y + y[i];
// então o somatório de x^2
soma_x_quadrado = soma_x_quadrado + Math.pow(x[i], 2);
// e o somatório de y^2
soma_y_quadrado = soma_y_quadrado + Math.pow(y[i], 2);
// e finalmente o somatório de x*y
soma_x_vezes_y = soma_x_vezes_y + x[i] * y[i];
}
// vamos obter a quantidade de valores na observação
int n = x.length;
// e finalmente calculamos o coeficiente de correlação
// linear
double r_xy = ((n * soma_x_vezes_y) - (soma_x * soma_y)) /
(Math.sqrt((n * soma_x_quadrado) - Math.pow(soma_x, 2)) *
Math.sqrt((n * soma_y_quadrado) - Math.pow(soma_y, 2)));
// e mostramos o resultado
System.out.println("O coeficiente de correlação é: " +
r_xy);
}
}
Ao executar este código Java nós teremos o seguinte resultado: O coeficiente de correlação é: -0.8713675107044452 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de Java - O caractere ausente. Escreva um método Java que receba uma string não vazia e um inteiro positivo.Quantidade de visualizações: 1185 vezes |
|
Pergunta/Tarefa: O desafio do caractere faltante. Escreva um programa Java contendo um método que receberá uma palavra, frase ou texto e um inteiro positivo. Este método deverá retornar a palavra, frase ou texto com o caractere removido no índice especificado pelo inteiro fornecido como segundo argumento para o método. Certifique-se de que a string passada para o método não esteja vazia e de que o valor inteiro no segundo argumento não esteja fora da faixa permitida, ou seja, não seja menor que 0 nem maior que o comprimento da string - 1. Sua saída deverá ser parecida com: Informe uma palavra, frase ou texto: JAVASCRIPT Informe um número inteiro: 4 O resultado é: JAVACRIPT Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String args[]){
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar uma palavra, frase ou texto
System.out.print("Informe uma palavra, frase ou texto: ");
String str = entrada.nextLine().trim();
// agora vamos pedir para o usuário informar um número inteiro
System.out.print("Informe um número inteiro: ");
int indice = Integer.parseInt(entrada.nextLine());
// os dados são válidos?
if(str.isEmpty()){
System.out.println("\nA string informada está vazia\n");
}
else if(indice < 0 || indice > str.length() - 1){
System.out.println("\nO índice não está na faiza permitida\n");
}
else{
String resultado = caractereFaltante(str, indice);
System.out.println("O resultado é: " + resultado);
}
}
public static String caractereFaltante(String str, int indice){
// primeiro nós obtemos uma substring que vai do primeiro
// índice até o indice informado pelo usuário, sem incluí-lo
String inicio = str.substring(0, indice);
// agora obtemos o restante da string a partir do índice informado
// pelo usuário, sem incluí-lo, é claro
String fim = str.substring(indice + 1, str.length());
return inicio + fim;
}
}
|
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como obter o resto de uma divisão de inteiros em Python - O operador módulo % da linguagem PythonQuantidade de visualizações: 20689 vezes |
|
Como obter o resto de uma divisão de inteiros em Python - O operador módulo % da linguagem Python Além dos operadores normais para aritmética, a linguagem Python nos fornece também o operador %, chamado comumente de operador de módulo. Este operador atua sobre dois valores inteiros e retorna o resto da divisão entre eles. Veja um exemplo completo de seu uso:
def main():
a = 9
b = 2
res = a / b
resto = a % b
print(a, "dividido por", b, "é", res)
print("O resto da divisao é", resto)
if __name__== "__main__":
main()
Ao executarmos este código Python nós teremos o seguinte resultado: 9 dividido por 2 é 4.5 O resto da divisao é 1 |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir todas as ocorrências de uma substring em uma string em Delphi sem considerar maiúsculas e minúsculas usando a função ReplaceText()Quantidade de visualizações: 12213 vezes |
Algumas vezes precisamos substituir todas as ocorrências de uma substring em uma string mas não queremos diferenciar letras maiúsculas de letras minúsculas. Em Delphi isso pode ser feito com o auxílio da função ReplaceText(). Esta função requer a string na qual a substituição ocorrerá, a substring a ser substituída e a nova substring. O resultado será uma nova string resultante da substituição. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var frase: string; begin frase := 'PHP? Sim, eu gosto muito de PHP'; // vamos substituir todas as ocorrências de "PHP" por "Delphi' // sem considerar maiúsculas e minúsculas frase := ReplaceText(frase, 'Php', 'Delphi'); // vamos exibir o resultado ShowMessage(frase); end; Lembre-se de que esta função não diferencia maiúsculas e minúsculas. Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







