Cod sursa(job #372263)

Utilizator cristina07cristina cristina07 Data 9 decembrie 2009 09:15:16
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;

typedef struct un_punct
{int x,y;
}PUNCT;

PUNCT v[1001];
int n,i;
 void citire()
 {ifstream fin("trapez.in");
 fin>>n;
 
 for(i=1; i<=n; i++)
 fin>>v[i].x>>v[i].y;
 
 fin.close();
 }
 
 
 int verifica(int a,int b, int c, int d)
 {float m1,m2,m3,m4;
 cout<<endl<<"punctele"<<" "<<a<<" "<<b<<" "<<c<<" "<<d;
 
 m1=(float)(v[b].y-v[a].y)/(float)(v[b].x-v[a].x);
 m2=(float)(v[c].y-v[b].y)/(float)(v[c].x-v[b].x);
 m3=(float)(v[d].y-v[c].y)/(float)(v[d].x-v[c].x);
 m4=(float)(v[a].y-v[d].y)/(float)(v[a].x-v[d].x); 
 
 if(v[b].x-v[a].x==0||v[c].x-v[b].x==0||v[d].x-v[c].x==0||v[a].x-v[d].x==0)
 cout<<" nu formeaza trapez";

 else cout<<endl<<"m1="<<m1<<" "<<"m2="<<m2<<" "<<"m3="<<m3<<" "<<"m4="<<m4;
      
 
 system("pause");
 if(m1==m2||m1==m3||m1==m4||m2==m3||m2==m4||m3==m4)
 
 return 1;
 else return 0;
 }
 
 
 int cate_trapeze()
 {int contor=0,a,b,c,d;
 for(a=1; a<=n-3; a++)
  for(b=a+1; b<=n-2; b++)
   for(c=b+1; c<=n-1; c++)
    for(d=c+1; d<=n; d++)
    
    contor=contor+verifica(a,b,c,d);
    
    return contor;
    
 
 }
 
 void afisare()
 { for(i=1; i<=n; i++)
 cout<<endl<<v[i].x<<" "<<v[i].y;
 
 system("pause");
      }
      
      int main()
      {citire();
      afisare();
      ofstream fout("trapez.out");
      fout<<cate_trapeze();
      fout.close();
      }