Un vector de punts al pla está normalitzat si compleix totes les següents condicions:
El vector conté almenys dos elements diferents.
La suma de totes les coordenades ’s dels punts al vector coincideix amb la suma de totes les coordenades ’s dels punts al vector.
El baricentre dels punts del vector no apareix al vector.
Recordeu que el baricentre d’un conjunt de punts és un punt al pla que té com a coordenada el valor mitjà de les coordenades ’s dels punts, i com a coordenada el valor mitjà de les coordenades ’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 vectorPunt& v, Punt& b);
que, donat un vector de punts , calcula a el baricentre dels punts de , i retorna un booleà indicant si és o no al vector .
L’entrada consisteix en diverses línies amb seqüències. Cada seqüència descriu un vector de punts mitjançant un natural i, a continuació, parells de reals , , , , que descriuen les coordenades dels punts que formen el vector.
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