Частина тексту файла (без зображень, графіків і формул):
ІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
Лабораторна робота № 6
“ ЕВРІСТИЧНИЙ АЛГОРИТМ ПОРОГОВОЇ ВЕЛИЧИНИ”
Виконав:
ст. гр. КН-24
Перевірив:
Денисюк П. Ю.
Львів 2007
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#define n 10
struct point
{
int x,y;
int cluster;
};
int get_distance(point *, point *);
void main (void)
{
sclrscr();
int bound;
point mas[n];
printf("\nEnter the bound value \n");
scanf(" %d",&bound);
printf("\n Enter points\n");
for (int i=0;i<n;i++)
{
scanf(" %d",&mas[i].x);
scanf(" %d",&mas[i].y);
mas[i].cluster=0;
};
int k=1,j;
for (i=0;i<n;i++)
{
if (mas[i].cluster==0)
{
mas[i].cluster=k;
for (j=i;j<n;j++) if (mas[j].cluster==0)
if (get_distance(&mas[i],&mas[j])<bound) mas[j].cluster=k;
k++;
}
}
k=1;
for (i=0;i<n;i++)
{
if (mas[i].cluster==k)
{
printf("\n\n claster %d (%d;%d)",mas[i].cluster,mas[i].x,mas[i].y);
for (j=i+1;j<n;j++) if (mas[j].cluster==k)
printf(" (%d;%d)",mas[j].x,mas[j].y);
k++;
}
}
getch();
}
int get_distance(point * p1, point * p2)
{
return sqrt((p1->x-p2->x)*(p1->x-p2->x)+(p1->y-p2->y)*(p1->y-p2->y));
}