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

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

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

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

prog.cpp
\#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)  - извлечение корня квадратного из x
//   pow(a,b) - возведение числа a в степень b (оба могут быть и целыми и вещественными)
Сравнение "на равенство" вещественных чисел

prog.cpp
&nbsp;...  double d1,d2;
  ...
  if (abs(d1-d2)<0.001) cout << "Yes";
    else                cout << "No";
Ввод массивов точек (10 и n)

prog.cpp
&nbsp;double x\[10\],y\[10\]; int    i;
  ...
 for (i=0; i<10; i++) cin >> x[i] >> y[i];
  ...


 double x[???],y[???];
 int    i,n;
 cin >> n;
 for (i=0; i<n; i++) cin >> x[i] >> y[i];{}code{*}Расстояние от точки до n точек{*}{code:title=prog.cpp|borderStyle=solid}double x[10],y[10],d[10],x0,y0;
 int    i;
 ...
 cin >> x0 >> y0;
 cin >> n;
 for (i=0; i<n; i++) cin >> x[i] >> y[i];
 ...
 for (i=0; i<n; i++)
   d[i]=sqrt(pow(x[i]-x0,2)+pow(y[i]-y0,2));
 ...
 cout << setprecision(2) << fixed;
 for (i=0; i<10; i++)
   cout << d[i] << endl;                        // Вывод в столбик
 ...
Соседние расстояния

prog.cpp
&nbsp;double x\[100\],y\[100\],d\[100\]; int    i,n;

 cin >> n;
 for (i=0; i<n; i++) cin >> x[i] >> y[i];

 for (i=0; i<n-1; i++)
   d[i]=sqrt(pow(x[i]-x[i+1],2)+pow(y[i]-y[i+1],2));
Расстояния между всеми парами точек

prog.cpp
&nbsp;double x\[400\],y\[400\],d\[400\]\[400\]; int    i,j,n;
 cin >> n;
 for (i=0; i<n; i++) cin >> x[i] >> y[i];

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


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

 for (i=0; i<n; i++)
   for (j=i+1; j<n; j++)
     d[i][j]=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));
Расстояние между двумя множествами точек

prog.cpp
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) - Ошибка/новая особенность - Свяжитесь с Администраторами