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

Версия 1 Egor
на Sep 11, 2016 10:52.

 
в сравнении с
Текущий из Egor
за Oct 09, 2016 10:55.

 
Ключ
Эти линии были удалены. Это слово было удалено.
Эти линии были добавлены. Это слово было добавлено.

Просмотр истории страницы


Есть 10 изменений. Просмотреть первое изменение .

 h1. {color:#003366}1. Расстояние между двумя точками{color}
  
 #include <bits/stdc++.h>
 using namespace std;
  h1. {color:#000000}{*}Расстояние между двумя точками{*}{color}{color:#000000}&nbsp;{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 (оба могут быть и целыми и вещественными)
  
  
 2. Сравнение "на равенство" вещественных чисел
  
  // sqrt(x) - извлечение корня квадратного из x
 // pow(a,b) - возведение числа a в степень b (оба могут быть и целыми и вещественными)
 {code}
 *Сравнение "на равенство" вещественных чисел*
 \\ \\
 {code:title=prog.cpp\|borderStyle=solid}
 ... double d1,d2;
  ...
double d1,d2;
  ...
  if (abs(d1-d2)<0.001) cout << "Yes";
  else cout << "No";
 
  
 3-4. Ввод массивов точек (10 и n)
  
  double x[10],y[10];
  int i;
  {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];
  
  
 5. Расстояние от точки до n точек
  
  double x[10],y[10],d[10],x0,y0;
   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; // Вывод в столбик
  ...
 
 6. Соседние расстояния
  
  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));
 
  
 7. Расстояния между всеми парами точек
  
  
  double x[400],y[400],d[400][400];
  int i,j,n;
  {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;
  
 
 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));
  ...
 {code}
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: http://www.atlassian.com/software/confluence Build:#2.6.1 916) - Ошибка/новая особенность - Свяжитесь с Администраторами