Expoente em C++

1. Expoente em C++

Lucas Moraes
lucasdemoraesc

(usa Ubuntu)

Enviado em 13/03/2018 - 09:49h

Bom dia... Tarde... Noite, pessoal...

Então, estou começando a estudar C++ em um curso. E fiz o seguinte código, (que me foi pedido), para calcular a distância entre dois pontos.
#include <iostream>
#include <cmath>
using namespace std;

/***************************************************************
* Calcular e exibir distância entre dois pontos *
***************************************************************/

int main()
{

// Declarar variáveis:
float x1;
float x2;
float y1;
float y2;

// Atribuir dados às variáveis:
cout << "Coordenada de X1: ";
cin >> x1; // Atribuir dado ao ponto x1...
cout << "Coodenada de X2: ";
cin >> x2; // Atribuir dado ao ponto x2...
cout << "Coordenada de Y1: ";
cin >> y1; // Atribuir dado ao ponto y1...
cout << "Coordenada de Y2: ";
cin >> y2; // Atribuir dado ao ponto y2...

// Calcular e exibir resultados:
cout << "\nA Distância é: " << sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)));

}


Queria saber de vocês em quais aspectos, e de quais maneiras eu posso melhorar este código, em especial a linha destacada...
Como posso calcular potenciações de forma mais simples? sem ter que multiplicar as bases...

LMC


  


2. Re: Expoente em C++

Lucas Moraes
lucasdemoraesc

(usa Ubuntu)

Enviado em 13/03/2018 - 10:25h

Obrigado @SamL...

Só mais uma coisa... Em questões de estética, seria melhor...
Assim:
cout << "\nA Distância é: " << cout << sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2))); 
Ou assim:
cout << "\nA Distância é: ";
cout << sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)));
?

LMC


3. Re: Expoente em C++

Lucas Moraes
lucasdemoraesc

(usa Ubuntu)

Enviado em 13/03/2018 - 10:33h

SamL escreveu:

Cara tanto faz, faça como você mesmo pensa ser melhor. Além do mais se fosse um programa pra um ciente o que importa é que faça o trabalho corretamente, o cliente não ia ficar querendo ver seu código fonte, a não ser que você dê pra ele e mesmo assim ele teria de ser programador pra entender e até criticar o que você fez.

Uhhhmmm
Ok!

É porque ás vezes eu gosto de deixar as coisas o mais claras possíveis, para mim e para os outros, e uma coisa que me irrita, são linhas maiores que 80 colunas... Sei que às vezes é impossível de evitar, mas tento isso ao máximo...

LMC


4. Re: Expoente em C++

Paulo
paulo1205

(usa Ubuntu)

Enviado em 13/03/2018 - 12:12h

correalinux escreveu:

Em questões de estética, seria melhor...
Assim:
cout << "\nA Distância é: " << cout << sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2))); 
Ou assim:
cout << "\nA Distância é: ";
cout << sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)));
?


Dado que a primeira alternativa tem um erro (em destaque), a segunda acaba sendo melhor.

Mas como você depois perguntou sobre disposição do código em função da largura da linha, eis como eu costumo fazer.

cout
<< "A Distância é: "
<< sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
<< '\n'
;


Note que eu não mudei apenas a disposição dos elementos da linha, mas também eliminei um nível redundante de parênteses, alguns espaços e, principalmente, coloquei o terminador de linha no seu lugar, que é no término da linha, não (esperançosamente) no início da linha seguinte.


5. Re: Expoente em C++

Lucas Moraes
lucasdemoraesc

(usa Ubuntu)

Enviado em 13/03/2018 - 12:24h

Valeu @paulo1205... O erro foi na hora de colar, nem tinha percebido... (falha minha rsrsrs)

Mas obrigado pela dica, este modo que você usa, eu ainda não conhecia em C++... Bem legal!


LMC


6. Re: Expoente em C++

Fernando
phoemur

(usa Debian)

Enviado em 13/03/2018 - 13:16h

Considere que a distancia dos pontos é a raiz quadrada da soma de 2 quadrados ((x2-x1)^2 e (y2-y1)^2)

Isso é matematicamente correspondente à hipotenusa segundo o teorema de pitágoras, de forma que seria mais elegante escrever algo assim:


cout << "\nA Distância é: " << hypot(x2-x1, y2-y1);


E de fato se você colocar dois pontos em um plano cartesiano, a distância entre eles realmente vai ser a hipotenusa de um triângulo retângulo considerando como lados as projeções nos eixos X e Y. Fica até mais fácil de visualizar desse jeito.

Referência: http://en.cppreference.com/w/cpp/numeric/math/hypot

Um abraço






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts