Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Location
- {
- public double Latitude { get; private set; }
- public double Longitude { get; private set; }
- public Location(double latitude, double longitude)
- {
- Latitude = latitude; Longitude = longitude;
- }
- }
- // 1. zadatak
- interface ILocationTracker
- {
- double FindMinDistance(Location current, List<Location> neighbors);
- List<Location> CreateNewLocations(Location current, List<Location> neighbors, double distance);
- }
- // 2. zadatak
- class EuclideanTracker : ILocationTracker
- {
- public double FindMinDistance(Location current, List<Location> neighbors)
- {
- double min = Math.Sqrt(Math.Pow(current.Latitude - neighbors[0].Latitude, 2) + Math.Pow(current.Longitude - neighbors[0].Latitude, 2));
- double distance;
- foreach (Location location in neighbors)
- {
- distance = Math.Sqrt(Math.Pow(current.Latitude - location.Latitude, 2) + Math.Pow(current.Longitude - location.Latitude, 2));
- if (distance < min)
- {
- min = distance;
- }
- }
- return min;
- }
- List<Location> CreateNewLocations(Location current, List<Location> neighbors, double distance)
- {
- List<Location> newLocations = new List<Location>();
- double newDistance;
- foreach (Location location in neighbors)
- {
- newDistance = Math.Sqrt(Math.Pow(current.Latitude - location.Latitude, 2) + Math.Pow(current.Longitude - location.Latitude, 2));
- if (newDistance < distance)
- {
- newLocations.Add(location);
- }
- }
- return newLocations;
- }
- // 3. zadatak
- List<Location> CreateMinLocations(Location current, List<Location> neighbors)
- {
- List<Location> minLocations = new List<Location>();
- double minDistance = FindMinDistance(current, neighbors);
- double newDistance;
- foreach (Location location in neighbors)
- {
- newDistance = Math.Sqrt(Math.Pow(current.Latitude - location.Latitude, 2) + Math.Pow(current.Longitude - location.Latitude, 2));
- if (newDistance < minDistance + 10)
- {
- minLocations.Add(location);
- }
- }
- return minLocations;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement