| h1. {color:#000000}{*}Расстояние между двумя точками{*}{color}{color:#000000} {color} |
| | |
| {code:title=prog.cpp\|borderStyle=solid}\#include <bits/stdc++.h>using namespace std; |
| | \\ |
| {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) - извлечение корня квадратного из x |
| | // pow(a,b) - возведение числа a в степень b (оба могут быть и целыми и вещественными){code}{*}Сравнение "на равенство" вещественных чисел* |
| |
| {code:title=prog.cpp\|borderStyle=solid} ... double d1,d2; |
| | // 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)* |
| |
| {code:title=prog.cpp\|borderStyle=solid} double x\[10\],y\[10\]; int i; |
| | else cout << "No"; |
| {code} |
| *Ввод массивов точек (10 и n)* |
| \\ \\ |
| {code:title=prog.cpp\|borderStyle=solid} |
| 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}{*}Соседние расстояния* |
| |
| {code:title=prog.cpp\|borderStyle=solid} double x\[100\],y\[100\],d\[100\]; int i,n; |
| |
| | ... |
| {code} |
| *Соседние расстояния* |
| \\ \\ |
| {code:title=prog.cpp\|borderStyle=solid} |
| 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));{code}{*}Расстояния между всеми парами точек* |
| |
| {code:title=prog.cpp\|borderStyle=solid} double x\[400\],y\[400\],d\[400\]\[400\]; int i,j,n; |
| | 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]; |
| |
| 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));{code}{*}Расстояние между двумя множествами точек* |
| | d[i][j]=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2)); |
| {code} |
| *Расстояние между двумя множествами точек* |
| \\ |
| {code:title=prog.cpp\|borderStyle=solid} |
| double x1\[300\],y1\[300\],x2\[400\],y1\[400\],d\[300\]\[400\]; int i,j,n; |
| |
| | {code:title=prog.cpp\|borderStyle=solid}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)); |
| | ...{code} |
| | ... |
| {code} |