Рабочий стол > DL Руководство пользователя > Геометрия > Просмотр
Геометрия Войти | Зарегистрироваться   Просмотр версии для печати текущей страницы.

Добавлен Egor, отредактирован Egor Sep 11, 2016
Метки: 
(нет)

Вы просматриваете старую версию (v. 3) этой страницы.

Расстояние между двумя точками 

#include <bits/stdc++.h>
using namespace std;
int main()
{
double x1,x2,y1,y2,d;
cin >> x1 >> y1 >> x2 >> y2;
d=sqrt(pow(x2-x1,2)+pow(y2-y1,2));
cout << setprecision(2) << fixed;
cout << d;
}

sqrt - извлечение корня квадратного из x
pow(a,b) - возведение числа a в степень b (оба могут быть и целыми и вещественными)

Сравнение "на равенство" вещественных чисел

...
double d1,d2;
...
if (abs(d1-d2)<0.001) cout << "Yes";
else cout << "No";

Ввод массивов точек (10 и n)

double x10,y10;
int i;
...
for (i=0; i<10; i++) cin >> xi >> yi;
...

double x[10],y[10];
int i,n;
cin >> n;
for (i=0; i<n; i++) cin >> xi >> yi;

Расстояние от точки до n точек

double x10,y10,d10,x0,y0;
int i;
...
cin >> x0 >> y0;
cin >> n;
for (i=0; i<n; i++) cin >> xi >> yi;
...
for (i=0; i<n; i++)
di=sqrt(pow(xi-x0,2)+pow(yi-y0,2));
...
cout << setprecision(2) << fixed;
for (i=0; i<10; i++)
cout << di << endl; // Вывод в столбик
...

Соседние расстояния

double x[100],y[100],d[100];
int i,n;

cin >> n;
for (i=0; i<n; i++) cin >> xi >> yi;

for (i=0; i<n-1; i++)
di=sqrt(pow(xi-xi+1,2)+pow(yi-yi+1,2));

Расстояния между всеми парами точек

double x[400],y[400],d[400][400];
int i,j,n;
cin >> n;
for (i=0; i<n; i++) cin >> xi >> yi;

for (i=0; i<n; i++)
for (j=0; j<n; j++)
d[i][j]=sqrt(pow(xi-x,2)+pow(yi-yj,2));

// Альтернативный вариант - заполняем только НАД 1 ДИАГОНАЛЬЮ
// поскольку di,j = di,j

for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
d[i][j]=sqrt(pow(xi-xj,2)+pow(yi-yj,2));

Расстояние между двумя множествами точек

double x1[300],y1[300],x2[400],y1[400],d[300][400];
int i,j,n;

...

cin >> n1;
for (i=0; i<n1; i++) cin >> x1[i] >> y1[i];

cin >> n2;
for (i=0; i<n2; i++) cin >> x2[i] >> y2[i];

for (i=0; i<n1; i++)
for (j=0; j<n2; j++)
d[i][j]=sqrt(pow(x1[i]-x2[j],2)+pow(y1[i]-y2[j],2));
...

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: http://www.atlassian.com/software/confluence Build:#2.6.1 916) - Ошибка/новая особенность - Свяжитесь с Администраторами