Un vector de punts al pla está normalitzat si compleix totes les següents condicions:
Recordeu que el baricentre d’un conjunt de punts és un punt (x,y) al pla que té com a coordenada x el valor mitjà de les coordenades x’s dels punts, i com a coordenada y el valor mitjà de les coordenades y’s dels punts.
Feu un programa que llegeixi vectors de punts al pla i determini si
estan o no normalitzats.
El vostre programa ha de fer servir la següent definició:
struct Punt {
double x,y;
};
i també ha de definir, implementar i utilitzar la funció:
bool baricentre (const vector<Punt>& v, Punt& b);
que, donat un vector de punts v, calcula a b el baricentre dels punts de v, i retorna un booleà indicant si b és o no al vector v.
Entrada
L’entrada consisteix en diverses línies amb seqüències. Cada seqüència descriu un vector de punts mitjançant un natural n>0 i, a continuació, n parells de reals x1, y1, …, xn, yn que descriuen les coordenades dels n punts que formen el vector.
Sortida
Per a cada vector de punts, la sortida està formada pel baricentre dels seus punts i un indicador de si és o no un vector normalitzat. En cas que no ho sigui, la sortida indica quina de les tres propietats de la definició és la primera que no es compleix.
Seguiu el format especificat als exemples.
Els nombres reals cal escriure’ls amb 2 xifres decimals. Feu servir:
cout.setf(ios::fixed);cout.precision(2);
Input
3 0 0 0 0 0 0 4 1 0 1 1 1 0 1 0 3 0 1 0 -1 0 0 3 0 1 1 0 1 1 4 0 0 1 0 0 1 0 0 3 0 0 1 1 0 0
Output
baricentre: (0.00,0.00) el vector no compleix la propietat 1 baricentre: (1.00,0.25) el vector no compleix la propietat 2 baricentre: (0.00,0.00) el vector no compleix la propietat 3 baricentre: (0.67,0.67) vector normalitzat baricentre: (0.25,0.25) vector normalitzat baricentre: (0.33,0.33) vector normalitzat