|  | h1. {color:#003366}1. Расстояние между двумя точками{color} |
| | h1. {color:#000000}Расстояние между двумя точками{color}{color:#000000} {color} |
| |
 |  | #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; |
| } |
| | _\#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 (оба могут быть и целыми и вещественными) |
| | _sqrt_ \- извлечение корня квадратного из x |
| _pow(a,b)_ \- возведение числа a в степень b (оба могут быть и целыми и вещественными) |
| |
 |  | *Сравнение "на равенство" вещественных чисел* |
| |
 |  | 2. Сравнение "на равенство" вещественных чисел |
| | ... |
| _double d1,d2;_ |
| _..._ |
| _if (abs(d1-d2)<0.001) cout << "Yes";_ |
| _else cout << "No";_ |
| |
 |  | ... |
| double d1,d2; |
| ... |
| if (abs(d1-d2)<0.001) cout << "Yes"; |
| else cout << "No"; |
| | *Ввод массивов точек (10 и n)* |
| |
 |  | _double x{_}_[10]__,y{_}_[10]__;_ |
| _int i;_ |
| _..._ |
| _for (i=0; i<10; i++) cin >> x{_}_[i]_ _>> y{_}_[i]__;_ |
| _..._ |
| |
 |  | 3-4. Ввод массивов точек (10 и n) |
| | _double x{_}_[???]__,y{_}_[???]__;_ |
| _int i,n;_ |
| _cin >> n;_ |
| _for (i=0; i<n; i++) cin >> x{_}_[i]_ _>> y{_}_[i]__;_ |
| |
 |  | double x[10],y[10]; |
| int i; |
| ... |
| for (i=0; i<10; i++) cin >> x[i] >> y[i]; |
| ... |
| | *Расстояние от точки до n точек* |
| |
 |  | _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; // Вывод в столбик_ |
| _..._ |
| |
 |  | double x[???],y[???]; |
| int i,n; |
| cin >> n; |
| for (i=0; i<n; i++) cin >> x[i] >> y[i]; |
| | *Соседние расстояния* |
| |
 |  | _double x{_}_[100]__,y{_}_[100]__,d{_}_[100]__;_ |
| _int i,n;_ |
| |
 |  | 5. Расстояние от точки до n точек |
| | _cin >> n;_ |
| _for (i=0; i<n; i++) cin >> x{_}_[i]_ _>> y{_}_[i]__;_ |
| |
 |  | 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; // Вывод в столбик |
| ... |
| | _for (i=0; i<n-1; i++)_ |
| _d{_}_[i]__=sqrt(pow(x{_}_[i]__\-x{_}_[i+1]__,2)+pow(y{_}_[i]__\-y{_}_[i+1]__,2));_ |
| |
 |  | 6. Соседние расстояния |
| | *Расстояния между всеми парами точек* |
| |
 |  | double x[100],y[100],d[100]; |
| int i,n; |
| | _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]__;_ |
| |
 |  | 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));_ |
| |
 |  | for (i=0; i<n-1; i++) |
| d[i]=sqrt(pow(x[i]-x[i+1],2)+pow(y[i]-y[i+1],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));_ |
| |
 |  | 7. Расстояния между всеми парами точек |
| | *Расстояние между двумя множествами точек* |
| |
 |  | _double x1{_}_[300]__,y1{_}_[300]__,x2{_}_[400]__,y1{_}_[400]__,d{_}_[300]__[400]__;_ |
| _int i,j,n;_ |
| |
 |  | 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)); |
| | _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]__;_ |
| |
 | | // Альтернативный вариант - заполняем только НАД 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)); |
| |
| |
| 8. Расстояние между двумя множествами точек |
| |
| 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)); |
| ... |
| | _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));_ |
| _..._ |