Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.
Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.
Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
Dându-se două puncte, să se determine distanța dintre acestea (reprezentat printr-un număr real).
Exemplu. Pentru punctele (3, 4)
și (4, 5)
, distanța este 1.4142…
(radical din 2
).
Ne vom folosi de teorema lui Pitagora pentru a determina distanța dintre două puncte.
Mai precis, vom proiecta unul din puncte pe aceeași ordonată ca și celălalt, formând un triunghi dreptunghic. Iată această proiecție pentru exemplul nostru de mai devreme (punctul verde este (3, 4)
, cel roșu este (4, 5)
, iar punctul albastru este proiecția — (4, 4)
):
Observăm două lucruri:
y
ca și primul punct și același x
ca și al doilea (așadar, pentru punctele (x1, y1)
și (x2, y2)
, proiecția ar fi (x2, y1)
— observăm că și punctul (x1, y2)
este bun);Așadar, distanța pe care vrem să o aflăm, ip
, este egală cu sqrt(c12 + c22)
. Această valoare este egală cu diferența de x
și de y
al celor două puncte. Așadar, ip = sqrt((x1 - x2)2 + (y1 - y2)2)
.
Iată o rezolvare în C++:
#include <iostream>
#include <cmath> //Ne trebuie biblioteca cmath pentru a avea acces la funcția de radical (sqrt)
using namespace std;
int main()
{
//Declarăm și citim coordonatele punctelor
int x1, y1, x2, y2;
cout << "Primul punct: ";
cin >> x1 >> y1;
cout << "Al doilea punct: ";
cin >> x2 >> y2;
//Diferența de x și y din formula de mai devreme
//Pentru că ridicăm aceste numere la pătrat, nu contează semnul lor
int deltaX = (x2 - x1);
int deltaY = (y2 - y1);
//Calculul și afișarea distanței
double distanta = sqrt(deltaX * deltaX + deltaY * deltaY);
cout << "Distanta este " << distanta;
return 0;
}