semoga bisa

Dependencies:   mbed

Committer:
asyrofi
Date:
Sun Apr 15 04:00:54 2018 +0000
Revision:
0:9ae49accf711
mencoba bisa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
asyrofi 0:9ae49accf711 1 #include "mbed.h"
asyrofi 0:9ae49accf711 2 #include "Serial.h"
asyrofi 0:9ae49accf711 3 Serial uart1(USBTX,USBRX);
asyrofi 0:9ae49accf711 4 using namespace std;
asyrofi 0:9ae49accf711 5
asyrofi 0:9ae49accf711 6 struct Point
asyrofi 0:9ae49accf711 7 {
asyrofi 0:9ae49accf711 8 int val;
asyrofi 0:9ae49accf711 9 double x, y;
asyrofi 0:9ae49accf711 10 double distance;
asyrofi 0:9ae49accf711 11
asyrofi 0:9ae49accf711 12 };
asyrofi 0:9ae49accf711 13
asyrofi 0:9ae49accf711 14 bool comparison(Point a, Point b)
asyrofi 0:9ae49accf711 15 {
asyrofi 0:9ae49accf711 16 return (a.distance < b.distance);
asyrofi 0:9ae49accf711 17 }
asyrofi 0:9ae49accf711 18
asyrofi 0:9ae49accf711 19 int classifyAPoint(Point arr[], int n, int k, Point p)
asyrofi 0:9ae49accf711 20 {
asyrofi 0:9ae49accf711 21 for (int i = 0; i < n; i++)
asyrofi 0:9ae49accf711 22 arr[i].distance =
asyrofi 0:9ae49accf711 23 sqrt ((arr[i].x - p.x) * (arr[i].x - p.x) +
asyrofi 0:9ae49accf711 24 (arr[i].y - p.y) * (arr[i].y - p.y));
asyrofi 0:9ae49accf711 25
asyrofi 0:9ae49accf711 26 //sort (arr, arr+n, comparison);
asyrofi 0:9ae49accf711 27
asyrofi 0:9ae49accf711 28 int freq1 = 0;
asyrofi 0:9ae49accf711 29 int freq2 = 0;
asyrofi 0:9ae49accf711 30 for (int i = 0; i < k; i++)
asyrofi 0:9ae49accf711 31 {
asyrofi 0:9ae49accf711 32 if (arr[i].val == 0)
asyrofi 0:9ae49accf711 33 freq1++;
asyrofi 0:9ae49accf711 34 else if (arr[i].val == 1)
asyrofi 0:9ae49accf711 35 freq2++;
asyrofi 0:9ae49accf711 36 }
asyrofi 0:9ae49accf711 37
asyrofi 0:9ae49accf711 38 return (freq1 > freq2 ? 0 : 1);
asyrofi 0:9ae49accf711 39 }
asyrofi 0:9ae49accf711 40
asyrofi 0:9ae49accf711 41 int main ()
asyrofi 0:9ae49accf711 42 {
asyrofi 0:9ae49accf711 43 uart1.baud(9600);
asyrofi 0:9ae49accf711 44 int n = 17; // Number of data points
asyrofi 0:9ae49accf711 45 Point arr[n];
asyrofi 0:9ae49accf711 46
asyrofi 0:9ae49accf711 47 arr[0].x = 1;
asyrofi 0:9ae49accf711 48 arr[0].y = 12;
asyrofi 0:9ae49accf711 49 arr[0].val = 0;
asyrofi 0:9ae49accf711 50
asyrofi 0:9ae49accf711 51 arr[1].x = 2;
asyrofi 0:9ae49accf711 52 arr[1].y = 5;
asyrofi 0:9ae49accf711 53 arr[1].val = 0;
asyrofi 0:9ae49accf711 54
asyrofi 0:9ae49accf711 55 arr[2].x = 5;
asyrofi 0:9ae49accf711 56 arr[2].y = 3;
asyrofi 0:9ae49accf711 57 arr[2].val = 1;
asyrofi 0:9ae49accf711 58
asyrofi 0:9ae49accf711 59 arr[3].x = 3;
asyrofi 0:9ae49accf711 60 arr[3].y = 2;
asyrofi 0:9ae49accf711 61 arr[3].val = 1;
asyrofi 0:9ae49accf711 62
asyrofi 0:9ae49accf711 63 arr[4].x = 3;
asyrofi 0:9ae49accf711 64 arr[4].y = 6;
asyrofi 0:9ae49accf711 65 arr[4].val = 0;
asyrofi 0:9ae49accf711 66
asyrofi 0:9ae49accf711 67 arr[5].x = 1.5;
asyrofi 0:9ae49accf711 68 arr[5].y = 9;
asyrofi 0:9ae49accf711 69 arr[5].val = 1;
asyrofi 0:9ae49accf711 70
asyrofi 0:9ae49accf711 71 arr[6].x = 7;
asyrofi 0:9ae49accf711 72 arr[6].y = 2;
asyrofi 0:9ae49accf711 73 arr[6].val = 1;
asyrofi 0:9ae49accf711 74
asyrofi 0:9ae49accf711 75 arr[7].x = 6;
asyrofi 0:9ae49accf711 76 arr[7].y = 1;
asyrofi 0:9ae49accf711 77 arr[7].val = 1;
asyrofi 0:9ae49accf711 78
asyrofi 0:9ae49accf711 79 arr[8].x = 3.8;
asyrofi 0:9ae49accf711 80 arr[8].y = 3;
asyrofi 0:9ae49accf711 81 arr[8].val = 1;
asyrofi 0:9ae49accf711 82
asyrofi 0:9ae49accf711 83 arr[9].x = 3;
asyrofi 0:9ae49accf711 84 arr[9].y = 10;
asyrofi 0:9ae49accf711 85 arr[9].val = 0;
asyrofi 0:9ae49accf711 86
asyrofi 0:9ae49accf711 87 arr[10].x = 5.6;
asyrofi 0:9ae49accf711 88 arr[10].y = 4;
asyrofi 0:9ae49accf711 89 arr[10].val = 1;
asyrofi 0:9ae49accf711 90
asyrofi 0:9ae49accf711 91 arr[11].x = 4;
asyrofi 0:9ae49accf711 92 arr[11].y = 2;
asyrofi 0:9ae49accf711 93 arr[11].val = 1;
asyrofi 0:9ae49accf711 94
asyrofi 0:9ae49accf711 95 arr[12].x = 3.5;
asyrofi 0:9ae49accf711 96 arr[12].y = 8;
asyrofi 0:9ae49accf711 97 arr[12].val = 0;
asyrofi 0:9ae49accf711 98
asyrofi 0:9ae49accf711 99 arr[13].x = 2;
asyrofi 0:9ae49accf711 100 arr[13].y = 11;
asyrofi 0:9ae49accf711 101 arr[13].val = 0;
asyrofi 0:9ae49accf711 102
asyrofi 0:9ae49accf711 103 arr[14].x = 2;
asyrofi 0:9ae49accf711 104 arr[14].y = 5;
asyrofi 0:9ae49accf711 105 arr[14].val = 1;
asyrofi 0:9ae49accf711 106
asyrofi 0:9ae49accf711 107 arr[15].x = 2;
asyrofi 0:9ae49accf711 108 arr[15].y = 9;
asyrofi 0:9ae49accf711 109 arr[15].val = 0;
asyrofi 0:9ae49accf711 110
asyrofi 0:9ae49accf711 111 arr[16].x = 1;
asyrofi 0:9ae49accf711 112 arr[16].y = 7;
asyrofi 0:9ae49accf711 113 arr[16].val = 0;
asyrofi 0:9ae49accf711 114
asyrofi 0:9ae49accf711 115 /*Testing Point*/
asyrofi 0:9ae49accf711 116 Point p;
asyrofi 0:9ae49accf711 117 p.x = 2.5;
asyrofi 0:9ae49accf711 118 p.y = 7;
asyrofi 0:9ae49accf711 119
asyrofi 0:9ae49accf711 120 // Parameter to decide groupr of the testing point
asyrofi 0:9ae49accf711 121 while(1)
asyrofi 0:9ae49accf711 122 {
asyrofi 0:9ae49accf711 123 wait(0.1);
asyrofi 0:9ae49accf711 124 int k = 3;
asyrofi 0:9ae49accf711 125 uart1.printf ("The value classified to unknown point"
asyrofi 0:9ae49accf711 126 " is %d.\n", classifyAPoint(arr, n, k, p));
asyrofi 0:9ae49accf711 127 //return 0;
asyrofi 0:9ae49accf711 128 }
asyrofi 0:9ae49accf711 129
asyrofi 0:9ae49accf711 130 }