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