Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2015
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <math.h>
  4. using namespace std;
  5.  
  6. float dlugosc(float x1, float y1, float x2, float y2) {
  7.     return sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
  8. }
  9.  
  10. float doPotegi(float x, int n = 2) {
  11.     float wynik = x;
  12.     for(int i = 1; i < n; i++) {
  13.         wynik *= x;
  14.     }
  15.     return wynik;
  16. }
  17.  
  18. int main()
  19. {
  20.  
  21.     ifstream punktytxt("punkty.txt");
  22.     ofstream zadanie4("zadanie4.txt");
  23.     int N;
  24.     punktytxt >> N;
  25.     int punkty[N][2];
  26.     for(int i = 0; i < N; i++) {
  27.         punktytxt >> punkty[i][0] >> punkty[i][1];
  28.     }
  29.  
  30.     for(int i = 0; i < N; i++) {
  31.         cout << "(" << punkty[i][0] << ", " << punkty[i][1] << ")" << endl;
  32.     }
  33.     float a[2], b[2], c[2];
  34.     float dlugoscAB, dlugoscAC, dlugoscBC;
  35.     int licz = 0;
  36.     float doObliczenia[3]; // 0 - dluzszy bok, 1 i 2 - krotsze
  37.  
  38.     for(int i = 0; i < N; i++) {
  39.         a[0] = punkty[i][0];
  40.         a[1] = punkty[i][1];
  41.         for(int j = 0; j < N; j++) {
  42.             if(j < i || i == j)
  43.                 continue;
  44.             b[0] = punkty[j][0];
  45.             b[1] = punkty[j][1];
  46.             for(int k = 0; k < N; k++) {
  47.                 if(k < j || j == k)
  48.                     continue;
  49.                 c[0] = punkty[k][0];
  50.                 c[1] = punkty[k][1];
  51.                 dlugoscAB = dlugosc(a[0], a[1], b[0], b[1]);
  52.                 dlugoscAC = dlugosc(a[0], a[1], c[0], c[1]);
  53.                 dlugoscBC = dlugosc(b[0], b[1], c[0], c[1]);
  54.                 if(dlugoscAB >= dlugoscAC && dlugoscAB >= dlugoscBC) {
  55.                     doObliczenia[0] = dlugoscAB;
  56.                     doObliczenia[1] = dlugoscAC;
  57.                     doObliczenia[2] = dlugoscBC;
  58.                 } else if(dlugoscAC >= dlugoscAB && dlugoscAC >= dlugoscBC) {
  59.                     doObliczenia[0] = dlugoscAC;
  60.                     doObliczenia[1] = dlugoscAB;
  61.                     doObliczenia[2] = dlugoscBC;
  62.                 } else if(dlugoscBC >= dlugoscAB && dlugoscBC >= dlugoscAC) {
  63.                     doObliczenia[0] = dlugoscBC;
  64.                     doObliczenia[1] = dlugoscAC;
  65.                     doObliczenia[2] = dlugoscAB;
  66.                 }
  67.                 if(round(doPotegi(doObliczenia[0])) == round(doPotegi(doObliczenia[1])) + round(doPotegi(doObliczenia[2]))) {
  68.                     licz++;
  69.                     //zadanie4 << "(" << a[0] << "," << a[1] << ")";
  70.                     //zadanie4 << "(" << b[0] << "," << b[1] << ")";
  71.                     //zadanie4 << "(" << c[0] << "," << c[1] << ")";
  72.                     zadanie4 << i << " " << j << " " << k;
  73.                     zadanie4 << endl;
  74.                 }
  75.             }
  76.         }
  77.     }
  78.     punktytxt.close();
  79.     zadanie4.close();
  80.     cout << "Trojkatow: " << licz << endl;
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement