bogdanNiculeasa

Afisare puncte distanta minima

Feb 15th, 2023
971
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | Software | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <math.h>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. struct punct
  9. {
  10.     float x;
  11.     float y;
  12. };
  13. float calculeazaDistantaCuOriginea(punct pt);
  14.  
  15. int main()
  16. {
  17.     ifstream fin("BAC.TXT");
  18.     int n;
  19.     fin >> n;
  20.     punct puncte[n];
  21.     // Citire valori din fisieri si setare in structuri
  22.     for (int i = 0; i < n; i++)
  23.     {
  24.         fin >> puncte[i].x >> puncte[i].y;
  25.     }
  26.  
  27.     // Calculare distanta minima
  28.     float distantaMinima = calculeazaDistantaCuOriginea(puncte[0]);
  29.     for (int i = 1; i < n; i++)
  30.     {
  31.         float distantaCurenta = calculeazaDistantaCuOriginea(puncte[i]);
  32.         if (distantaCurenta < distantaMinima)
  33.         {
  34.             distantaMinima = distantaCurenta;
  35.         }
  36.     }
  37.  
  38.     // Cautare puncte care se gasesc la distanta minima
  39.     for (int i = 0; i < n; i++)
  40.     {
  41.         float distantaCurenta = calculeazaDistantaCuOriginea(puncte[i]);
  42.         if (distantaCurenta == distantaMinima)
  43.         {
  44.             cout << "("<<puncte[i].x<<"," <<puncte[i].y<<") ";
  45.         }
  46.     }
  47.  
  48.     return 0;
  49. }
  50.  
  51. float calculeazaDistantaCuOriginea(punct pt)
  52. {
  53.     return sqrt(pow(pt.x, 2) + pow(pt.y, 2));
  54. }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment