Просмотр источника
h1. {color:#000000}{*}Расстояние между двумя точками{*}{color}{color:#000000} {color} \\ {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; ... 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; ... 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; 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; 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} *Расстояние между двумя множествами точек* \\ {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} |