Guest User

Untitled

a guest
Oct 24th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. Function CentrMass(var index:integer): boolean;
  2. var i,xC,yC,kolvo,ind,res:integer;
  3. var tmp:integer;
  4. Begin
  5. xC:=0; yC:=0; kolvo:=0;
  6. //функция CentrMass сначала по формуле считает центр масс данного класса
  7. //функция CentrMass xC=(x1+x2+..+xm)/m; yC=..
  8. for i:=K+1 to N do
  9. begin
  10. if ( M[i][3]==M[index][3] ) then
  11. begin
  12. xC:=xC+M[i][1];
  13. yC:=yC+M[i][2];
  14. kolvo++;
  15. end;
  16. end;
  17. xC:=xC/kolvo; yC:=yC/kolvo; // ПРИВЕДЕНИЕ К ТИПУ!!
  18.  
  19. //функция CentrMass далее в цикле считает расстояния от каждой точки данного класса i до найденного цетра масс, значение записывается в массив masRast
  20. //функция CentrMass - проверяется совпадение M[j].cvet==M[i].cvet - принадлежность тому или иному классу
  21. for var i:=1 to N do
  22. begin
  23. masRast[i]:=0.0;
  24. end;
  25. ind:=1;
  26.  
  27. for var i:=K+1 to N do
  28. begin
  29. if ( M[i][3]==M[index][3] ) then
  30. begin
  31. masRast[ind]:=Rast(M[i][1], M[i][2], xC, yC); // функция Rast находит расстояние между очередной точкой M[i] и вершиной M[j]
  32. ind++;
  33. end;
  34. end;
  35. //функция CentrMass находим индекс эл-та с наименьшим расстоянием функцией minRast
  36. //функция CentrMass если этот индекс <> i, то FL устанавливается в 1, эл-ты массива M[i] и M[индекс] меняются местами
  37. res:=minRast(masRast[],ind);
  38. if (res!=index) then
  39. begin
  40. tmp:=M[index][1];
  41. M[index][1]:=M[i][1];
  42. M[i][1]:=tmp;
  43. tmp:=M[index][2];
  44. M[index][2]:=M[i][2];
  45. M[i][2]:=tmp;
  46. tmp:=M[index][3];
  47. M[index][3]:=M[i][3];
  48. M[i][3]:=tmp;
  49.  
  50. CentrMass:=1;
  51. end else
  52. begin
  53. CentrMass:=0;
  54. end;
  55. End;
Add Comment
Please, Sign In to add comment