Advertisement
amarek

OOP - priprema

Nov 18th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. class Location
  2.     {
  3.         public double Latitude { get; private set; }
  4.         public double Longitude { get; private set; }
  5.  
  6.         public Location(double latitude, double longitude)
  7.         {
  8.             Latitude = latitude; Longitude = longitude;
  9.         }
  10.     }
  11.  
  12.     // 1. zadatak
  13.     interface ILocationTracker
  14.     {
  15.         double FindMinDistance(Location current, List<Location> neighbors);
  16.         List<Location> CreateNewLocations(Location current, List<Location> neighbors, double distance);
  17.     }
  18.  
  19.     // 2. zadatak
  20.     class EuclideanTracker : ILocationTracker
  21.     {
  22.         public double FindMinDistance(Location current, List<Location> neighbors)
  23.         {
  24.             double min =  Math.Sqrt(Math.Pow(current.Latitude - neighbors[0].Latitude, 2) + Math.Pow(current.Longitude - neighbors[0].Latitude, 2));
  25.             double distance;
  26.  
  27.             foreach (Location location in neighbors)
  28.             {
  29.                 distance = Math.Sqrt(Math.Pow(current.Latitude - location.Latitude, 2) + Math.Pow(current.Longitude - location.Latitude, 2));
  30.                 if (distance < min)
  31.                 {
  32.                     min = distance;
  33.                 }
  34.             }
  35.  
  36.             return min;
  37.         }
  38.  
  39.         List<Location> CreateNewLocations(Location current, List<Location> neighbors, double distance)
  40.         {
  41.             List<Location> newLocations = new List<Location>();
  42.             double newDistance;
  43.  
  44.             foreach (Location location in neighbors)
  45.             {
  46.                  newDistance = Math.Sqrt(Math.Pow(current.Latitude - location.Latitude, 2) + Math.Pow(current.Longitude - location.Latitude, 2));
  47.                  if (newDistance < distance)
  48.                  {
  49.                      newLocations.Add(location);
  50.                  }
  51.             }
  52.  
  53.             return newLocations;
  54.         }
  55.  
  56.         // 3. zadatak
  57.         List<Location> CreateMinLocations(Location current, List<Location> neighbors)
  58.         {
  59.             List<Location> minLocations = new List<Location>();
  60.             double minDistance = FindMinDistance(current, neighbors);
  61.             double newDistance;
  62.  
  63.             foreach (Location location in neighbors)
  64.             {
  65.                 newDistance = Math.Sqrt(Math.Pow(current.Latitude - location.Latitude, 2) + Math.Pow(current.Longitude - location.Latitude, 2));
  66.                 if (newDistance < minDistance + 10)
  67.                 {
  68.                     minLocations.Add(location);
  69.                 }
  70.             }
  71.  
  72.             return minLocations;
  73.         }
  74.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement